8354930: IGV: dump C2 graph before and after live range stretching

Reviewed-by: rcastanedalo, chagedorn
This commit is contained in:
Manuel Hässig 2025-06-03 03:19:19 +00:00 committed by SendaoYan
parent c96803dc8b
commit 24edd3b2c1
3 changed files with 5 additions and 2 deletions

View File

@ -406,6 +406,8 @@ void PhaseChaitin::Register_Allocate() {
_live = &live; // Mark LIVE as being available
}
C->print_method(PHASE_INITIAL_LIVENESS, 4);
// Base pointers are currently "used" by instructions which define new
// derived pointers. This makes base pointers live up to the where the
// derived pointer is made, but not beyond. Really, they need to be live
@ -422,10 +424,9 @@ void PhaseChaitin::Register_Allocate() {
gather_lrg_masks(false);
live.compute(_lrg_map.max_lrg_id());
_live = &live;
C->print_method(PHASE_LIVE_RANGE_STRETCHING, 4);
}
C->print_method(PHASE_INITIAL_LIVENESS, 4);
// Create the interference graph using virtual copies
build_ifg_virtual(); // Include stack slots this time

View File

@ -100,6 +100,7 @@
flags(MATCHING, "After matching") \
flags(GLOBAL_CODE_MOTION, "Global code motion") \
flags(INITIAL_LIVENESS, "Initial liveness") \
flags(LIVE_RANGE_STRETCHING, "Live range stretching") \
flags(AGGRESSIVE_COALESCING, "Aggressive coalescing") \
flags(INITIAL_SPILLING, "Initial spilling") \
flags(CONSERVATIVE_COALESCING, "Conservative coalescing") \

View File

@ -108,6 +108,7 @@ public enum CompilePhase {
MATCHING("After matching", RegexType.MACH),
GLOBAL_CODE_MOTION("Global code motion", RegexType.MACH),
INITIAL_LIVENESS("Initial liveness", RegexType.MACH),
LIVE_RANGE_STRETCHING("Live range stretching", RegexType.MACH),
AGGRESSIVE_COALESCING("Aggressive coalescing", RegexType.MACH),
INITIAL_SPILLING("Initial spilling", RegexType.MACH),
CONSERVATIVE_COALESCING("Conservative coalescing", RegexType.MACH, ActionOnRepeat.KEEP_FIRST),