8043413: REGRESSION: Hotspot causes segmentation fault in jdk8ux, but not in jdk7ux
authorroland
Mon, 02 Jun 2014 10:01:15 +0200
changeset 24924 f4f18b588249
parent 24923 9631f7d691dc
child 24925 b6b982fce332
child 24926 5ea835dfafaa
child 24928 a94ef5a38492
8043413: REGRESSION: Hotspot causes segmentation fault in jdk8ux, but not in jdk7ux Summary: long series of lambda form calls trigger stack overflow in c2 Reviewed-by: kvn, vlivanov
hotspot/src/share/vm/opto/bytecodeInfo.cpp
--- a/hotspot/src/share/vm/opto/bytecodeInfo.cpp	Mon Jun 02 08:07:29 2014 +0200
+++ b/hotspot/src/share/vm/opto/bytecodeInfo.cpp	Mon Jun 02 10:01:15 2014 +0200
@@ -361,11 +361,14 @@
     set_msg("not an accessor");
     return false;
   }
+
+  // Limit inlining depth in case inlining is forced or
+  // _max_inline_level was increased to compensate for lambda forms.
+  if (inline_level() > MaxForceInlineLevel) {
+    set_msg("MaxForceInlineLevel");
+    return false;
+  }
   if (inline_level() > _max_inline_level) {
-    if (callee_method->force_inline() && inline_level() > MaxForceInlineLevel) {
-      set_msg("MaxForceInlineLevel");
-      return false;
-    }
     if (!callee_method->force_inline() || !IncrementalInline) {
       set_msg("inlining too deep");
       return false;