src/share/vm/c1/c1_GraphBuilder.cpp

changeset 6527
f47fa50d9b9c
parent 6213
f834ae379225
child 6668
45e59fae8f2b
     1.1 --- a/src/share/vm/c1/c1_GraphBuilder.cpp	Fri Mar 28 10:04:07 2014 -0700
     1.2 +++ b/src/share/vm/c1/c1_GraphBuilder.cpp	Fri Mar 28 10:12:48 2014 -0700
     1.3 @@ -3767,11 +3767,14 @@
     1.4    }
     1.5  
     1.6    // now perform tests that are based on flag settings
     1.7 -  if (callee->force_inline()) {
     1.8 -    if (inline_level() > MaxForceInlineLevel) INLINE_BAILOUT("MaxForceInlineLevel");
     1.9 -    print_inlining(callee, "force inline by annotation");
    1.10 -  } else if (callee->should_inline()) {
    1.11 -    print_inlining(callee, "force inline by CompileOracle");
    1.12 +  if (callee->force_inline() || callee->should_inline()) {
    1.13 +    if (inline_level() > MaxForceInlineLevel                    ) INLINE_BAILOUT("MaxForceInlineLevel");
    1.14 +    if (recursive_inline_level(callee) > MaxRecursiveInlineLevel) INLINE_BAILOUT("recursive inlining too deep");
    1.15 +
    1.16 +    const char* msg = "";
    1.17 +    if (callee->force_inline())  msg = "force inline by annotation";
    1.18 +    if (callee->should_inline()) msg = "force inline by CompileOracle";
    1.19 +    print_inlining(callee, msg);
    1.20    } else {
    1.21      // use heuristic controls on inlining
    1.22      if (inline_level() > MaxInlineLevel                         ) INLINE_BAILOUT("inlining too deep");

mercurial