RFR: 8315604: IGV: dump and visualize node bottom and phase types [v4]

Roberto Castañeda Lozano rcastanedalo at openjdk.org
Mon Oct 2 07:07:21 UTC 2023


On Fri, 29 Sep 2023 08:19:27 GMT, Roberto Castañeda Lozano <rcastanedalo at openjdk.org> wrote:

>> This changeset dumps node type information in IGV graphs. Type information includes node bottom types (`Node::bottom_type()`) and node phase types (GVN, IGVN, CCP) as IGV node properties `bottom_type` and `phase_type`. It also adds a filter (`Show types`) to display type information in the node labels:
>> 
>> ![igv-with-types-v3](https://github.com/openjdk/jdk/assets/8792647/7c60a766-aec5-4c8c-98e3-f2832040e317)
>> 
>> The filter presents a concise version of the complete type information (for example, removing long interface lists from reference types). It shows the phase type of each node, followed by the bottom type (prefixed with `B:`) if it differs from the phase type (see, for example, node `124 AddI` in the picture above) or is the only type available.
>> 
>> On the HotSpot side, the size of the `stringStream` buffer used to extract type information (and other properties such as `dump_spec`) is increased from 128 to 512 characters to prevent truncations. The additional type information and the buffer size change increase the size of the dumped graphs by around 10% on average.
>> 
>> Thanks to Christian Hagedorn and Toby Holenstein for providing feedback on earlier versions of the changeset.
>> 
>> #### Testing
>> 
>> - tier1-3 (windows-x64, linux-x64, linux-aarch64, macosx-x64, macosx-aarch64; release and debug mode)
>> - tested that thousands of graphs are correctly opened and visualized with IGV using different filter configurations
>> - tested that graphs dumped interactively from GDB are correctly opened and visualized
>> - tested that graphs dumped from earlier JVM versions are correctly handled by the new filter
>
> Roberto Castañeda Lozano has updated the pull request incrementally with three additional commits since the last revision:
> 
>  - Pretty-print inequalities
>  - Show phase type first, then bottom type if different
>  - Fix simplification of tuple types

Thanks Toby, Christian, and Tobias for reviewing!

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

PR Comment: https://git.openjdk.org/jdk/pull/15881#issuecomment-1742487820


More information about the hotspot-compiler-dev mailing list