diff options
Diffstat (limited to 'llvm/lib/CodeGen/ModuloSchedule.cpp')
-rw-r--r-- | llvm/lib/CodeGen/ModuloSchedule.cpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/llvm/lib/CodeGen/ModuloSchedule.cpp b/llvm/lib/CodeGen/ModuloSchedule.cpp index b5517c4..fb133f7 100644 --- a/llvm/lib/CodeGen/ModuloSchedule.cpp +++ b/llvm/lib/CodeGen/ModuloSchedule.cpp @@ -759,15 +759,11 @@ void ModuloScheduleExpander::removeDeadInstructions(MachineBasicBlock *KernelBB, } // In the kernel block, check if we can remove a Phi that generates a value // used in an instruction removed in the epilog block. - for (MachineBasicBlock::iterator BBI = KernelBB->instr_begin(), - BBE = KernelBB->getFirstNonPHI(); - BBI != BBE;) { - MachineInstr *MI = &*BBI; - ++BBI; - Register reg = MI->getOperand(0).getReg(); + for (MachineInstr &MI : llvm::make_early_inc_range(KernelBB->phis())) { + Register reg = MI.getOperand(0).getReg(); if (MRI.use_begin(reg) == MRI.use_end()) { - LIS.RemoveMachineInstrFromMaps(*MI); - MI->eraseFromParent(); + LIS.RemoveMachineInstrFromMaps(MI); + MI.eraseFromParent(); } } } @@ -1223,8 +1219,7 @@ void EliminateDeadPhis(MachineBasicBlock *MBB, MachineRegisterInfo &MRI, bool Changed = true; while (Changed) { Changed = false; - for (auto I = MBB->begin(); I != MBB->getFirstNonPHI();) { - MachineInstr &MI = *I++; + for (MachineInstr &MI : llvm::make_early_inc_range(MBB->phis())) { assert(MI.isPHI()); if (MRI.use_empty(MI.getOperand(0).getReg())) { if (LIS) @@ -1768,8 +1763,8 @@ void PeelingModuloScheduleExpander::peelPrologAndEpilogs() { // Keep track at which iteration each phi belongs to. We need it to know // what version of the variable to use during prologue/epilogue stitching. EliminateDeadPhis(B, MRI, LIS, /*KeepSingleSrcPhi=*/true); - for (auto Phi = B->begin(), IE = B->getFirstNonPHI(); Phi != IE; ++Phi) - PhiNodeLoopIteration[&*Phi] = Schedule.getNumStages() - I; + for (MachineInstr &Phi : B->phis()) + PhiNodeLoopIteration[&Phi] = Schedule.getNumStages() - I; } for (size_t I = 0; I < Epilogs.size(); I++) { LS.reset(); |