From 6a907699d8b4fb35a843ab8fd84ca56ed93fc201 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 11 Jul 2024 09:13:37 +0200 Subject: Revert "[CodeGen] Remove `applySplitCriticalEdges` in `MachineDominatorTree` (#97055)" This reverts commit c5e5088033fed170068d818c54af6862e449b545. Causes large compile-time regressions. --- llvm/lib/CodeGen/MachineBasicBlock.cpp | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp') 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(); - auto *MPDTWrapper = - P.getAnalysisIfAvailable(); - 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()) + MDTWrapper->getDomTree().recordSplitCriticalEdge(this, Succ, NMBB); auto *MLIWrapper = P.getAnalysisIfAvailable(); if (MachineLoopInfo *MLI = MLIWrapper ? &MLIWrapper->getLI() : nullptr) -- cgit v1.1