> 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 two additional commits since the last revision: - Remove build files - Review comments: use `should_print_igv` ------------- Changes: - all: https://git.openjdk.org/jdk/pull/28060/files - new: https://git.openjdk.org/jdk/pull/28060/files/64bacdc2..311c7ff2 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=28060&range=06 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=28060&range=05-06 Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 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
