Skip to content

Commit a6d00c0

Browse files
committed
Add a getNumOccurrences check
1 parent 481f87e commit a6d00c0

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

llvm/lib/CodeGen/MachineScheduler.cpp

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3899,19 +3899,26 @@ void PostGenericScheduler::initPolicy(MachineBasicBlock::iterator Begin,
38993899
unsigned NumRegionInstrs) {
39003900
const MachineFunction &MF = *Begin->getMF();
39013901

3902+
// Default to top-down because it was implemented first and existing targets
3903+
// expect that behavior by default.
3904+
RegionPolicy.OnlyTopDown = true;
3905+
RegionPolicy.OnlyBottomUp = false;
3906+
39023907
// Allow the subtarget to override default policy.
39033908
MF.getSubtarget().overridePostRASchedPolicy(RegionPolicy, NumRegionInstrs);
39043909

39053910
// After subtarget overrides, apply command line options.
3906-
if (PostRADirection == MISchedPostRASched::TopDown) {
3907-
RegionPolicy.OnlyTopDown = true;
3908-
RegionPolicy.OnlyBottomUp = false;
3909-
} else if (PostRADirection == MISchedPostRASched::BottomUp) {
3910-
RegionPolicy.OnlyTopDown = false;
3911-
RegionPolicy.OnlyBottomUp = true;
3912-
} else if (PostRADirection == MISchedPostRASched::Bidirectional) {
3913-
RegionPolicy.OnlyBottomUp = false;
3914-
RegionPolicy.OnlyTopDown = false;
3911+
if (PostRADirection.getNumOccurrences() > 0) {
3912+
if (PostRADirection == MISchedPostRASched::TopDown) {
3913+
RegionPolicy.OnlyTopDown = true;
3914+
RegionPolicy.OnlyBottomUp = false;
3915+
} else if (PostRADirection == MISchedPostRASched::BottomUp) {
3916+
RegionPolicy.OnlyTopDown = false;
3917+
RegionPolicy.OnlyBottomUp = true;
3918+
} else if (PostRADirection == MISchedPostRASched::Bidirectional) {
3919+
RegionPolicy.OnlyBottomUp = false;
3920+
RegionPolicy.OnlyTopDown = false;
3921+
}
39153922
}
39163923
}
39173924

0 commit comments

Comments
 (0)