diff options
author | Arnaud A. de Grandmaison <arnaud.degrandmaison@arm.com> | 2015-06-11 07:45:05 +0000 |
---|---|---|
committer | Arnaud A. de Grandmaison <arnaud.degrandmaison@arm.com> | 2015-06-11 07:45:05 +0000 |
commit | 2e8ffa3b4496d124c542679f9367b22abdbc5daf (patch) | |
tree | 7b7d38f9873a29cc034ab6c84749514905d61671 /llvm/lib/CodeGen/PHIElimination.cpp | |
parent | b17f1129fa56026ab95fc4a9db693bd15ab832fb (diff) | |
download | llvm-2e8ffa3b4496d124c542679f9367b22abdbc5daf.zip llvm-2e8ffa3b4496d124c542679f9367b22abdbc5daf.tar.gz llvm-2e8ffa3b4496d124c542679f9367b22abdbc5daf.tar.bz2 |
[PHIElim] Use ranges and const-ify, NFC.
llvm-svn: 239508
Diffstat (limited to 'llvm/lib/CodeGen/PHIElimination.cpp')
-rw-r--r-- | llvm/lib/CodeGen/PHIElimination.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/llvm/lib/CodeGen/PHIElimination.cpp b/llvm/lib/CodeGen/PHIElimination.cpp index d514190..d343301 100644 --- a/llvm/lib/CodeGen/PHIElimination.cpp +++ b/llvm/lib/CodeGen/PHIElimination.cpp @@ -88,8 +88,8 @@ namespace { // These functions are temporary abstractions around LiveVariables and // LiveIntervals, so they can go away when LiveVariables does. - bool isLiveIn(unsigned Reg, MachineBasicBlock *MBB); - bool isLiveOutPastPHIs(unsigned Reg, MachineBasicBlock *MBB); + bool isLiveIn(unsigned Reg, const MachineBasicBlock *MBB); + bool isLiveOutPastPHIs(unsigned Reg, const MachineBasicBlock *MBB); typedef std::pair<unsigned, unsigned> BBVRegPair; typedef DenseMap<BBVRegPair, unsigned> VRegPHIUse; @@ -143,16 +143,16 @@ bool PHIElimination::runOnMachineFunction(MachineFunction &MF) { // updating LiveIntervals, so we disable it. if (!DisableEdgeSplitting && (LV || LIS)) { MachineLoopInfo *MLI = getAnalysisIfAvailable<MachineLoopInfo>(); - for (MachineFunction::iterator I = MF.begin(), E = MF.end(); I != E; ++I) - Changed |= SplitPHIEdges(MF, *I, MLI); + for (auto &MBB : MF) + Changed |= SplitPHIEdges(MF, MBB, MLI); } // Populate VRegPHIUseCount analyzePHINodes(MF); // Eliminate PHI instructions by inserting copies into predecessor blocks. - for (MachineFunction::iterator I = MF.begin(), E = MF.end(); I != E; ++I) - Changed |= EliminatePHINodes(MF, *I); + for (auto &MBB : MF) + Changed |= EliminatePHINodes(MF, MBB); // Remove dead IMPLICIT_DEF instructions. for (MachineInstr *DefMI : ImpDefs) { @@ -623,7 +623,7 @@ bool PHIElimination::SplitPHIEdges(MachineFunction &MF, return Changed; } -bool PHIElimination::isLiveIn(unsigned Reg, MachineBasicBlock *MBB) { +bool PHIElimination::isLiveIn(unsigned Reg, const MachineBasicBlock *MBB) { assert((LV || LIS) && "isLiveIn() requires either LiveVariables or LiveIntervals"); if (LIS) @@ -632,7 +632,8 @@ bool PHIElimination::isLiveIn(unsigned Reg, MachineBasicBlock *MBB) { return LV->isLiveIn(Reg, *MBB); } -bool PHIElimination::isLiveOutPastPHIs(unsigned Reg, MachineBasicBlock *MBB) { +bool PHIElimination::isLiveOutPastPHIs(unsigned Reg, + const MachineBasicBlock *MBB) { assert((LV || LIS) && "isLiveOutPastPHIs() requires either LiveVariables or LiveIntervals"); // LiveVariables considers uses in PHIs to be in the predecessor basic block, @@ -642,11 +643,9 @@ bool PHIElimination::isLiveOutPastPHIs(unsigned Reg, MachineBasicBlock *MBB) { // out of the block. if (LIS) { const LiveInterval &LI = LIS->getInterval(Reg); - for (MachineBasicBlock::succ_iterator SI = MBB->succ_begin(), - SE = MBB->succ_end(); SI != SE; ++SI) { - if (LI.liveAt(LIS->getMBBStartIdx(*SI))) + for (const MachineBasicBlock *SI : MBB->successors()) + if (LI.liveAt(LIS->getMBBStartIdx(SI))) return true; - } return false; } else { return LV->isLiveOut(Reg, *MBB); |