--- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp Fri Jan 11 20:01:16 2013 -0800
+++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp Mon Jan 14 08:22:32 2013 -0800
@@ -3223,7 +3223,12 @@
}
if (try_inline_full(callee, holder_known, bc, receiver))
return true;
- print_inlining(callee, _inline_bailout_msg, /*success*/ false);
+
+ // Entire compilation could fail during try_inline_full call.
+ // In that case printing inlining decision info is useless.
+ if (!bailed_out())
+ print_inlining(callee, _inline_bailout_msg, /*success*/ false);
+
return false;
}
@@ -3753,7 +3758,8 @@
push_scope(callee, cont);
// the BlockListBuilder for the callee could have bailed out
- CHECK_BAILOUT_(false);
+ if (bailed_out())
+ return false;
// Temporarily set up bytecode stream so we can append instructions
// (only using the bci of this stream)
@@ -3819,7 +3825,8 @@
iterate_all_blocks(callee_start_block == NULL);
// If we bailed out during parsing, return immediately (this is bad news)
- if (bailed_out()) return false;
+ if (bailed_out())
+ return false;
// iterate_all_blocks theoretically traverses in random order; in
// practice, we have only traversed the continuation if we are
@@ -3828,9 +3835,6 @@
!continuation()->is_set(BlockBegin::was_visited_flag),
"continuation should not have been parsed yet if we created it");
- // If we bailed out during parsing, return immediately (this is bad news)
- CHECK_BAILOUT_(false);
-
// At this point we are almost ready to return and resume parsing of
// the caller back in the GraphBuilder. The only thing we want to do
// first is an optimization: during parsing of the callee we
@@ -4171,7 +4175,10 @@
else
log->inline_success("receiver is statically known");
} else {
- log->inline_fail(msg);
+ if (msg != NULL)
+ log->inline_fail(msg);
+ else
+ log->inline_fail("reason unknown");
}
}