RFR: 8295166: IGV: dump graph at more locations
    Daniel Lundén 
    duke at openjdk.org
       
    Tue Dec  5 12:12:52 UTC 2023
    
    
  
This changeset
1. adds a number of new graph dumps for IdealGraphVisualizer (IGV):
   - Before conditional constant propagation
   - After register allocation
   - After block ordering
   - After peephole optimization
   - After post-allocation expansion
   - Before and after
     - loop predication
     - loop peeling
     - pre/main/post loops
     - loop unrolling
     - range check elimination
     - loop unswitching
     - partial peeling
     - split if
     - superword
2. adds support for enumeration of repeated IGV graph dumps.
3. adjusts IGV print levels to encompass the new graph dumps. The old levels 4 and 5 are now levels 5 and 6. The new level 4 is for loop optimization dumps.
Example phase list screenshots in IGV (first at level 6, second at level 4)
 
Some notes:
- While discussing the above changes, a separate question was brought up by @chhagedorn:
  > On a separate note, I'm wondering how useful it is to always dump all JFR events when calling print_method(). Should this be revisited again in general?
- The new IGV graph dump enumeration enables a number of cleanups. There is now another RFE for IGV cleanup: [JDK-8319599](https://bugs.openjdk.org/browse/JDK-8319599).
### Testing
#### Platforms: windows-x64, linux-x64, linux-aarch64, macosx-x64, macosx-aarch64
- tier1, tier2, tier3, tier4, tier5.
- Check that optimized builds (`--with-debug-level optimized`) still work.
#### Platforms: linux-x64
- Tested that thousands of graphs are correctly opened and visualized with IGV.
-------------
Commit messages:
 - Add phase enumeration reset
 - Merge AFTER_LOOP_PREDICATION IC and RC
 - Change to title case for new phases
 - Update JFR test after new phase level
 - Fix Christian's comments
 - Restore IGV .gitignore
 - Fix incorrect range for PrintIdealGraphLevel
 - Move incorrectly placed BEFORE_SUPERWORD_SCHEDULE
 - Superword dump update
 - Adjust print levels
 - ... and 14 more: https://git.openjdk.org/jdk/compare/1cf7ef52...07aac1c5
Changes: https://git.openjdk.org/jdk/pull/16120/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16120&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8295166
  Stats: 167 lines in 15 files changed: 115 ins; 0 del; 52 mod
  Patch: https://git.openjdk.org/jdk/pull/16120.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16120/head:pull/16120
PR: https://git.openjdk.org/jdk/pull/16120
    
    
More information about the hotspot-compiler-dev
mailing list