RFR: 8315916: assert(C->live_nodes() <= C->max_node_limit()) failed: Live Node limit exceeded [v7]

Dhamoder Nalla dhanalla at openjdk.org
Wed Apr 23 17:03:57 UTC 2025


On Tue, 22 Apr 2025 14:49:39 GMT, Dhamoder Nalla <dhanalla at openjdk.org> wrote:

>>> @dhanalla Are you still making changes or is this ready to review? (if not ready just make it a draft ;) )
>> 
>> @eme64, This is ready for review.
>
>> @dhanalla Do you want us to continue reviewing? It is usually good to ping people again after making changes. Otherwise, we don't know if you are still working on it and we should wait.
> @eme64 yes, please review.

> @dhanalla I see that you have had a conversation with @chhagedorn here, where you explained more details about what exactly goes wrong. Can you please update the PR description with these details? Generally, that makes it much easier to review, then the reviewers don't need to read through the whole conversation and figure out what is now stale (things you already applied) and what is still an active conversation. While you are at it, you can also update the description on JIRA.

You're right that in the current implementation, we begin the scalarization process and only bail out once the live node count has already exceeded the limit. At that point, the graph is indeed partially transformed, which is why we fall back to recompilation without EA to ensure a safe and consistent compilation state.
Accurately predicting the number of nodes before transformation is difficult due to the variety of types and structures involved — each element can lead to multiple nodes (e.g., phi nodes, loads/stores, etc.), and the graph can grow non-linearly depending on how the array is used.
However, I agree that giving up entirely on EA just because of one large array seems like an overly conservative fallback, especially if the rest of the method would still benefit from EA.

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

PR Comment: https://git.openjdk.org/jdk/pull/20504#issuecomment-2824957042


More information about the hotspot-compiler-dev mailing list