aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineBasicBlock.cpp
diff options
context:
space:
mode:
authorNikita Popov <npopov@redhat.com>2024-07-11 09:13:37 +0200
committerNikita Popov <npopov@redhat.com>2024-07-11 09:13:37 +0200
commit6a907699d8b4fb35a843ab8fd84ca56ed93fc201 (patch)
tree701af32d40c315b70f40dca3e07f1fe2ddc44818 /llvm/lib/CodeGen/MachineBasicBlock.cpp
parent7868033d2e846fa30c20455ca819fad29d9d795e (diff)
downloadllvm-6a907699d8b4fb35a843ab8fd84ca56ed93fc201.zip
llvm-6a907699d8b4fb35a843ab8fd84ca56ed93fc201.tar.gz
llvm-6a907699d8b4fb35a843ab8fd84ca56ed93fc201.tar.bz2
Revert "[CodeGen] Remove `applySplitCriticalEdges` in `MachineDominatorTree` (#97055)"
This reverts commit c5e5088033fed170068d818c54af6862e449b545. Causes large compile-time regressions.
Diffstat (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineBasicBlock.cpp16
1 files changed, 3 insertions, 13 deletions
diff --git a/llvm/lib/CodeGen/MachineBasicBlock.cpp b/llvm/lib/CodeGen/MachineBasicBlock.cpp
index 131220a..5fe7a9d 100644
--- a/llvm/lib/CodeGen/MachineBasicBlock.cpp
+++ b/llvm/lib/CodeGen/MachineBasicBlock.cpp
@@ -16,13 +16,11 @@
#include "llvm/CodeGen/LiveIntervals.h"
#include "llvm/CodeGen/LivePhysRegs.h"
#include "llvm/CodeGen/LiveVariables.h"
-#include "llvm/CodeGen/MachineDomTreeUpdater.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineJumpTableInfo.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
-#include "llvm/CodeGen/MachinePostDominators.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/SlotIndexes.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
@@ -1341,17 +1339,9 @@ MachineBasicBlock *MachineBasicBlock::SplitCriticalEdge(
LIS->repairIntervalsInRange(this, getFirstTerminator(), end(), UsedRegs);
}
- auto *MDTWrapper =
- P.getAnalysisIfAvailable<MachineDominatorTreeWrapperPass>();
- auto *MPDTWrapper =
- P.getAnalysisIfAvailable<MachinePostDominatorTreeWrapperPass>();
- auto *MDT = MDTWrapper ? &MDTWrapper->getDomTree() : nullptr;
- auto *MPDT = MPDTWrapper ? &MPDTWrapper->getPostDomTree() : nullptr;
- MachineDomTreeUpdater MDTU(MDT, MPDT,
- MachineDomTreeUpdater::UpdateStrategy::Eager);
- MDTU.applyUpdates({{MachineDominatorTree::Insert, this, NMBB},
- {MachineDominatorTree::Insert, NMBB, Succ},
- {MachineDominatorTree::Delete, this, Succ}});
+ if (auto *MDTWrapper =
+ P.getAnalysisIfAvailable<MachineDominatorTreeWrapperPass>())
+ MDTWrapper->getDomTree().recordSplitCriticalEdge(this, Succ, NMBB);
auto *MLIWrapper = P.getAnalysisIfAvailable<MachineLoopInfoWrapperPass>();
if (MachineLoopInfo *MLI = MLIWrapper ? &MLIWrapper->getLI() : nullptr)