OpenJDK / jdk / jdk
changeset 59994:646a754df461
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
author | phedlin |
---|---|
date | Mon, 29 Jun 2020 19:33:35 +0200 |
parents | ed2af47e7987 |
children | 24057288b9ad |
files | src/hotspot/share/opto/loopnode.hpp |
diffstat | 1 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/hotspot/share/opto/loopnode.hpp Mon Jun 29 10:52:24 2020 -0400 +++ b/src/hotspot/share/opto/loopnode.hpp Mon Jun 29 19:33:35 2020 +0200 @@ -1405,14 +1405,17 @@ 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)",