Skip to content

Commit e369d25

Browse files
fixup! only update dom tree if needed
1 parent 728079b commit e369d25

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

llvm/lib/CodeGen/PeepholeOptimizer.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,8 @@ class PeepholeOptimizerLegacy : public MachineFunctionPass {
568568
void getAnalysisUsage(AnalysisUsage &AU) const override {
569569
MachineFunctionPass::getAnalysisUsage(AU);
570570
AU.addRequired<MachineLoopInfoWrapperPass>();
571-
AU.addRequired<MachineDominatorTreeWrapperPass>();
571+
if (Aggressive)
572+
AU.addRequired<MachineDominatorTreeWrapperPass>();
572573
}
573574

574575
MachineFunctionProperties getRequiredProperties() const override {
@@ -1645,7 +1646,8 @@ PreservedAnalyses
16451646
PeepholeOptimizerPass::run(MachineFunction &MF,
16461647
MachineFunctionAnalysisManager &MFAM) {
16471648
MFPropsModifier _(*this, MF);
1648-
auto *DT = &MFAM.getResult<MachineDominatorTreeAnalysis>(MF);
1649+
auto *DT =
1650+
Aggressive ? &MFAM.getResult<MachineDominatorTreeAnalysis>(MF) : nullptr;
16491651
auto *MLI = &MFAM.getResult<MachineLoopAnalysis>(MF);
16501652
PeepholeOptimizer Impl(DT, MLI);
16511653
bool Changed = Impl.run(MF);
@@ -1658,7 +1660,9 @@ PeepholeOptimizerPass::run(MachineFunction &MF,
16581660
bool PeepholeOptimizerLegacy::runOnMachineFunction(MachineFunction &MF) {
16591661
if (skipFunction(MF.getFunction()))
16601662
return false;
1661-
auto *DT = &getAnalysis<MachineDominatorTreeWrapperPass>().getDomTree();
1663+
auto *DT = Aggressive
1664+
? &getAnalysis<MachineDominatorTreeWrapperPass>().getDomTree()
1665+
: nullptr;
16621666
auto *MLI = &getAnalysis<MachineLoopInfoWrapperPass>().getLI();
16631667
PeepholeOptimizer Impl(DT, MLI);
16641668
return Impl.run(MF);
@@ -1788,7 +1792,7 @@ bool PeepholeOptimizer::run(MachineFunction &MF) {
17881792
MachineInstr *Dead = &*MII;
17891793
++MII;
17901794
MachineBasicBlock *DeadDest = TII->getBranchDestBlock(*Dead);
1791-
if (TII->getBranchDestBlock(*NewBr)!= DeadDest)
1795+
if (DT && TII->getBranchDestBlock(*NewBr) != DeadDest)
17921796
DT->deleteEdge(&MBB, DeadDest);
17931797
Dead->eraseFromParent();
17941798
}

llvm/test/CodeGen/AArch64/O3-pipeline.ll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,6 @@
158158
; CHECK-NEXT: MachinePostDominator Tree Construction
159159
; CHECK-NEXT: Machine Cycle Info Analysis
160160
; CHECK-NEXT: Machine code sinking
161-
; CHECK-NEXT: MachineDominator Tree Construction
162161
; CHECK-NEXT: Peephole Optimizations
163162
; CHECK-NEXT: Remove dead machine instructions
164163
; CHECK-NEXT: AArch64 MI Peephole Optimization pass

llvm/test/CodeGen/RISCV/O3-pipeline.ll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,6 @@
115115
; CHECK-NEXT: MachinePostDominator Tree Construction
116116
; CHECK-NEXT: Machine Cycle Info Analysis
117117
; CHECK-NEXT: Machine code sinking
118-
; CHECK-NEXT: MachineDominator Tree Construction
119118
; CHECK-NEXT: Peephole Optimizations
120119
; CHECK-NEXT: Remove dead machine instructions
121120
; CHECK-NEXT: Machine Trace Metrics

0 commit comments

Comments
 (0)