RFR: 8356761: IGV: dump escape analysis information [v8]

duke duke at openjdk.org
Fri Nov 14 07:21:28 UTC 2025


On Thu, 13 Nov 2025 13:26:54 GMT, Anton Seoane Ampudia <aseoane at openjdk.org> wrote:

>> This PR introduces new IGV dumps, property fields and filters related to escape analysis information.
>> 
>> The C2 escape analysis algorithm is carried out in six primary steps, of which many have interesting sub-steps (e.g. `split_unique_types`) or present an iterative nature where access to intermediate results can aid debugging and analysis. Additionally, escape analysis relies on an "intermediate structure" called the _connection graph_, which is also particularly valuable for deeper investigations.
>> 
>> With this changeset, escape analysis information is now dumped at key points throughout the algorithm, with a degree of granularity (from only the basic steps to in-detail iterative dumping). The dumps include several property fields, such as:
>> 
>> - Node escape “level”.
>> - Scalar replaceability.
>> - Node type within the connection graph (per [C2 Escape Analysis connection graph](https://wiki.openjdk.org/display/HotSpot/EscapeAnalysis)).
>> 
>> This is achieved by passing the `ConnectionGraph` in use to the `IdealGraphPrinter` during escape analysis, so that these properties can be dumped. After escape analysis, remaining interesting information that is left until macro elimination (and consequent elimination of non-escaping, replaceable allocations) is also dumped.
>> 
>> Additionally, two filters are provided: one for displaying the connection node type in the IGV node box, and another one for color-scaling nodes based on their escaping/scalar status.
>> 
>> **Testing:** passes tiers 1-3, manual testing in IGV
>
> Anton Seoane Ampudia has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains five new commits since the last revision:
> 
>  - Review comments: use `should_print_igv`
>  - Merge branch 'JDK-8356761' of github.com:anton-seoane/jdk into JDK-8356761
>  - Review comments: whitespace fix
>    
>    Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>
>  - Review comments: rename `verify` to more explicit `print_method`
>  - Review comments: explicit null check
>    
>    Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>

@anton-seoane 
Your change (at version 371f4e901f5f35e01d99785adb500cbccab044b7) is now ready to be sponsored by a Committer.

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

PR Comment: https://git.openjdk.org/jdk/pull/28060#issuecomment-3531251595


More information about the hotspot-compiler-dev mailing list