8043413: REGRESSION: Hotspot causes segmentation fault in jdk8ux, but not in jdk7ux

Mon, 02 Jun 2014 10:01:15 +0200

author
roland
date
Mon, 02 Jun 2014 10:01:15 +0200
changeset 6709
73c839dda17e
parent 6707
660b3f6bf7d7
child 6710
67d80ad682bf

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

src/share/vm/opto/bytecodeInfo.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/opto/bytecodeInfo.cpp	Fri May 30 10:43:51 2014 +0200
     1.2 +++ b/src/share/vm/opto/bytecodeInfo.cpp	Mon Jun 02 10:01:15 2014 +0200
     1.3 @@ -361,11 +361,14 @@
     1.4      set_msg("not an accessor");
     1.5      return false;
     1.6    }
     1.7 +
     1.8 +  // Limit inlining depth in case inlining is forced or
     1.9 +  // _max_inline_level was increased to compensate for lambda forms.
    1.10 +  if (inline_level() > MaxForceInlineLevel) {
    1.11 +    set_msg("MaxForceInlineLevel");
    1.12 +    return false;
    1.13 +  }
    1.14    if (inline_level() > _max_inline_level) {
    1.15 -    if (callee_method->force_inline() && inline_level() > MaxForceInlineLevel) {
    1.16 -      set_msg("MaxForceInlineLevel");
    1.17 -      return false;
    1.18 -    }
    1.19      if (!callee_method->force_inline() || !IncrementalInline) {
    1.20        set_msg("inlining too deep");
    1.21        return false;

mercurial