mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-25 22:04:51 +02:00
8006095: C1: SIGSEGV w/ -XX:+LogCompilation
Avoid printing inlining decision when compilation fails Reviewed-by: kvn, roland
This commit is contained in:
parent
827930b510
commit
f8b9f3900c
1 changed files with 14 additions and 7 deletions
|
@ -3223,7 +3223,12 @@ bool GraphBuilder::try_inline(ciMethod* callee, bool holder_known, Bytecodes::Co
|
||||||
}
|
}
|
||||||
if (try_inline_full(callee, holder_known, bc, receiver))
|
if (try_inline_full(callee, holder_known, bc, receiver))
|
||||||
return true;
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3753,7 +3758,8 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known, Bytecode
|
||||||
push_scope(callee, cont);
|
push_scope(callee, cont);
|
||||||
|
|
||||||
// the BlockListBuilder for the callee could have bailed out
|
// 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
|
// Temporarily set up bytecode stream so we can append instructions
|
||||||
// (only using the bci of this stream)
|
// (only using the bci of this stream)
|
||||||
|
@ -3819,7 +3825,8 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known, Bytecode
|
||||||
iterate_all_blocks(callee_start_block == NULL);
|
iterate_all_blocks(callee_start_block == NULL);
|
||||||
|
|
||||||
// If we bailed out during parsing, return immediately (this is bad news)
|
// 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
|
// iterate_all_blocks theoretically traverses in random order; in
|
||||||
// practice, we have only traversed the continuation if we are
|
// practice, we have only traversed the continuation if we are
|
||||||
|
@ -3828,9 +3835,6 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known, Bytecode
|
||||||
!continuation()->is_set(BlockBegin::was_visited_flag),
|
!continuation()->is_set(BlockBegin::was_visited_flag),
|
||||||
"continuation should not have been parsed yet if we created it");
|
"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
|
// 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
|
// the caller back in the GraphBuilder. The only thing we want to do
|
||||||
// first is an optimization: during parsing of the callee we
|
// first is an optimization: during parsing of the callee we
|
||||||
|
@ -4171,7 +4175,10 @@ void GraphBuilder::print_inlining(ciMethod* callee, const char* msg, bool succes
|
||||||
else
|
else
|
||||||
log->inline_success("receiver is statically known");
|
log->inline_success("receiver is statically known");
|
||||||
} else {
|
} else {
|
||||||
log->inline_fail(msg);
|
if (msg != NULL)
|
||||||
|
log->inline_fail(msg);
|
||||||
|
else
|
||||||
|
log->inline_fail("reason unknown");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue