Skip to content
This repository was archived by the owner on Aug 27, 2022. It is now read-only.

Commit d19f2bd

Browse files
author
Patric Hedlin
committed
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
1 parent 320af9b commit d19f2bd

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/hotspot/share/opto/loopnode.hpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1405,14 +1405,17 @@ class PhaseIdealLoop : public PhaseTransform {
14051405
void require_nodes_final(uint live_at_begin, bool check_estimate) {
14061406
assert(_nodes_required < UINT_MAX, "Bad state (final).");
14071407

1408+
#ifdef ASSERT
14081409
if (check_estimate) {
1409-
// Assert that the node budget request was not off by too much (x2).
1410+
// Check that the node budget request was not off by too much (x2).
14101411
// Should this be the case we _surely_ need to improve the estimates
14111412
// used in our budget calculations.
1412-
assert(C->live_nodes() - live_at_begin <= 2 * _nodes_required,
1413-
"Bad node estimate: actual = %d >> request = %d",
1414-
C->live_nodes() - live_at_begin, _nodes_required);
1413+
if (C->live_nodes() - live_at_begin > 2 * _nodes_required) {
1414+
log_info(compilation)("Bad node estimate: actual = %d >> request = %d",
1415+
C->live_nodes() - live_at_begin, _nodes_required);
1416+
}
14151417
}
1418+
#endif
14161419
// Assert that we have stayed within the node budget limit.
14171420
assert(C->live_nodes() < C->max_node_limit(),
14181421
"Exceeding node budget limit: %d + %d > %d (request = %d)",

0 commit comments

Comments
 (0)