-
Notifications
You must be signed in to change notification settings - Fork 5.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8315604: IGV: dump and visualize node bottom and phase types #15881
Conversation
👋 Welcome back rcastanedalo! A progress list of the required criteria for merging this PR into |
@robcasloz The following label will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command. |
Webrevs
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a very nice improvement! The VM changes look good to me.
@robcasloz This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 340 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. ➡️ To integrate this PR with the above commit message to the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a nice improvement! Cannot say much about the filter code - maybe someone else should have a look at that as well.
Thanks for reviewing, Tobias! |
Thanks for working on this @robcasloz . That’s a feature I was always missing! Suggestion: I would find it better for the mind to process if the second line has a different font from the first line in a widget. (e.g. different color, like dark gray or italic) What do you think? E.g. adding the following code in for (int i=1; i<labelWidgets.size(); i++) {
labelWidgets.get(i).setFont(Diagram.FONT.deriveFont(Font.ITALIC));
labelWidgets.get(i).setForeground(Color.DARK_GRAY);
} |
Great suggestion, done, thanks! |
/contributor add @tobiasholenstein |
@robcasloz |
The latest commits change the order and syntax used when displaying both types (when they are available and differ from each other) after offline feedback from @chhagedorn and @tobiasholenstein. See the updated pull request description for details. They also improve the display of tuple types and pretty-print inequalities. @tobiasholenstein could you please review the IGV parts of this change? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the update @robcasloz . The code looks good to me!
Thanks Toby, Christian, and Tobias for reviewing! |
/integrate |
Going to push as commit 207819a.
Your commit was automatically rebased without conflicts. |
@robcasloz Pushed as commit 207819a. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
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 propertiesbottom_type
andphase_type
. It also adds a filter (Show types
) to display type information in the node labels: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, node124 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 asdump_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
Progress
Issue
Reviewers
Contributors
<tholenstein@openjdk.org>
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/15881/head:pull/15881
$ git checkout pull/15881
Update a local copy of the PR:
$ git checkout pull/15881
$ git pull https://git.openjdk.org/jdk.git pull/15881/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 15881
View PR using the GUI difftool:
$ git pr show -t 15881
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/15881.diff
Webrev
Link to Webrev Comment