RFR: 8356761: IGV: dump escape analysis information [v3]
Anton Seoane Ampudia
aseoane at openjdk.org
Wed Nov 12 16:23:27 UTC 2025
> 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 updated the pull request incrementally with three additional commits since the last revision:
- Review comments: remove spurious new line
- Review comments: update header
Co-authored-by: Roberto Castañeda Lozano <robcasloz at users.noreply.github.com>
- Review comments: AddP misspell
Co-authored-by: Roberto Castañeda Lozano <robcasloz at users.noreply.github.com>
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/28060/files
- new: https://git.openjdk.org/jdk/pull/28060/files/b7867f12..cc56fb7e
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=28060&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=28060&range=01-02
Stats: 5 lines in 4 files changed: 0 ins; 1 del; 4 mod
Patch: https://git.openjdk.org/jdk/pull/28060.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/28060/head:pull/28060
PR: https://git.openjdk.org/jdk/pull/28060
More information about the hotspot-compiler-dev
mailing list