diff options
| author | paperchalice <liujunchang97@outlook.com> | 2024-12-11 14:25:17 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-11 14:25:17 +0800 |
| commit | 553058f825157b33a2d7f793c811f301260b765b (patch) | |
| tree | 0fefea1a58354cbb957df525a951dd615640a9b4 /llvm/lib/CodeGen/MachineLICM.cpp | |
| parent | 839c8217b989a22908fdd1ec48105ff22d655fb2 (diff) | |
Revert "[DomTreeUpdater] Move critical edge splitting code to updater" (#119512)
Reverts llvm/llvm-project#115111 Causes #119511
Diffstat (limited to 'llvm/lib/CodeGen/MachineLICM.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/MachineLICM.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/llvm/lib/CodeGen/MachineLICM.cpp b/llvm/lib/CodeGen/MachineLICM.cpp index d1d5509dc482..d21059189b18 100644 --- a/llvm/lib/CodeGen/MachineLICM.cpp +++ b/llvm/lib/CodeGen/MachineLICM.cpp @@ -24,7 +24,6 @@ #include "llvm/Analysis/AliasAnalysis.h" #include "llvm/CodeGen/MachineBasicBlock.h" #include "llvm/CodeGen/MachineBlockFrequencyInfo.h" -#include "llvm/CodeGen/MachineDomTreeUpdater.h" #include "llvm/CodeGen/MachineDominators.h" #include "llvm/CodeGen/MachineFrameInfo.h" #include "llvm/CodeGen/MachineFunction.h" @@ -134,7 +133,7 @@ namespace { AliasAnalysis *AA = nullptr; // Alias analysis info. MachineBlockFrequencyInfo *MBFI = nullptr; // Machine block frequncy info MachineLoopInfo *MLI = nullptr; // Current MachineLoopInfo - MachineDomTreeUpdater *MDTU = nullptr; // Wraps current dominator tree + MachineDominatorTree *DT = nullptr; // Machine dominator tree for the cur loop // State that is updated as we process loops bool Changed = false; // True if a loop is changed. @@ -376,9 +375,7 @@ bool MachineLICMImpl::run(MachineFunction &MF) { .getManager() .getResult<AAManager>(MF.getFunction()) : &LegacyPass->getAnalysis<AAResultsWrapperPass>().getAAResults(); - MachineDomTreeUpdater DTU(GET_RESULT(MachineDominatorTree, getDomTree, ), - MachineDomTreeUpdater::UpdateStrategy::Lazy); - MDTU = &DTU; + DT = GET_RESULT(MachineDominatorTree, getDomTree, ); MLI = GET_RESULT(MachineLoop, getLI, Info); MBFI = DisableHoistingToHotterBlocks != UseBFI::None ? GET_RESULT(MachineBlockFrequency, getMBFI, Info) @@ -424,7 +421,7 @@ bool MachineLICMImpl::run(MachineFunction &MF) { else { // CSEMap is initialized for loop header when the first instruction is // being hoisted. - MachineDomTreeNode *N = MDTU->getDomTree().getNode(CurLoop->getHeader()); + MachineDomTreeNode *N = DT->getNode(CurLoop->getHeader()); FirstInLoop = true; HoistOutOfLoop(N, CurLoop, CurPreheader); CSEMap.clear(); @@ -767,7 +764,7 @@ bool MachineLICMImpl::IsGuaranteedToExecute(MachineBasicBlock *BB, SmallVector<MachineBasicBlock*, 8> CurrentLoopExitingBlocks; CurLoop->getExitingBlocks(CurrentLoopExitingBlocks); for (MachineBasicBlock *CurrentLoopExitingBlock : CurrentLoopExitingBlocks) - if (!MDTU->getDomTree().dominates(BB, CurrentLoopExitingBlock)) { + if (!DT->dominates(BB, CurrentLoopExitingBlock)) { SpeculationState = SpeculateTrue; return false; } @@ -1603,7 +1600,7 @@ bool MachineLICMImpl::MayCSE(MachineInstr *MI) { unsigned Opcode = MI->getOpcode(); for (auto &Map : CSEMap) { // Check this CSEMap's preheader dominates MI's basic block. - if (MDTU->getDomTree().dominates(Map.first, MI->getParent())) { + if (DT->dominates(Map.first, MI->getParent())) { DenseMap<unsigned, std::vector<MachineInstr *>>::iterator CI = Map.second.find(Opcode); // Do not CSE implicit_def so ProcessImplicitDefs can properly propagate @@ -1671,7 +1668,7 @@ unsigned MachineLICMImpl::Hoist(MachineInstr *MI, MachineBasicBlock *Preheader, bool HasCSEDone = false; for (auto &Map : CSEMap) { // Check this CSEMap's preheader dominates MI's basic block. - if (MDTU->getDomTree().dominates(Map.first, MI->getParent())) { + if (DT->dominates(Map.first, MI->getParent())) { DenseMap<unsigned, std::vector<MachineInstr *>>::iterator CI = Map.second.find(Opcode); if (CI != Map.second.end()) { @@ -1735,7 +1732,7 @@ MachineLICMImpl::getCurPreheader(MachineLoop *CurLoop, } CurPreheader = Pred->SplitCriticalEdge(CurLoop->getHeader(), LegacyPass, - MFAM, nullptr, MDTU); + MFAM, nullptr); if (!CurPreheader) { CurPreheader = reinterpret_cast<MachineBasicBlock *>(-1); return nullptr; |
