-
Notifications
You must be signed in to change notification settings - Fork 6.2k
8348645: IGV: visualize live ranges #23558
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
Closed
robcasloz
wants to merge
48
commits into
openjdk:master
from
robcasloz:JDK-8348645-live-range-visualization
Closed
Changes from all commits
Commits
Show all changes
48 commits
Select commit
Hold shift + click to select a range
159721f
Dump live range info from HotSpot
robcasloz 1efce3d
Parse, compute, and represent liveness information at the data level
robcasloz e40342d
Add button and define action to enable live range visualization
robcasloz 7a3814d
Generalize clearSelectedNodes to different elements (also live ranges)
robcasloz 322c97d
Represent live ranges at the diagram graph and abstract layout level
robcasloz 33db9a4
Compute live range segment subsets and their layout
robcasloz 4aca9b5
Compute live range segments to be laid out
robcasloz f43dbf6
Show live range ids on top of basic blocks
robcasloz 3d25cd4
Add live range widgets and logic for selecting and centering them
robcasloz 990c54c
Actually draw the live ranges
robcasloz b4fada7
Add quick live range search
robcasloz 39aab9c
Factor out block and live range search functionality
robcasloz ce8b3cb
Fix crashes when disabling live ranges or switching mode
robcasloz f551f49
Enable/disable live range widgets similarly to block widgets
robcasloz 6480444
Fix crashes when filtering out live range-related nodes
robcasloz 05f3a30
Position live ranges in empty blocks properly
robcasloz a04fc9b
Enable predecessor and successor expansion only if some node is selected
robcasloz cad7908
Enable extraction of live ranges via related nodes
robcasloz 8b619bd
Preserve combine node and live range selection across relayouts
robcasloz e25b13d
Make it possible to hide live ranges
robcasloz 5937be6
Do not show duplicate live ranges in properties, deselect live ranges…
robcasloz add4fb8
Extract on live range double-click
robcasloz b1c2a94
Add pop-up menu to live ranges
robcasloz 8a76fac
Add pop-up option to select definers and users
robcasloz 1ce3552
Add actions to select live ranges for a node
robcasloz 4043b61
Add pretty icons
robcasloz 77bdc77
Restart filter defaults
robcasloz 0a321e9
Fix live range selection/deselection inconsistencies
robcasloz 9ea960e
Simplify live range highlighting
robcasloz 7992c04
Add basic filter support for live ranges
robcasloz 4f89c6e
Remove unused definition
robcasloz 4d36f22
Close live ranges only on first definitions and kills
robcasloz 7a3e992
Complete dump of live range properties
robcasloz 66073d3
Draw segments in empty blocks
robcasloz a30893b
Let phi-defined live ranges start at the top of the basic block
robcasloz 2647f1c
Update copyright headers
robcasloz 8336f67
Remove unused option to use definer node ids instead of live range ids
robcasloz 1cd7a4e
Remove comments that are no longer needed
robcasloz cf2f945
Select all live range sements and not just a representative one
robcasloz 0978eee
Ensure live ranges to go to from pop-up menu become visible
robcasloz 153e01a
Ensure basic blocks with live ranges are always visible
robcasloz c5e48e4
Fix def live range printing in 'Show liveness information' filter
robcasloz 0016922
Check if live range widgets actually exist for computing block visibi…
robcasloz 08ee449
Remove unnecessary whitespace
robcasloz 87b31e9
Export liveness information when saving a graph from IGV
robcasloz 31e4510
Open and close live ranges joined by phis in their respective blocks
robcasloz 51718b9
Handle single-block CFGs
robcasloz efbde14
Show liveness info extra line only when liveness information is avail…
robcasloz File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Hi Roberto,
Ihis is just a drive-by comment and I know that this style is standard in the IGP source code. However, have you considered re-writing this in the style of setting up the data and then looping over the data in order to print it?
Here's an example transformation I did from some other code in IGP:
You save a lot of lines of code :-).
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 suggestion, Johan! I like the proposal but I think it is best left out as a separate RFE, to make sure it is applied consistently to the entire IGV graph printing code. I created JDK-8349835 for that.