diff src/share/vm/opto/doCall.cpp @ 20671:9e69e8d1c900

8058148: MaxNodeLimit and LiveNodeCountInliningCutoff Reviewed-by: kvn, roland
author vlivanov
date Mon, 24 Nov 2014 07:29:03 -0800
parents e7b3d177adda
children 7848fc12602b
line wrap: on
line diff
--- a/src/share/vm/opto/doCall.cpp	Tue Nov 11 04:46:13 2014 -0800
+++ b/src/share/vm/opto/doCall.cpp	Mon Nov 24 07:29:03 2014 -0800
@@ -410,6 +410,11 @@
   ciInstanceKlass* klass = ciEnv::get_instance_klass_for_declared_method_holder(holder);
   assert(declared_signature != NULL, "cannot be null");
 
+  // Bump max node limit for JSR292 users
+  if (bc() == Bytecodes::_invokedynamic || orig_callee->is_method_handle_intrinsic()) {
+    C->set_max_node_limit(3*MaxNodeLimit);
+  }
+
   // uncommon-trap when callee is unloaded, uninitialized or will not link
   // bailout when too many arguments for register representation
   if (!will_link || can_not_compile_call_site(orig_callee, klass)) {