8234605: C2 failed "assert(C->live_nodes() - live_at_begin <= 2 * _nodes_required) failed: Bad node estimate: actual = 208 >> request = 101"

Reviewed-by: neliasso, kvn
This commit is contained in:
Patric Hedlin 2020-06-29 19:33:35 +02:00
parent 320af9b34b
commit d19f2bdec0

View File

@ -1405,14 +1405,17 @@ private:
void require_nodes_final(uint live_at_begin, bool check_estimate) {
assert(_nodes_required < UINT_MAX, "Bad state (final).");
#ifdef ASSERT
if (check_estimate) {
// Assert that the node budget request was not off by too much (x2).
// Check that the node budget request was not off by too much (x2).
// Should this be the case we _surely_ need to improve the estimates
// used in our budget calculations.
assert(C->live_nodes() - live_at_begin <= 2 * _nodes_required,
"Bad node estimate: actual = %d >> request = %d",
C->live_nodes() - live_at_begin, _nodes_required);
if (C->live_nodes() - live_at_begin > 2 * _nodes_required) {
log_info(compilation)("Bad node estimate: actual = %d >> request = %d",
C->live_nodes() - live_at_begin, _nodes_required);
}
}
#endif
// Assert that we have stayed within the node budget limit.
assert(C->live_nodes() < C->max_node_limit(),
"Exceeding node budget limit: %d + %d > %d (request = %d)",