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
--- 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;