diff options
Diffstat (limited to 'llvm/lib/CodeGen/InlineSpiller.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/InlineSpiller.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/llvm/lib/CodeGen/InlineSpiller.cpp b/llvm/lib/CodeGen/InlineSpiller.cpp index 69c671220db3..dc03f590ded3 100644 --- a/llvm/lib/CodeGen/InlineSpiller.cpp +++ b/llvm/lib/CodeGen/InlineSpiller.cpp @@ -70,8 +70,6 @@ STATISTIC(NumFolded, "Number of folded stack accesses"); STATISTIC(NumFoldedLoads, "Number of folded loads"); STATISTIC(NumRemats, "Number of rematerialized defs for spilling"); -static cl::opt<bool> DisableHoisting("disable-spill-hoist", cl::Hidden, - cl::desc("Disable inline spill hoisting")); static cl::opt<bool> RestrictStatepointRemat("restrict-statepoint-remat", cl::init(false), cl::Hidden, @@ -135,8 +133,8 @@ public: VirtRegMap &vrm) : MF(mf), LIS(pass.getAnalysis<LiveIntervals>()), LSS(pass.getAnalysis<LiveStacks>()), - MDT(pass.getAnalysis<MachineDominatorTree>()), VRM(vrm), - MRI(mf.getRegInfo()), TII(*mf.getSubtarget().getInstrInfo()), + MDT(pass.getAnalysis<MachineDominatorTreeWrapperPass>().getDomTree()), + VRM(vrm), MRI(mf.getRegInfo()), TII(*mf.getSubtarget().getInstrInfo()), TRI(*mf.getSubtarget().getRegisterInfo()), MBFI(pass.getAnalysis<MachineBlockFrequencyInfo>()), IPA(LIS, mf.getNumBlockIDs()) {} @@ -192,8 +190,8 @@ public: VirtRegAuxInfo &VRAI) : MF(MF), LIS(Pass.getAnalysis<LiveIntervals>()), LSS(Pass.getAnalysis<LiveStacks>()), - MDT(Pass.getAnalysis<MachineDominatorTree>()), VRM(VRM), - MRI(MF.getRegInfo()), TII(*MF.getSubtarget().getInstrInfo()), + MDT(Pass.getAnalysis<MachineDominatorTreeWrapperPass>().getDomTree()), + VRM(VRM), MRI(MF.getRegInfo()), TII(*MF.getSubtarget().getInstrInfo()), TRI(*MF.getSubtarget().getRegisterInfo()), MBFI(Pass.getAnalysis<MachineBlockFrequencyInfo>()), HSpiller(Pass, MF, VRM), VRAI(VRAI) {} @@ -1381,7 +1379,7 @@ void HoistSpillHelper::rmRedundantSpills( // earlier spill with smaller SlotIndex. for (auto *const CurrentSpill : Spills) { MachineBasicBlock *Block = CurrentSpill->getParent(); - MachineDomTreeNode *Node = MDT.getBase().getNode(Block); + MachineDomTreeNode *Node = MDT.getNode(Block); MachineInstr *PrevSpill = SpillBBToSpill[Node]; if (PrevSpill) { SlotIndex PIdx = LIS.getInstructionIndex(*PrevSpill); @@ -1389,9 +1387,9 @@ void HoistSpillHelper::rmRedundantSpills( MachineInstr *SpillToRm = (CIdx > PIdx) ? CurrentSpill : PrevSpill; MachineInstr *SpillToKeep = (CIdx > PIdx) ? PrevSpill : CurrentSpill; SpillsToRm.push_back(SpillToRm); - SpillBBToSpill[MDT.getBase().getNode(Block)] = SpillToKeep; + SpillBBToSpill[MDT.getNode(Block)] = SpillToKeep; } else { - SpillBBToSpill[MDT.getBase().getNode(Block)] = CurrentSpill; + SpillBBToSpill[MDT.getNode(Block)] = CurrentSpill; } } for (auto *const SpillToRm : SpillsToRm) @@ -1465,7 +1463,7 @@ void HoistSpillHelper::getVisitOrders( // Sort the nodes in WorkSet in top-down order and save the nodes // in Orders. Orders will be used for hoisting in runHoistSpills. unsigned idx = 0; - Orders.push_back(MDT.getBase().getNode(Root)); + Orders.push_back(MDT.getNode(Root)); do { MachineDomTreeNode *Node = Orders[idx++]; for (MachineDomTreeNode *Child : Node->children()) { |
