changeset 1717:a737ec21e449

2009-03-05 Gary Benson <gbenson@redhat.com> * ports/hotspot/src/share/vm/shark/sharkInliner.cpp (SharkInliner::may_be_inlinable): Bail out early on constructors.
author Gary Benson <gbenson@redhat.com>
date Thu, 05 Mar 2009 09:41:58 +0000
parents b593d3ef9dce
children e6271aa33a0c c5a65faa56e2
files ChangeLog ports/hotspot/src/share/vm/shark/sharkInliner.cpp
diffstat 2 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Mar 04 10:41:13 2009 -0500
+++ b/ChangeLog	Thu Mar 05 09:41:58 2009 +0000
@@ -1,3 +1,8 @@
+2009-03-05  Gary Benson  <gbenson@redhat.com>
+
+	* ports/hotspot/src/share/vm/shark/sharkInliner.cpp
+	(SharkInliner::may_be_inlinable): Bail out early on constructors.
+
 2009-03-04  Gary Benson  <gbenson@redhat.com>
 
 	* ports/hotspot/src/share/vm/shark/sharkInliner.hpp: New file.
--- a/ports/hotspot/src/share/vm/shark/sharkInliner.cpp	Wed Mar 04 10:41:13 2009 -0500
+++ b/ports/hotspot/src/share/vm/shark/sharkInliner.cpp	Thu Mar 05 09:41:58 2009 +0000
@@ -226,7 +226,15 @@
   if (target->has_exception_handlers() || target->has_jsrs())
     return false;
 
+  // Don't try to inline constructors, as they must
+  // eventually call Object.<init> which we can't inline.
+  // Note that this catches <clinit> too, but why would
+  // we be compiling that?
+  if (target->is_initializer())
+    return false;
+
   // Mustn't inline Object.<init>
+  // Should be caught by the above, but just in case...
   if (target->intrinsic_id() == vmIntrinsics::_Object_init)
     return false;