changeset 1718:e6271aa33a0c

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. (transplanted from a737ec21e449424b3ffc8fe24896afcda34f36f3)
author Gary Benson <gbenson@redhat.com>
date Thu, 05 Mar 2009 09:41:58 +0000
parents a28f5ad21234 (current diff) a737ec21e449 (diff)
children ab30fa9f3e55
files ChangeLog
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;