/hg/release/icedtea6-1.8: Fix PR IcedTea/481
xranby at icedtea.classpath.org
xranby at icedtea.classpath.org
Wed May 5 06:00:05 PDT 2010
changeset ecef93c7fbb6 in /hg/release/icedtea6-1.8
details: http://icedtea.classpath.org/hg/release/icedtea6-1.8?cmd=changeset;node=ecef93c7fbb6
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 16943314ca9a -r ecef93c7fbb6 ChangeLog
--- a/ChangeLog Fri Apr 30 10:24:39 2010 +0100
+++ b/ChangeLog Wed May 05 11:28:27 2010 +0100
@@ -1,3 +1,10 @@ 2010-04-30 Gary Benson <gbenson at redhat
+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-04-30 Gary Benson <gbenson at redhat.com>
PR icedtea/324
diff -r 16943314ca9a -r ecef93c7fbb6 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
--- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Fri Apr 30 10:24:39 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