src/share/vm/c1/c1_GraphBuilder.cpp

changeset 4446
d92fa52a5d03
parent 4361
1e41b0bc58a0
child 4532
60bba1398c51
     1.1 --- a/src/share/vm/c1/c1_GraphBuilder.cpp	Fri Jan 11 20:01:16 2013 -0800
     1.2 +++ b/src/share/vm/c1/c1_GraphBuilder.cpp	Mon Jan 14 08:22:32 2013 -0800
     1.3 @@ -3223,7 +3223,12 @@
     1.4    }
     1.5    if (try_inline_full(callee, holder_known, bc, receiver))
     1.6      return true;
     1.7 -  print_inlining(callee, _inline_bailout_msg, /*success*/ false);
     1.8 +
     1.9 +  // Entire compilation could fail during try_inline_full call.
    1.10 +  // In that case printing inlining decision info is useless.
    1.11 +  if (!bailed_out())
    1.12 +    print_inlining(callee, _inline_bailout_msg, /*success*/ false);
    1.13 +
    1.14    return false;
    1.15  }
    1.16  
    1.17 @@ -3753,7 +3758,8 @@
    1.18    push_scope(callee, cont);
    1.19  
    1.20    // the BlockListBuilder for the callee could have bailed out
    1.21 -  CHECK_BAILOUT_(false);
    1.22 +  if (bailed_out())
    1.23 +      return false;
    1.24  
    1.25    // Temporarily set up bytecode stream so we can append instructions
    1.26    // (only using the bci of this stream)
    1.27 @@ -3819,7 +3825,8 @@
    1.28    iterate_all_blocks(callee_start_block == NULL);
    1.29  
    1.30    // If we bailed out during parsing, return immediately (this is bad news)
    1.31 -  if (bailed_out()) return false;
    1.32 +  if (bailed_out())
    1.33 +      return false;
    1.34  
    1.35    // iterate_all_blocks theoretically traverses in random order; in
    1.36    // practice, we have only traversed the continuation if we are
    1.37 @@ -3828,9 +3835,6 @@
    1.38           !continuation()->is_set(BlockBegin::was_visited_flag),
    1.39           "continuation should not have been parsed yet if we created it");
    1.40  
    1.41 -  // If we bailed out during parsing, return immediately (this is bad news)
    1.42 -  CHECK_BAILOUT_(false);
    1.43 -
    1.44    // At this point we are almost ready to return and resume parsing of
    1.45    // the caller back in the GraphBuilder. The only thing we want to do
    1.46    // first is an optimization: during parsing of the callee we
    1.47 @@ -4171,7 +4175,10 @@
    1.48        else
    1.49          log->inline_success("receiver is statically known");
    1.50      } else {
    1.51 -      log->inline_fail(msg);
    1.52 +      if (msg != NULL)
    1.53 +        log->inline_fail(msg);
    1.54 +      else
    1.55 +        log->inline_fail("reason unknown");
    1.56      }
    1.57    }
    1.58  

mercurial