> 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

Reply via email to