/hg/icedtea6: Fix PR IcedTea/481
gbenson at icedtea.classpath.org
gbenson at icedtea.classpath.org
Wed May 5 03:28:35 PDT 2010
changeset 540dc0858c17 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=540dc0858c17
author: Gary Benson <gbenson at redhat.com>
date: Wed May 05 11:28:27 2010 +0100
Fix PR IcedTea/481
diffstat:
2 files changed, 21 insertions(+)
ChangeLog | 7 +++++++
ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 14 ++++++++++++++
diffs (45 lines):
diff -r b571e4dc0ca6 -r 540dc0858c17 ChangeLog
--- a/ChangeLog Tue May 04 17:50:37 2010 +0100
+++ b/ChangeLog Wed May 05 11:28:27 2010 +0100
@@ -1,3 +1,10 @@ 2010-05-04 Andrew John Hughes <ahughes
+2010-05-05 Gary Benson <gbenson at redhat.com>
+
+ PR icedtea/481
+ * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
+ (SharkTopLevelBlock::improve_virtual_call): Disable an
+ optimization that cannot currently be supported.
+
2010-05-04 Andrew John Hughes <ahughes at redhat.com>
Move OpenJDK patches to appropriate subdirectory.
diff -r b571e4dc0ca6 -r 540dc0858c17 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
--- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Tue May 04 17:50:37 2010 +0100
+++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Wed May 05 11:28:27 2010 +0100
@@ -903,6 +903,18 @@ ciMethod* SharkTopLevelBlock::improve_vi
dest_method->holder() == java_lang_Object_klass())
return dest_method;
+#ifdef SHARK_CAN_DEOPTIMIZE_ANYWHERE
+ // This code can replace a virtual call with a direct call if this
+ // class is the only one in the entire set of loaded classes that
+ // implements this method. This makes the compiled code dependent
+ // on other classes that implement the method not being loaded, a
+ // condition which is enforced by the dependency tracker. If the
+ // dependency tracker determines a method has become invalid it
+ // will mark it for recompilation, causing running copies to be
+ // deoptimized. Shark currently can't deoptimize arbitrarily like
+ // that, so this optimization cannot be used.
+ // http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=481
+
// All other interesting cases are instance classes
if (!receiver_type->is_instance_klass())
return NULL;
@@ -957,6 +969,8 @@ ciMethod* SharkTopLevelBlock::improve_vi
// it can perform a further optimization to replace calls
// with non-monomorphic targets if the receiver has an exact
// type. We don't mark types this way, so we can't do this.
+
+#endif // SHARK_CAN_DEOPTIMIZE_ANYWHERE
return NULL;
}
More information about the distro-pkg-dev
mailing list