diff --git a/llvm/examples/IRTransforms/SimplifyCFG.cpp b/llvm/examples/IRTransforms/SimplifyCFG.cpp index a37060cedb4a..5b8b9b0cef11 100644 --- a/llvm/examples/IRTransforms/SimplifyCFG.cpp +++ b/llvm/examples/IRTransforms/SimplifyCFG.cpp @@ -286,7 +286,7 @@ static bool mergeIntoSinglePredecessor_v1(Function &F) { } // Move all instructions from BB to Pred. for (Instruction &I : make_early_inc_range(BB)) - I.moveBefore(Pred->getTerminator()); + I.moveBefore(Pred->getTerminator()->getIterator()); // Remove the Pred's terminator (which jumped to BB). BB's terminator // will become Pred's terminator. @@ -337,7 +337,7 @@ static bool mergeIntoSinglePredecessor_v2(Function &F, DominatorTree &DT) { } // Move all instructions from BB to Pred. for (Instruction &I : make_early_inc_range(BB)) - I.moveBefore(Pred->getTerminator()); + I.moveBefore(Pred->getTerminator()->getIterator()); // Remove the Pred's terminator (which jumped to BB). BB's terminator // will become Pred's terminator. diff --git a/llvm/lib/Analysis/Loads.cpp b/llvm/lib/Analysis/Loads.cpp index 691d7e4a3edc..733a7988e5a7 100644 --- a/llvm/lib/Analysis/Loads.cpp +++ b/llvm/lib/Analysis/Loads.cpp @@ -361,7 +361,7 @@ bool llvm::isDereferenceableAndAlignedInLoop( } else return false; - Instruction *HeaderFirstNonPHI = L->getHeader()->getFirstNonPHI(); + Instruction *HeaderFirstNonPHI = &*L->getHeader()->getFirstNonPHIIt(); return isDereferenceableAndAlignedPointer(Base, Alignment, AccessSize, DL, HeaderFirstNonPHI, AC, &DT); } diff --git a/llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp b/llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp index 246eecd4ffca..2632e0ad546e 100644 --- a/llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp @@ -83,7 +83,7 @@ void SPIRVRegularizer::runLowerConstExpr(Function &F) { LLVM_DEBUG(dbgs() << "[lowerConstantExpressions] " << *CE); auto ReplInst = CE->getAsInstruction(); auto InsPoint = II->getParent() == &*FBegin ? II : &FBegin->back(); - ReplInst->insertBefore(InsPoint); + ReplInst->insertBefore(InsPoint->getIterator()); LLVM_DEBUG(dbgs() << " -> " << *ReplInst << '\n'); std::vector Users; // Do not replace use during iteration of use. Do it in another loop. @@ -97,7 +97,7 @@ void SPIRVRegularizer::runLowerConstExpr(Function &F) { for (auto &User : Users) { if (ReplInst->getParent() == User->getParent() && User->comesBefore(ReplInst)) - ReplInst->moveBefore(User); + ReplInst->moveBefore(User->getIterator()); User->replaceUsesOfWith(CE, ReplInst); } return ReplInst; diff --git a/llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp b/llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp index 2e4343c7922f..21539c92e5b4 100644 --- a/llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp @@ -683,7 +683,7 @@ class SPIRVStructurizer : public FunctionPass { }); for (Instruction *I : MergeInstructions) { - I->moveBefore(InsertionPoint); + I->moveBefore(InsertionPoint->getIterator()); InsertionPoint = I; } diff --git a/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp b/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp index df5f9833a2ff..c8bdf029dd71 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp @@ -2044,7 +2044,7 @@ convertFSqrtDivIntoFMul(CallInst *CI, Instruction *X, // instructions in R2 and get the most common fpmath metadata and fast-math // flags on it. auto *FSqrt = cast(CI->clone()); - FSqrt->insertBefore(CI); + FSqrt->insertBefore(CI->getIterator()); auto *R2FPMathMDNode = (*R2.begin())->getMetadata(LLVMContext::MD_fpmath); FastMathFlags R2FMF = (*R2.begin())->getFastMathFlags(); // Common FMF for (Instruction *I : R2) { diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp index f1f367be9a89..57b7358049bc 100644 --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -10301,8 +10301,8 @@ preparePlanForEpilogueVectorLoop(VPlan &Plan, Loop *L, // value. This ensures correctness when the start value might not be // less than the minimum value of a monotonically increasing induction // variable. - IRBuilder<> Builder( - cast(ResumeV)->getParent()->getFirstNonPHI()); + BasicBlock *ResumeBB = cast(ResumeV)->getParent(); + IRBuilder<> Builder(ResumeBB, ResumeBB->getFirstNonPHIIt()); Value *Cmp = Builder.CreateICmpEQ(ResumeV, RdxDesc.getRecurrenceStartValue()); ResumeV =