File tree 1 file changed +8
-0
lines changed
1 file changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -2591,6 +2591,14 @@ uint Matcher::int_pressure_limit()
2591
2591
// a high register pressure area of the code so that split_DEF can
2592
2592
// generate DefinitionSpillCopy for the derived pointer.
2593
2593
uint default_int_pressure_threshold = _NO_SPECIAL_REG32_mask.Size() - 1;
2594
+ if (!PreserveFramePointer) {
2595
+ // When PreserveFramePointer is off, frame pointer is allocatable,
2596
+ // but different from other SOC registers, it is excluded from
2597
+ // fatproj's mask because its save type is No-Save. Decrease 1 to
2598
+ // ensure high pressure at fatproj when PreserveFramePointer is off.
2599
+ // See check_pressure_at_fatproj().
2600
+ default_int_pressure_threshold--;
2601
+ }
2594
2602
return (INTPRESSURE == -1) ? default_int_pressure_threshold : INTPRESSURE;
2595
2603
}
2596
2604
You can’t perform that action at this time.
0 commit comments