RFR: 8354767: Test crashed: assert(increase < max_live_nodes_increase_per_iteration) failed: excessive live node increase in single iteration of IGVN: 4470 (should be at most 4000)

Emanuel Peter epeter at openjdk.org
Wed May 7 07:57:17 UTC 2025


On Wed, 7 May 2025 07:38:16 GMT, Roberto Castañeda Lozano <rcastanedalo at openjdk.org> wrote:

> If we cannot bound the amount of nodes that can be created by PhiNode::Ideal, wouldn't it be more robust to simply disable the single-iteration node increase assertion for PhiNode? Otherwise there is the risk that we encounter the failure again with a slightly larger test case. Alternatively, if we could (?) derive a tighter bound for PhiNode (e.g. based on its number of inputs, number of memory slices for memory phis, etc.) we could try to compute it and use it in the assertion.

@robcasloz @dlunde Yes, such an exception may help us keep tight bounds on most nodes. And maybe we can even quantify more precisely how many nodes we expect to be created by `PhiNode::Ideal`. Maybe it is somehow linear in its inputs?

@dlunde it would also be interesting to look more deeply into `PhiNode::Ideal`, and see what happens there. The Phi has 150+ inputs, but how does that generate 4k+ nodes? That would be 4000/150 ~ 25+ nodes per input. I'm just wondering if this is really sane? And is it profitable? Might it be better to check if we are creating that many nodes before doing it, and blowing through the node budget? It might be worth investigating. But I do hear that it is difficult to reproduce.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/24960#issuecomment-2857485599


More information about the hotspot-compiler-dev mailing list