[ARM] Don't run the block placement pass at O0

The block placement pass shouldn't run unless optimisations are enabled.

Differential Revision: https://reviews.llvm.org/D94691
This commit is contained in:
Sam Tebbs 2021-01-15 11:42:44 +00:00
parent e9f1ed2306
commit 5e4480b6c0
2 changed files with 6 additions and 4 deletions

View File

@ -58,6 +58,8 @@ INITIALIZE_PASS(ARMBlockPlacement, DEBUG_TYPE, "ARM block placement", false,
false)
bool ARMBlockPlacement::runOnMachineFunction(MachineFunction &MF) {
if (skipFunction(MF.getFunction()))
return false;
const ARMSubtarget &ST = static_cast<const ARMSubtarget &>(MF.getSubtarget());
if (!ST.hasLOB())
return false;

View File

@ -553,11 +553,11 @@ void ARMPassConfig::addPreEmitPass() {
return MF.getSubtarget<ARMSubtarget>().isThumb2();
}));
addPass(createARMBlockPlacementPass());
// Don't optimize barriers at -O0.
if (getOptLevel() != CodeGenOpt::None)
// Don't optimize barriers or block placement at -O0.
if (getOptLevel() != CodeGenOpt::None) {
addPass(createARMBlockPlacementPass());
addPass(createARMOptimizeBarriersPass());
}
}
void ARMPassConfig::addPreEmitPass2() {