-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8343941: IGV: dump graph at different register allocation steps #22017
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
Conversation
👋 Welcome back rcastanedalo! A progress list of the required criteria for merging this PR into |
@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 127 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 |
@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. |
Looks great, and I can confirm the new phases are very useful! |
Thanks Daniel, feel free to review! |
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.
Looks good!
Just an idea, since you've provided a nice description for each phase in the PR description, should we add these in phasetype.hpp at the phases?
src/hotspot/share/opto/phasetype.hpp
Outdated
flags(AFTER_ITERATIVE_SPILLING, "After iterative spilling") \ | ||
flags(POST_ALLOCATION_COPY_REMOVAL, "Post-allocation copy removal") \ | ||
flags(MERGE_MULTIDEFS, "Merge multiple definitions") \ | ||
flags(FIXUP_SPILLS, "Fix up spills") \ |
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.
Should we split at the word boundary?
flags(FIXUP_SPILLS, "Fix up spills") \ | |
flags(FIX_UP_SPILLS, "Fix up spills") \ |
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, done in commit e44fa79.
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.
To be consistent I guess the same could be done for MERGE_MULTIDEFS
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 Damon, done in commit fb35674.
I tried this out but could not find a good way to interleave code comments and |
I see, that does not seem to be straight forward. I guess then it's okay to omit these descriptions. |
Thanks Daniel and Christian for reviewing! |
Very very cool! |
Thanks!
I think that would be a good idea, but since we do not have any such test yet, I propose to address that in a separate RFE, starting from the most important phase dumps (i.e. in increasing graph dump level). Does that make sense @dafedafe? |
Totally! Thanks @robcasloz. |
Thanks Daniel, Christian, and Damon for reviewing! @chhagedorn may I get a re-approval? |
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.
Still good!
Thanks Christian! |
/integrate |
Going to push as commit a8152bd.
Your commit was automatically rebased without conflicts. |
@robcasloz Pushed as commit a8152bd. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
This changeset dumps C2's low-level intermediate representation at the following intermediate register allocation points:
OptoCoalesce
is enabled).UseCISCSpill
is enabled.The new dumps have already proved to be useful in the investigation of JDK-8331295.
Testing
java -Xbatch -XX:PrintIdealGraphLevel=4
).Progress
Issue
Reviewers
Reviewers without OpenJDK IDs
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/22017/head:pull/22017
$ git checkout pull/22017
Update a local copy of the PR:
$ git checkout pull/22017
$ git pull https://git.openjdk.org/jdk.git pull/22017/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 22017
View PR using the GUI difftool:
$ git pr show -t 22017
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/22017.diff
Using Webrev
Link to Webrev Comment