diff options
author | Nikita Popov <npopov@redhat.com> | 2024-07-11 09:13:37 +0200 |
---|---|---|
committer | Nikita Popov <npopov@redhat.com> | 2024-07-11 09:13:37 +0200 |
commit | 6a907699d8b4fb35a843ab8fd84ca56ed93fc201 (patch) | |
tree | 701af32d40c315b70f40dca3e07f1fe2ddc44818 /llvm/lib/CodeGen/MachineBasicBlock.cpp | |
parent | 7868033d2e846fa30c20455ca819fad29d9d795e (diff) | |
download | llvm-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.cpp | 16 |
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) |