Author: Nikita Popov Date: 2026-10-03T11:08:13Z New Revision: 67910b29d26511c68b6d2df956fd9e6a00b9db6b
URL: https://github.com/llvm/llvm-project/commit/67910b29d26511c68b6d2df956fd9e6a00b9db6b DIFF: https://github.com/llvm/llvm-project/commit/67910b29d26511c68b6d2df956fd9e6a00b9db6b.diff LOG: [IRBuilder] Use SetInsertPoint without redundant BasicBlock argument (#228476) Replace calls of `SetInsertPoint(BB, It)` with just `SetInsertPoint(It)`. In preparation for deprecating that overload. Added: Modified: clang/lib/CodeGen/CGBlocks.cpp clang/lib/CodeGen/CGGPUBuiltin.cpp clang/lib/CodeGen/CGObjC.cpp clang/lib/CodeGen/CGObjCMac.cpp clang/lib/CodeGen/CGStmt.cpp clang/lib/CodeGen/CodeGenABITypes.cpp clang/lib/CodeGen/CodeGenFunction.cpp llvm/include/llvm/IR/IRBuilder.h llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h llvm/lib/Analysis/MemoryBuiltins.cpp llvm/lib/CodeGen/AtomicExpandPass.cpp llvm/lib/CodeGen/CodeGenPrepare.cpp llvm/lib/CodeGen/ExpandIRInsts.cpp llvm/lib/CodeGen/ShadowStackGCLowering.cpp llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp llvm/lib/IR/Core.cpp llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp llvm/lib/Target/ARM/MVELaneInterleavingPass.cpp llvm/lib/Target/ARM/MVETailPredication.cpp llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp llvm/lib/Transforms/Coroutines/CoroFrame.cpp llvm/lib/Transforms/IPO/Instrumentor.cpp llvm/lib/Transforms/IPO/OpenMPOpt.cpp llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp llvm/lib/Transforms/Scalar/ExpandMemCmp.cpp llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp llvm/lib/Transforms/Scalar/LoopPredication.cpp llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp llvm/lib/Transforms/Scalar/SROA.cpp llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp llvm/lib/Transforms/Scalar/Scalarizer.cpp llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp llvm/lib/Transforms/Utils/CallPromotionUtils.cpp llvm/lib/Transforms/Utils/FlattenCFG.cpp llvm/lib/Transforms/Utils/IntegerDivision.cpp llvm/lib/Transforms/Utils/LoopUtils.cpp llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp llvm/lib/Transforms/Utils/SimplifyIndVar.cpp llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp llvm/lib/Transforms/Vectorize/LoopIdiomVectorize.cpp llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp llvm/unittests/Analysis/MemorySSATest.cpp llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp llvm/unittests/IR/DebugInfoTest.cpp llvm/unittests/IR/IRBuilderTest.cpp llvm/unittests/Transforms/Utils/SSAUpdaterBulkTest.cpp mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp polly/lib/CodeGen/BlockGenerators.cpp polly/lib/CodeGen/CodeGeneration.cpp polly/lib/CodeGen/IslExprBuilder.cpp polly/lib/CodeGen/IslNodeBuilder.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/CGBlocks.cpp b/clang/lib/CodeGen/CGBlocks.cpp index d653df2b6c8b9e..26c34925b7a651 100644 --- a/clang/lib/CodeGen/CGBlocks.cpp +++ b/clang/lib/CodeGen/CGBlocks.cpp @@ -1588,7 +1588,7 @@ llvm::Function *CodeGenFunction::GenerateBlockFunction( entry_ptr = entry_ptr->getNextNode()->getIterator(); else entry_ptr = entry->end(); - Builder.SetInsertPoint(entry, entry_ptr); + Builder.SetInsertPoint(entry_ptr); // Emit debug information for all the DeclRefExprs. // FIXME: also for 'this' diff --git a/clang/lib/CodeGen/CGGPUBuiltin.cpp b/clang/lib/CodeGen/CGGPUBuiltin.cpp index 47cac03b645325..5d397b5a0d9d92 100644 --- a/clang/lib/CodeGen/CGGPUBuiltin.cpp +++ b/clang/lib/CodeGen/CGGPUBuiltin.cpp @@ -187,6 +187,6 @@ RValue CodeGenFunction::EmitAMDGPUDevicePrintfCallExpr(const CallExpr *E) { bool isBuffered = (CGM.getTarget().getTargetOpts().AMDGPUPrintfKindVal == clang::TargetOptions::AMDGPUPrintfKind::Buffered); auto Printf = llvm::emitAMDGPUPrintfCall(IRB, Args, isBuffered); - Builder.SetInsertPoint(IRB.GetInsertBlock(), IRB.GetInsertPoint()); + Builder.SetInsertPoint(IRB.GetInsertPoint()); return RValue::get(Printf); } diff --git a/clang/lib/CodeGen/CGObjC.cpp b/clang/lib/CodeGen/CGObjC.cpp index b9cbf593fb1c4b..94a204612dcde1 100644 --- a/clang/lib/CodeGen/CGObjC.cpp +++ b/clang/lib/CodeGen/CGObjC.cpp @@ -3035,13 +3035,12 @@ static llvm::Value *emitARCOperationAfterCall(CodeGenFunction &CGF, value = doFallback(CGF, value); } else if (llvm::CallInst *call = dyn_cast<llvm::CallInst>(value)) { // Place the retain immediately following the call. - CGF.Builder.SetInsertPoint(call->getParent(), - ++llvm::BasicBlock::iterator(call)); + CGF.Builder.SetInsertPoint(++llvm::BasicBlock::iterator(call)); value = doAfterCall(CGF, value); } else if (llvm::InvokeInst *invoke = dyn_cast<llvm::InvokeInst>(value)) { // Place the retain at the beginning of the normal destination block. llvm::BasicBlock *BB = invoke->getNormalDest(); - CGF.Builder.SetInsertPoint(BB, BB->begin()); + CGF.Builder.SetInsertPoint(BB->begin()); value = doAfterCall(CGF, value); // Bitcasts can arise because of related-result returns. Rewrite @@ -3049,7 +3048,7 @@ static llvm::Value *emitARCOperationAfterCall(CodeGenFunction &CGF, } else if (llvm::BitCastInst *bitcast = dyn_cast<llvm::BitCastInst>(value)) { // Change the insert point to avoid emitting the fall-back call after the // bitcast. - CGF.Builder.SetInsertPoint(bitcast->getParent(), bitcast->getIterator()); + CGF.Builder.SetInsertPoint(bitcast->getIterator()); llvm::Value *operand = bitcast->getOperand(0); operand = emitARCOperationAfterCall(CGF, operand, doAfterCall, doFallback); bitcast->setOperand(0, operand); diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp index ae0d4ad1869af2..6129a11ac5952c 100644 --- a/clang/lib/CodeGen/CGObjCMac.cpp +++ b/clang/lib/CodeGen/CGObjCMac.cpp @@ -5329,7 +5329,7 @@ void FragileHazards::emitHazardsInNewBlocks() { // call. If the call throws, then this is sufficient to // guarantee correctness as long as it doesn't also write to any // locals. - Builder.SetInsertPoint(&BB, BI); + Builder.SetInsertPoint(BI); emitReadHazard(Builder); } } diff --git a/clang/lib/CodeGen/CGStmt.cpp b/clang/lib/CodeGen/CGStmt.cpp index 03b6e84a1c136c..05b3693138b0aa 100644 --- a/clang/lib/CodeGen/CGStmt.cpp +++ b/clang/lib/CodeGen/CGStmt.cpp @@ -2856,7 +2856,7 @@ void AsmConstraintsInfo::EmitAsmStmt() { if (IsGCCAsmGoto && !CBRRegResults.empty()) { for (llvm::BasicBlock *Succ : CBR->getIndirectDests()) { llvm::IRBuilderBase::InsertPointGuard IPG(Builder); - Builder.SetInsertPoint(Succ, --(Succ->end())); + Builder.SetInsertPoint(--(Succ->end())); EmitAsmStores(CBRRegResults[Succ]); } } diff --git a/clang/lib/CodeGen/CodeGenABITypes.cpp b/clang/lib/CodeGen/CodeGenABITypes.cpp index a2f4c6fd9a26a5..7ae842a78a53df 100644 --- a/clang/lib/CodeGen/CodeGenABITypes.cpp +++ b/clang/lib/CodeGen/CodeGenABITypes.cpp @@ -130,7 +130,7 @@ llvm::Value *CodeGen::getCXXDestructorImplicitParam( CGF.CurCodeDecl = D; CGF.CurFuncDecl = D; CGF.CurFn = InsertBlock->getParent(); - CGF.Builder.SetInsertPoint(InsertBlock, InsertPoint); + CGF.Builder.SetInsertPoint(InsertPoint); return CGM.getCXXABI().getCXXDestructorImplicitParam( CGF, D, Type, ForVirtualBase, Delegating); } diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index 79bcae4c5f7a0d..26d8d73e1eb2f6 100644 --- a/clang/lib/CodeGen/CodeGenFunction.cpp +++ b/clang/lib/CodeGen/CodeGenFunction.cpp @@ -3240,7 +3240,7 @@ void CodeGenFunction::EmitAArch64MultiVersionResolver( } if (!AArch64CpuInitialized) { - Builder.SetInsertPoint(CurBlock, CurBlock->begin()); + Builder.SetInsertPoint(CurBlock->begin()); EmitAArch64CpuInit(); AArch64CpuInitialized = true; Builder.SetInsertPoint(CurBlock); diff --git a/llvm/include/llvm/IR/IRBuilder.h b/llvm/include/llvm/IR/IRBuilder.h index 1860526d257c1d..97658a2c7a8cfb 100644 --- a/llvm/include/llvm/IR/IRBuilder.h +++ b/llvm/include/llvm/IR/IRBuilder.h @@ -117,6 +117,8 @@ class IRBuilderBase { DebugLoc StoredDL; protected: + // TODO: Remove this in favor of InsertPt.getNodeParent(), so they cannot + // go out of sync. BasicBlock *BB; BasicBlock::iterator InsertPt; LLVMContext &Context; @@ -192,11 +194,9 @@ class IRBuilderBase { /// This specifies that created instructions should be inserted at the /// specified point. + // TODO: Deprecate this method. void SetInsertPoint(BasicBlock *TheBB, BasicBlock::iterator IP) { - BB = TheBB; - InsertPt = IP; - if (IP != TheBB->end()) - SetCurrentDebugLocation(IP->getStableDebugLoc()); + SetInsertPoint(IP); } /// This specifies that created instructions should be inserted at @@ -2930,15 +2930,17 @@ class IRBuilder : public IRBuilderBase { SetInsertPoint(IP); } + // TODO: Remove BasicBlock argument. IRBuilder(BasicBlock *TheBB, BasicBlock::iterator IP, FolderTy Folder) : IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter), Folder(Folder) { - SetInsertPoint(TheBB, IP); + SetInsertPoint(IP); } + // TODO: Remove BasicBlock argument. IRBuilder(BasicBlock *TheBB, BasicBlock::iterator IP) : IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter) { - SetInsertPoint(TheBB, IP); + SetInsertPoint(IP); } /// Avoid copying the full IRBuilder. Prefer using InsertPointGuard diff --git a/llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h b/llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h index ae2f0f998d85d4..e72235fbf6d42c 100644 --- a/llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h +++ b/llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h @@ -411,9 +411,7 @@ class SCEVExpander : public SCEVUseVisitor<SCEVExpander, Value *> { Builder.SetInsertPoint(IP); } - void setInsertPoint(BasicBlock::iterator IP) { - Builder.SetInsertPoint(IP->getParent(), IP); - } + void setInsertPoint(BasicBlock::iterator IP) { Builder.SetInsertPoint(IP); } /// Clear the current insertion point. This is useful if the instruction /// that had been serving as the insertion point may have been deleted. diff --git a/llvm/lib/Analysis/MemoryBuiltins.cpp b/llvm/lib/Analysis/MemoryBuiltins.cpp index 05316cc805bd10..b5ecc05cc33ddb 100644 --- a/llvm/lib/Analysis/MemoryBuiltins.cpp +++ b/llvm/lib/Analysis/MemoryBuiltins.cpp @@ -1404,7 +1404,7 @@ SizeOffsetValue ObjectSizeOffsetEvaluator::visitPHINode(PHINode &PHI) { // Compute offset/size for each PHI incoming pointer. for (unsigned i = 0, e = PHI.getNumIncomingValues(); i != e; ++i) { BasicBlock *IncomingBlock = PHI.getIncomingBlock(i); - Builder.SetInsertPoint(IncomingBlock, IncomingBlock->getFirstInsertionPt()); + Builder.SetInsertPoint(IncomingBlock->getFirstInsertionPt()); SizeOffsetValue EdgeData = compute_(PHI.getIncomingValue(i)); if (!EdgeData.bothKnown()) { diff --git a/llvm/lib/CodeGen/AtomicExpandPass.cpp b/llvm/lib/CodeGen/AtomicExpandPass.cpp index a07fb82a88fd15..37144a2cecadc7 100644 --- a/llvm/lib/CodeGen/AtomicExpandPass.cpp +++ b/llvm/lib/CodeGen/AtomicExpandPass.cpp @@ -1497,7 +1497,7 @@ Value *AtomicExpandImpl::insertRMWLLSCLoop( // (50/50) to prevent misleading optimizations. setExplicitlyUnknownBranchWeightsIfProfiled(*CondBr, DEBUG_TYPE); - Builder.SetInsertPoint(ExitBB, ExitBB->begin()); + Builder.SetInsertPoint(ExitBB->begin()); return Loaded; } @@ -1737,7 +1737,7 @@ bool AtomicExpandImpl::expandAtomicCmpXchg(AtomicCmpXchgInst *CI) { // succeeded or not. We expose this to later passes by converting any // subsequent "icmp eq/ne %loaded, %oldval" into a use of an appropriate // PHI. - Builder.SetInsertPoint(ExitBB, ExitBB->begin()); + Builder.SetInsertPoint(ExitBB->begin()); PHINode *LoadedExit = Builder.CreatePHI(UnreleasedLoad->getType(), 2, "loaded.exit"); LoadedExit->addIncoming(LoadedTryStore, SuccessBB); @@ -1750,7 +1750,7 @@ bool AtomicExpandImpl::expandAtomicCmpXchg(AtomicCmpXchgInst *CI) { // a type wider than the one in the cmpxchg instruction. Value *LoadedFull = LoadedExit; - Builder.SetInsertPoint(ExitBB, std::next(Success->getIterator())); + Builder.SetInsertPoint(std::next(Success->getIterator())); Value *Loaded = extractMaskedValue(Builder, LoadedFull, PMV); // Look for any users of the cmpxchg that are just comparing the loaded value @@ -1903,7 +1903,7 @@ Value *AtomicExpandImpl::insertRMWCmpXchgLoop( // to prevent misleading optimizations. setExplicitlyUnknownBranchWeightsIfProfiled(*CondBr, DEBUG_TYPE); - Builder.SetInsertPoint(ExitBB, ExitBB->begin()); + Builder.SetInsertPoint(ExitBB->begin()); return NewLoaded; } diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp index 8ad61486eb8695..0b96c77ff33eaf 100644 --- a/llvm/lib/CodeGen/CodeGenPrepare.cpp +++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp @@ -2686,7 +2686,7 @@ static bool despeculateCountZeros(IntrinsicInst *CountZeros, // Create a PHI in the end block to select either the output of the intrinsic // or the bit width of the operand. - Builder.SetInsertPoint(EndBlock, EndBlock->begin()); + Builder.SetInsertPoint(EndBlock->begin()); PHINode *PN = Builder.CreatePHI(Ty, 2, "ctz"); replaceAllUsesWith(CountZeros, PN, FreshBBs, IsHugeFunc); Value *BitWidth = Builder.getInt(APInt(SizeInBits, SizeInBits)); @@ -6575,7 +6575,7 @@ bool CodeGenPrepare::optimizeMulWithOverflow(Instruction *I, bool IsSigned, OldTerminator->eraseFromParent(); // BB overflow.res: - Builder.SetInsertPoint(OverflowResBB, OverflowResBB->getFirstInsertionPt()); + Builder.SetInsertPoint(OverflowResBB->getFirstInsertionPt()); // Create PHI nodes to merge results from no.overflow BB and overflow BB to // replace the extract instructions. PHINode *OverflowResPHI = Builder.CreatePHI(Ty, 2), @@ -6602,7 +6602,7 @@ bool CodeGenPrepare::optimizeMulWithOverflow(Instruction *I, bool IsSigned, I->removeFromParent(); // BB overflow: I->insertInto(OverflowBB, OverflowBB->end()); - Builder.SetInsertPoint(OverflowBB, OverflowBB->end()); + Builder.SetInsertPoint(OverflowBB->end()); Value *MulOverflow = Builder.CreateExtractValue(I, {0}, "mul.overflow"); Value *OverflowFlag = Builder.CreateExtractValue(I, {1}, "overflow.flag"); Builder.CreateBr(OverflowResBB); diff --git a/llvm/lib/CodeGen/ExpandIRInsts.cpp b/llvm/lib/CodeGen/ExpandIRInsts.cpp index 5ed6b10081c738..9f14696873bd83 100644 --- a/llvm/lib/CodeGen/ExpandIRInsts.cpp +++ b/llvm/lib/CodeGen/ExpandIRInsts.cpp @@ -792,7 +792,7 @@ static void expandFPToI(Instruction *FPToI, bool IsSaturating, bool IsSigned) { Builder.CreateBr(End); // cleanup: - Builder.SetInsertPoint(End, End->begin()); + Builder.SetInsertPoint(End->begin()); PHINode *Retval0 = Builder.CreatePHI(FPToI->getType(), 3 + IsSaturating); if (IsSaturating) @@ -1217,7 +1217,7 @@ static void expandIToFP(Instruction *IToFP) { Builder.CreateBr(End); // return: - Builder.SetInsertPoint(End, End->begin()); + Builder.SetInsertPoint(End->begin()); PHINode *Retval0 = Builder.CreatePHI(IToFP->getType(), 2); Retval0->addIncoming(A4, IfEnd26); Retval0->addIncoming(ConstantFP::getZero(IToFP->getType(), false), Entry); diff --git a/llvm/lib/CodeGen/ShadowStackGCLowering.cpp b/llvm/lib/CodeGen/ShadowStackGCLowering.cpp index f687902d6d06c8..993b18ce5bcc19 100644 --- a/llvm/lib/CodeGen/ShadowStackGCLowering.cpp +++ b/llvm/lib/CodeGen/ShadowStackGCLowering.cpp @@ -389,7 +389,7 @@ bool ShadowStackGCLoweringImpl::runOnFunction(Function &F, // shadow stack. while (isa<StoreInst>(IP)) ++IP; - AtEntry.SetInsertPoint(IP->getParent(), IP); + AtEntry.SetInsertPoint(IP); // Push the entry onto the shadow stack. // Next pointer is at offset 0, so it's just the frame pointer diff --git a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp index 2c60bf3d67a9cd..4e7f22434c95df 100644 --- a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp +++ b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp @@ -1674,7 +1674,7 @@ Error OpenMPIRBuilder::emitCancelationCheckImpl( Builder.CreateBr(*FiniBBOrErr); // The continuation block is where code generation continues. - Builder.SetInsertPoint(NonCancellationBlock, NonCancellationBlock->begin()); + Builder.SetInsertPoint(NonCancellationBlock->begin()); return Error::success(); } @@ -1788,7 +1788,7 @@ static void targetParallelCallback( // Add alloca for kernel args OpenMPIRBuilder ::InsertPointTy CurrentIP = Builder.saveIP(); - Builder.SetInsertPoint(OuterAllocaBB, OuterAllocaBB->getFirstInsertionPt()); + Builder.SetInsertPoint(OuterAllocaBB->getFirstInsertionPt()); AllocaInst *ArgsAlloca = Builder.CreateAlloca(ArrayType::get(PtrTy, NumCapturedVars)); Value *Args = ArgsAlloca; @@ -2202,8 +2202,7 @@ OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::createParallel( // Store to stack at end of the block that currently branches to the entry // block of the to-be-outlined region. - Builder.SetInsertPoint(InsertBB, - InsertBB->getTerminator()->getIterator()); + Builder.SetInsertPoint(InsertBB->getTerminator()->getIterator()); Builder.CreateStore(&V, Ptr); // Load back next to allocations in the to-be-outlined region. @@ -2457,7 +2456,7 @@ void OpenMPIRBuilder::createTaskwait(const LocationDescription &Loc, IRBuilderBase::InsertPointGuard IPGuard(Builder); BasicBlock &entryBB = Builder.GetInsertBlock()->getParent()->getEntryBlock(); - Builder.SetInsertPoint(&entryBB, entryBB.getFirstInsertionPt()); + Builder.SetInsertPoint(entryBB.getFirstInsertionPt()); DepArray = Builder.CreateAlloca(DepArrayTy, nullptr, ".dep.arr.addr"); } @@ -2764,7 +2763,7 @@ OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::createTaskloop( StaleCI->eraseFromParent(); - Builder.SetInsertPoint(TaskloopAllocaBB, TaskloopAllocaBB->begin()); + Builder.SetInsertPoint(TaskloopAllocaBB->begin()); LoadInst *SharedsOutlined = Builder.CreateLoad(VoidPtr, OutlinedFn.getArg(1)); @@ -2829,8 +2828,7 @@ OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::createTaskloop( // set the trip count in the CLI CLI->setTripCount(CastedTripCount); - Builder.SetInsertPoint(CLI->getBody(), - CLI->getBody()->getFirstInsertionPt()); + Builder.SetInsertPoint(CLI->getBody()->getFirstInsertionPt()); if (NumOfCollapseLoops > 1) { llvm::SmallVector<User *> UsersToReplace; @@ -2895,7 +2893,7 @@ OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::createTaskloop( }; addOutlineInfo(std::move(OI)); - Builder.SetInsertPoint(TaskloopExitBB, TaskloopExitBB->begin()); + Builder.SetInsertPoint(TaskloopExitBB->begin()); return Builder.saveIP(); } @@ -3181,7 +3179,7 @@ OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::createTask( StaleCI->eraseFromParent(); - Builder.SetInsertPoint(TaskAllocaBB, TaskAllocaBB->begin()); + Builder.SetInsertPoint(TaskAllocaBB->begin()); if (HasShareds) { LoadInst *Shareds = Builder.CreateLoad(VoidPtr, OutlinedFn.getArg(1)); OutlinedFn.getArg(1)->replaceUsesWithIf( @@ -3197,7 +3195,7 @@ OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::createTask( }; addOutlineInfo(std::move(OI)); - Builder.SetInsertPoint(TaskExitBB, TaskExitBB->begin()); + Builder.SetInsertPoint(TaskExitBB->begin()); return Builder.saveIP(); } @@ -4828,7 +4826,7 @@ OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::createReductionsGPU( BasicBlock *InsertBlock = Loc.IP.getNodeParent(); ContinuationBlock = InsertBlock->splitBasicBlock(Loc.IP, "reduce.finalize"); InsertBlock->getTerminator()->eraseFromParent(); - Builder.SetInsertPoint(InsertBlock, InsertBlock->end()); + Builder.SetInsertPoint(InsertBlock->end()); } Function *CurFunc = Builder.GetInsertBlock()->getParent(); @@ -5279,7 +5277,7 @@ OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::createReductions( Builder.SetInsertPoint(AllocaIP.getNodeParent()->getTerminator()); Value *RedArray = Builder.CreateAlloca(RedArrayTy, nullptr, "red.array"); - Builder.SetInsertPoint(InsertBlock, InsertBlock->end()); + Builder.SetInsertPoint(InsertBlock->end()); // Emitting the alloca moved the insertion point into the alloca block and // can clear the debug loc. Restore back to Loc.DL. Builder.SetCurrentDebugLocation(Loc.DL); @@ -6206,16 +6204,14 @@ OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::applyStaticWorkshareLoop( // the latch block. CLI->mapIndVar([&](Instruction *OldIV) -> Value * { - Builder.SetInsertPoint(CLI->getBody(), - CLI->getBody()->getFirstInsertionPt()); + Builder.SetInsertPoint(CLI->getBody()->getFirstInsertionPt()); Builder.SetCurrentDebugLocation(DL); return Builder.CreateAdd(OldIV, LowerBound, "", /*HasNUW=*/false, /*HasNSW=*/Config.hasNoSignedWrap()); }); // In the "exit" block, call the "fini" function. - Builder.SetInsertPoint(CLI->getExit(), - CLI->getExit()->getTerminator()->getIterator()); + Builder.SetInsertPoint(CLI->getExit()->getTerminator()->getIterator()); createRuntimeFunctionCall(StaticFini, {SrcLoc, ThreadNum}); // Add the barrier if requested. @@ -6448,7 +6444,7 @@ OpenMPIRBuilder::applyStaticChunkedWorkshareLoop( }); // In the "exit" block, call the "fini" function. - Builder.SetInsertPoint(DispatchExit, DispatchExit->getFirstInsertionPt()); + Builder.SetInsertPoint(DispatchExit->getFirstInsertionPt()); createRuntimeFunctionCall(StaticFini, {SrcLoc, ThreadNum}); // Add the barrier if requested. @@ -6922,7 +6918,7 @@ OpenMPIRBuilder::applyDynamicWorkshareLoop(DebugLoc DL, CanonicalLoopInfo *CLI, PreHeader->getContext(), Twine(PreHeader->getName()) + ".outer.cond", PreHeader->getParent()); // This needs to be 32-bit always, so can't use the IVTy Zero above. - Builder.SetInsertPoint(OuterCond, OuterCond->getFirstInsertionPt()); + Builder.SetInsertPoint(OuterCond->getFirstInsertionPt()); Value *Res = createRuntimeFunctionCall( DynamicNext, {SrcLoc, ThreadNum, PLastIter, PLowerBound, PUpperBound, PStride}); @@ -6947,7 +6943,7 @@ OpenMPIRBuilder::applyDynamicWorkshareLoop(DebugLoc DL, CanonicalLoopInfo *CLI, // Modify the inner condition: // * Use the UpperBound returned from the DynamicNext call. // * jump to the loop outer loop when done with one of the inner loops. - Builder.SetInsertPoint(Cond, Cond->getFirstInsertionPt()); + Builder.SetInsertPoint(Cond->getFirstInsertionPt()); UpperBound = Builder.CreateLoad(IVTy, PUpperBound, "ub"); Instruction *Comp = &*Builder.GetInsertPoint(); auto *CI = cast<CmpInst>(Comp); @@ -11857,7 +11853,7 @@ OpenMPIRBuilder::InsertPointTy OpenMPIRBuilder::createAtomicCompare( Builder.CreateBr(ExitBB); // ExitBB: merge results from NaN, Zero, and Normal paths. - Builder.SetInsertPoint(ExitBB, ExitBB->begin()); + Builder.SetInsertPoint(ExitBB->begin()); PHINode *OldIntPHI = Builder.CreatePHI(IntCastTy, 3, X.Var->getName() + ".atomic.old"); OldIntPHI->addIncoming(XCurr, NaNBB); @@ -12101,7 +12097,7 @@ OpenMPIRBuilder::createTeams(const LocationDescription &Loc, BasicBlock &OuterAllocaBB = CurrentFunction->getEntryBlock(); if (&OuterAllocaBB == Builder.GetInsertBlock()) { BasicBlock *BodyBB = splitBB(Builder, /*CreateBranch=*/true, "teams.entry"); - Builder.SetInsertPoint(BodyBB, BodyBB->begin()); + Builder.SetInsertPoint(BodyBB->begin()); } // The current basic block is split into four basic blocks. After outlining, @@ -12253,7 +12249,7 @@ OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::createDistribute( if (OuterAllocaBB == Builder.GetInsertBlock()) { BasicBlock *BodyBB = splitBB(Builder, /*CreateBranch=*/true, "distribute.entry"); - Builder.SetInsertPoint(BodyBB, BodyBB->begin()); + Builder.SetInsertPoint(BodyBB->begin()); } BasicBlock *ExitBB = splitBB(Builder, /*CreateBranch=*/true, "distribute.exit"); @@ -12912,7 +12908,7 @@ OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::createIteratorLoop( } // Link After -> ContBB - Builder.SetInsertPoint(CLI->getAfter(), CLI->getAfter()->begin()); + Builder.SetInsertPoint(CLI->getAfter()->begin()); if (!CLI->getAfter()->hasTerminator()) Builder.CreateBr(ContBB); diff --git a/llvm/lib/IR/Core.cpp b/llvm/lib/IR/Core.cpp index 93b03bf107516b..0025b7b78ccc7b 100644 --- a/llvm/lib/IR/Core.cpp +++ b/llvm/lib/IR/Core.cpp @@ -3448,7 +3448,7 @@ static void LLVMPositionBuilderImpl(IRBuilder<> *Builder, BasicBlock *Block, Instruction *Instr, bool BeforeDbgRecords) { BasicBlock::iterator I = Instr ? Instr->getIterator() : Block->end(); I.setHeadBit(BeforeDbgRecords); - Builder->SetInsertPoint(Block, I); + Builder->SetInsertPoint(I); } void LLVMPositionBuilder(LLVMBuilderRef Builder, LLVMBasicBlockRef Block, diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp index aa822c13dd8fe1..4e1c8da419fd27 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp @@ -985,7 +985,7 @@ void AMDGPUAtomicOptimizerImpl::optimizeAtomic(Instruction &I, if (IsPixelShader) { // Need a final PHI to reconverge to above the helper lane branch mask. - B.SetInsertPoint(PixelExitBB, PixelExitBB->getFirstNonPHIIt()); + B.SetInsertPoint(PixelExitBB->getFirstNonPHIIt()); PHINode *const PHI = B.CreatePHI(Ty, 2); PHI->addIncoming(PoisonValue::get(Ty), PixelEntryBB); diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp index 823612d5d75059..0c882c704560a2 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp @@ -836,7 +836,7 @@ void AMDGPUSwLowerLDS::lowerKernelLDSAccesses(Function *Func, if (isa<ConstantInt>(AI->getArraySize())) AI->moveBefore(*WIdBlock, WIdBlock->end()); - IRB.SetInsertPoint(WIdBlock, WIdBlock->end()); + IRB.SetInsertPoint(WIdBlock->end()); DebugLoc FirstDL = getOrCreateDebugLoc(&*PrevEntryBlock->begin(), Func->getSubprogram()); IRB.SetCurrentDebugLocation(FirstDL); @@ -852,7 +852,7 @@ void AMDGPUSwLowerLDS::lowerKernelLDSAccesses(Function *Func, IRB.CreateCondBr(WIdzCond, MallocBlock, PrevEntryBlock); // Malloc block - IRB.SetInsertPoint(MallocBlock, MallocBlock->begin()); + IRB.SetInsertPoint(MallocBlock->begin()); // If Dynamic LDS globals are accessed by the kernel, // Get the size of dyn lds from hidden dyn_lds_size kernel arg. @@ -941,7 +941,7 @@ void AMDGPUSwLowerLDS::lowerKernelLDSAccesses(Function *Func, // Create wave-group barrier at the starting of Previous entry block Type *Int1Ty = IRB.getInt1Ty(); - IRB.SetInsertPoint(PrevEntryBlock, PrevEntryBlock->begin()); + IRB.SetInsertPoint(PrevEntryBlock->begin()); auto *XYZCondPhi = IRB.CreatePHI(Int1Ty, 2, "xyzCond"); XYZCondPhi->addIncoming(IRB.getInt1(0), WIdBlock); XYZCondPhi->addIncoming(IRB.getInt1(1), MallocBlock); @@ -967,19 +967,19 @@ void AMDGPUSwLowerLDS::lowerKernelLDSAccesses(Function *Func, if (!BB.empty()) { if (ReturnInst *RI = dyn_cast<ReturnInst>(&BB.back())) { RI->eraseFromParent(); - IRB.SetInsertPoint(&BB, BB.end()); + IRB.SetInsertPoint(BB.end()); IRB.CreateBr(CondFreeBlock); } } } // Cond Free Block - IRB.SetInsertPoint(CondFreeBlock, CondFreeBlock->begin()); + IRB.SetInsertPoint(CondFreeBlock->begin()); IRB.CreateIntrinsic(Intrinsic::amdgcn_s_barrier, {}); IRB.CreateCondBr(XYZCondPhi, FreeBlock, EndBlock); // Free Block - IRB.SetInsertPoint(FreeBlock, FreeBlock->begin()); + IRB.SetInsertPoint(FreeBlock->begin()); // Free the previously allocate device global memory. FunctionCallee AsanFreeFunc = M.getOrInsertFunction( @@ -995,7 +995,7 @@ void AMDGPUSwLowerLDS::lowerKernelLDSAccesses(Function *Func, IRB.CreateBr(EndBlock); // End Block - IRB.SetInsertPoint(EndBlock, EndBlock->begin()); + IRB.SetInsertPoint(EndBlock->begin()); IRB.CreateRetVoid(); // Update the DomTree with corresponding links to basic blocks. DTU.applyUpdates({{DominatorTree::Insert, WIdBlock, MallocBlock}, diff --git a/llvm/lib/Target/ARM/MVELaneInterleavingPass.cpp b/llvm/lib/Target/ARM/MVELaneInterleavingPass.cpp index 751ab86853be36..251cee3438e193 100644 --- a/llvm/lib/Target/ARM/MVELaneInterleavingPass.cpp +++ b/llvm/lib/Target/ARM/MVELaneInterleavingPass.cpp @@ -376,7 +376,7 @@ static bool tryInterleave(Instruction *Start, for (Instruction *I : Truncs) { LLVM_DEBUG(dbgs() << "Replacing trunc " << *I << "\n"); - Builder.SetInsertPoint(I->getParent(), ++I->getIterator()); + Builder.SetInsertPoint(++I->getIterator()); Value *Shuf = Builder.CreateShuffleVector(I, TruncMask); I->replaceAllUsesWith(Shuf); cast<Instruction>(Shuf)->setOperand(0, I); diff --git a/llvm/lib/Target/ARM/MVETailPredication.cpp b/llvm/lib/Target/ARM/MVETailPredication.cpp index 9e3346efbaeb56..ca9134b746dbb3 100644 --- a/llvm/lib/Target/ARM/MVETailPredication.cpp +++ b/llvm/lib/Target/ARM/MVETailPredication.cpp @@ -379,7 +379,7 @@ void MVETailPredication::InsertVCTPIntrinsic(IntrinsicInst *ActiveLaneMask, cast<FixedVectorType>(ActiveLaneMask->getType())->getNumElements(); // Insert a phi to count the number of elements processed by the loop. - Builder.SetInsertPoint(L->getHeader(), L->getHeader()->getFirstNonPHIIt()); + Builder.SetInsertPoint(L->getHeader()->getFirstNonPHIIt()); PHINode *Processed = Builder.CreatePHI(Ty, 2); Processed->addIncoming(Start, L->getLoopPreheader()); diff --git a/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp b/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp index 7e02e532392646..15a7eedafc8050 100644 --- a/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp +++ b/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp @@ -1442,7 +1442,7 @@ bool PolynomialMultiplyRecognize::convertShiftsToLeft(BasicBlock *LoopB, // them right after the loop exit. // Take advantage of the loop-closed SSA form, which has all the post- // loop values in phi nodes. - IRB.SetInsertPoint(ExitB, ExitB->getFirstInsertionPt()); + IRB.SetInsertPoint(ExitB->getFirstInsertionPt()); for (auto P = ExitB->begin(), Q = ExitB->end(); P != Q; ++P) { if (!isa<PHINode>(P)) break; diff --git a/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp b/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp index c4cb3a7bf50c17..72b11f35c43001 100644 --- a/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp +++ b/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp @@ -567,7 +567,7 @@ void HexagonVectorLoopCarriedReuse::reuseValue() { } BasicBlock *BB = BEInst->getParent(); IRBuilder<> IRB(BB); - IRB.SetInsertPoint(BB, BB->getFirstNonPHIIt()); + IRB.SetInsertPoint(BB->getFirstNonPHIIt()); Value *BEVal = BEInst; PHINode *NewPhi; for (int i = Iterations-1; i >=0 ; --i) { diff --git a/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp b/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp index 6fe7688224d390..1652fa42ec89d9 100644 --- a/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp +++ b/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp @@ -108,7 +108,7 @@ class PPCBoolRetToInt : public FunctionPass { if (auto *I = dyn_cast<Instruction>(V)) IRB.SetInsertPoint(I->getNextNode()); else - IRB.SetInsertPoint(&Func->getEntryBlock(), Func->getEntryBlock().begin()); + IRB.SetInsertPoint(Func->getEntryBlock().begin()); return IRB.CreateZExt(V, IntTy); } diff --git a/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp b/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp index 987ec7bedaa1f4..193503b8a30dc9 100644 --- a/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp @@ -3795,7 +3795,7 @@ bool SPIRVEmitIntrinsicsImpl::runOnFunction(Function &Func) { I->eraseFromParent(); } - B.SetInsertPoint(&Func.getEntryBlock(), Func.getEntryBlock().begin()); + B.SetInsertPoint(Func.getEntryBlock().begin()); for (auto &GV : Func.getParent()->globals()) processGlobalValue(GV, B); diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp index 42918e39fae910..c885f3ecc443b1 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp @@ -1377,7 +1377,7 @@ bool WebAssemblyLowerEmscriptenEHSjLjImpl::runSjLjOnFunction(Function &F) { // Add a phi to the tail, which will be the output of setjmp, which // indicates if this is the first call or a longjmp back. The phi directly // uses the right value based on where we arrive from - IRB.SetInsertPoint(Tail, Tail->getFirstNonPHIIt()); + IRB.SetInsertPoint(Tail->getFirstNonPHIIt()); PHINode *SetjmpRet = IRB.CreatePHI(IRB.getInt32Ty(), 2, "setjmp.ret"); // setjmp initial call returns 0 diff --git a/llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp b/llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp index 5e1a30a37f1a8a..24df2293160c1c 100644 --- a/llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp +++ b/llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp @@ -511,7 +511,7 @@ X86LowerAMXIntrinsics::lowerTileDP(Instruction *TileDP) { KDWord, C, A, B); // we cannot assume there always be bitcast after tiledpbssd. So we need to // insert one bitcast as required - Builder.SetInsertPoint(End, End->getFirstNonPHIIt()); + Builder.SetInsertPoint(End->getFirstNonPHIIt()); Value *ResAMX = Builder.CreateBitCast(ResVec, Type::getX86_AMXTy(Builder.getContext())); // Delete TileDP intrinsic and do some clean-up. @@ -555,7 +555,7 @@ bool X86LowerAMXIntrinsics::lowerTileLoadStore(Instruction *TileLoadStore) { if (IsTileLoad) { // we cannot assume there always be bitcast after tileload. So we need to // insert one bitcast as required - Builder.SetInsertPoint(End, End->getFirstNonPHIIt()); + Builder.SetInsertPoint(End->getFirstNonPHIIt()); Value *ResAMX = Builder.CreateBitCast(ResVec, Type::getX86_AMXTy(Builder.getContext())); // Delete tileloadd6 intrinsic and do some clean-up diff --git a/llvm/lib/Transforms/Coroutines/CoroFrame.cpp b/llvm/lib/Transforms/Coroutines/CoroFrame.cpp index ec65af3449cae5..e162be1dba42da 100644 --- a/llvm/lib/Transforms/Coroutines/CoroFrame.cpp +++ b/llvm/lib/Transforms/Coroutines/CoroFrame.cpp @@ -1098,8 +1098,7 @@ static void insertSpills(const FrameDataInfo &FrameData, coro::Shape &Shape) { // reference provided with the frame GEP. if (CurrentBlock != U->getParent()) { CurrentBlock = U->getParent(); - Builder.SetInsertPoint(CurrentBlock, - CurrentBlock->getFirstInsertionPt()); + Builder.SetInsertPoint(CurrentBlock->getFirstInsertionPt()); auto *GEP = createGEPToFramePointer(FrameData, Builder, Shape, E.first); GEP->setName(E.first->getName() + Twine(".reload.addr")); @@ -1194,7 +1193,7 @@ static void insertSpills(const FrameDataInfo &FrameData, coro::Shape &Shape) { if (Shape.ABI == coro::ABI::Retcon || Shape.ABI == coro::ABI::RetconOnce || Shape.ABI == coro::ABI::Async) { // If we found any allocas, replace all of their remaining uses with Geps. - Builder.SetInsertPoint(SpillBlock, SpillBlock->begin()); + Builder.SetInsertPoint(SpillBlock->begin()); for (const auto &P : FrameData.Allocas) { AllocaInst *Alloca = P.Alloca; auto *G = createGEPToFramePointer(FrameData, Builder, Shape, Alloca); @@ -1220,8 +1219,7 @@ static void insertSpills(const FrameDataInfo &FrameData, coro::Shape &Shape) { // dbg.declares and dbg.values with the reload from the frame. // Note: We cannot replace the alloca with GEP instructions indiscriminately, // as some of the uses may not be dominated by CoroBegin. - Builder.SetInsertPoint(Shape.AllocaSpillBlock, - Shape.AllocaSpillBlock->begin()); + Builder.SetInsertPoint(Shape.AllocaSpillBlock->begin()); SmallVector<Instruction *, 4> UsersToUpdate; for (const auto &A : FrameData.Allocas) { AllocaInst *Alloca = A.Alloca; @@ -1837,7 +1835,7 @@ salvageDebugInfoImpl(SmallDenseMap<Argument *, AllocaInst *, 4> &ArgToAllocaMap, auto InsertPt = F->getEntryBlock().getFirstInsertionPt(); while (isa<IntrinsicInst>(InsertPt)) ++InsertPt; - Builder.SetInsertPoint(&F->getEntryBlock(), InsertPt); + Builder.SetInsertPoint(InsertPt); while (auto *Inst = dyn_cast_or_null<Instruction>(Storage)) { if (auto *LdInst = dyn_cast<LoadInst>(Inst)) { diff --git a/llvm/lib/Transforms/IPO/Instrumentor.cpp b/llvm/lib/Transforms/IPO/Instrumentor.cpp index afbfcdb196afb2..59909ee2aac1a0 100644 --- a/llvm/lib/Transforms/IPO/Instrumentor.cpp +++ b/llvm/lib/Transforms/IPO/Instrumentor.cpp @@ -432,7 +432,7 @@ bool InstrumentorImpl::instrumentModule() { IConf.getRTName(Ctor ? "ctor" : "dtor", ""), M); auto *EntryBB = BasicBlock::Create(IIRB.Ctx, "entry", YtorFn); - IIRB.IRB.SetInsertPoint(EntryBB, EntryBB->begin()); + IIRB.IRB.SetInsertPoint(EntryBB->begin()); ensureDbgLoc(IIRB.IRB); IIRB.IRB.CreateRetVoid(); diff --git a/llvm/lib/Transforms/IPO/OpenMPOpt.cpp b/llvm/lib/Transforms/IPO/OpenMPOpt.cpp index 6f270eb27fc0b3..8b5a91a033bb33 100644 --- a/llvm/lib/Transforms/IPO/OpenMPOpt.cpp +++ b/llvm/lib/Transforms/IPO/OpenMPOpt.cpp @@ -1794,8 +1794,7 @@ struct OpenMPOpt { auto &IRBuilder = OMPInfoCache.OMPBuilder; Function *F = RuntimeCall.getCaller(); BasicBlock &Entry = F->getEntryBlock(); - IRBuilder.Builder.SetInsertPoint(&Entry, - Entry.getFirstNonPHIOrDbgOrAlloca()); + IRBuilder.Builder.SetInsertPoint(Entry.getFirstNonPHIOrDbgOrAlloca()); Value *Handle = IRBuilder.Builder.CreateAlloca( IRBuilder.AsyncInfo, /*ArraySize=*/nullptr, "handle"); Handle = diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp index 60412f867fb69f..6242119aa5c3ba 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp @@ -4980,7 +4980,7 @@ Value *InstCombinerImpl::foldXorOfICmps(ICmpInst *LHS, ICmpInst *RHS, // users are freely-invertible, so that 'not' *will* get folded away. BuilderTy::InsertPointGuard Guard(Builder); // Set insertion point to right after the Y. - Builder.SetInsertPoint(Y->getParent(), ++(Y->getIterator())); + Builder.SetInsertPoint(++(Y->getIterator())); Value *NotY = Builder.CreateNot(Y, Y->getName() + ".not"); // Replace all uses of Y (excluding the one in NotY!) with NotY. Worklist.pushUsersToWorkList(*Y); diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp index 071946ea13f985..cab9b9f65b10ff 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp @@ -1950,7 +1950,7 @@ static Value *foldSinAndCosToSinCos(IntrinsicInst *II, IRBuilderBase &B, B.SetInsertPoint(*InsertPt); } else { BasicBlock &EntryBB = II->getFunction()->getEntryBlock(); - B.SetInsertPoint(&EntryBB, EntryBB.begin()); + B.SetInsertPoint(EntryBB.begin()); } Function *SinCosFunc = Intrinsic::getOrInsertDeclaration( diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp index 9cc0bef2fb06a0..289e074d289c90 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp @@ -488,7 +488,7 @@ static void setInsertionPoint(IRBuilder<> &Builder, Value *V, bool Before = true) { if (auto *PHI = dyn_cast<PHINode>(V)) { BasicBlock *Parent = PHI->getParent(); - Builder.SetInsertPoint(Parent, Parent->getFirstInsertionPt()); + Builder.SetInsertPoint(Parent->getFirstInsertionPt()); return; } if (auto *I = dyn_cast<Instruction>(V)) { @@ -500,7 +500,7 @@ static void setInsertionPoint(IRBuilder<> &Builder, Value *V, if (auto *A = dyn_cast<Argument>(V)) { // Set the insertion point in the entry block. BasicBlock &Entry = A->getParent()->getEntryBlock(); - Builder.SetInsertPoint(&Entry, Entry.getFirstInsertionPt()); + Builder.SetInsertPoint(Entry.getFirstInsertionPt()); return; } // Otherwise, this is a constant and we don't need to set a new diff --git a/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp b/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp index f61defa969b189..a6aa688ca5843f 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp @@ -1335,7 +1335,7 @@ static Value *simplifyUsingControlFlow(InstCombiner &Self, PHINode &PN, // sinking. auto InsertPt = BB->getFirstInsertionPt(); if (InsertPt != BB->end()) { - Self.Builder.SetInsertPoint(&*BB, InsertPt); + Self.Builder.SetInsertPoint(InsertPt); return Self.Builder.CreateNot(Cond); } @@ -1381,7 +1381,7 @@ static Value *foldDependentIVs(PHINode &PN, IRBuilderBase &Builder) { if (Iv2Start != Identity) return nullptr; - Builder.SetInsertPoint(&*BB, BB->getFirstInsertionPt()); + Builder.SetInsertPoint(BB->getFirstInsertionPt()); if (!BO) { auto *GEP = cast<GEPOperator>(IvNext); return Builder.CreateGEP(GEP->getSourceElementType(), Start, Iv2, "", diff --git a/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp b/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp index 4a9c66b1bad439..e86a51ee15b16a 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp @@ -3210,7 +3210,7 @@ static Instruction *foldSelectToPhiImpl(SelectInst &Sel, BasicBlock *BB, return nullptr; } - Builder.SetInsertPoint(BB, BB->begin()); + Builder.SetInsertPoint(BB->begin()); auto *PN = Builder.CreatePHI(Sel.getType(), Inputs.size()); for (auto *Pred : predecessors(BB)) PN->addIncoming(Inputs[Pred], Pred); diff --git a/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp b/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp index 133aa4253d50d0..3f3a27397250a7 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp @@ -1312,7 +1312,7 @@ Instruction *InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse( // Note that the same block can be a predecessor more than once, // and we need to preserve that invariant for the PHI node. BuilderTy::InsertPointGuard Guard(Builder); - Builder.SetInsertPoint(UseBB, UseBB->getFirstNonPHIIt()); + Builder.SetInsertPoint(UseBB->getFirstNonPHIIt()); auto *PHI = Builder.CreatePHI(AggTy, Preds.size(), OrigIVI.getName() + ".merged"); for (BasicBlock *Pred : Preds) diff --git a/llvm/lib/Transforms/Scalar/ExpandMemCmp.cpp b/llvm/lib/Transforms/Scalar/ExpandMemCmp.cpp index e05a5d2e9e5855..2a3f5267e409b5 100644 --- a/llvm/lib/Transforms/Scalar/ExpandMemCmp.cpp +++ b/llvm/lib/Transforms/Scalar/ExpandMemCmp.cpp @@ -710,7 +710,7 @@ void MemCmpExpansion::emitMemCmpResultBlock() { // need to be calculated and can simply return 1. if (IsUsedForZeroCmp) { BasicBlock::iterator InsertPt = ResBlock.BB->getFirstInsertionPt(); - Builder.SetInsertPoint(ResBlock.BB, InsertPt); + Builder.SetInsertPoint(InsertPt); Value *Res = ConstantInt::get(Type::getInt32Ty(CI->getContext()), 1); PhiRes->addIncoming(Res, ResBlock.BB); Builder.CreateBr(EndBlock); @@ -719,7 +719,7 @@ void MemCmpExpansion::emitMemCmpResultBlock() { return; } BasicBlock::iterator InsertPt = ResBlock.BB->getFirstInsertionPt(); - Builder.SetInsertPoint(ResBlock.BB, InsertPt); + Builder.SetInsertPoint(InsertPt); Value *Cmp = Builder.CreateICmp(ICmpInst::ICMP_ULT, ResBlock.PhiSrc1, ResBlock.PhiSrc2); @@ -744,7 +744,7 @@ void MemCmpExpansion::setupResultBlockPHINodes() { } void MemCmpExpansion::setupEndBlockPHINodes() { - Builder.SetInsertPoint(EndBlock, EndBlock->begin()); + Builder.SetInsertPoint(EndBlock->begin()); PhiRes = Builder.CreatePHI(Type::getInt32Ty(CI->getContext()), 2, "phi.res"); } diff --git a/llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp b/llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp index 6c5f6951a662e0..2f40cbd2d8be32 100644 --- a/llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp +++ b/llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp @@ -438,7 +438,7 @@ static bool splitLoopBound(Loop &L, DominatorTree &DT, LoopInfo &LI, ClonedSplitCandidateBI->setCondition(ConstantInt::getFalse(Context)); // Update phi node in exit block of post-loop. - Builder.SetInsertPoint(PostLoopPreHeader, PostLoopPreHeader->begin()); + Builder.SetInsertPoint(PostLoopPreHeader->begin()); for (PHINode &PN : PostLoop->getExitBlock()->phis()) { for (auto i : seq<int>(0, PN.getNumOperands())) { // Check incoming block is pre-loop's exiting block. diff --git a/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp b/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp index b3f095f5ba80d6..7d3e10ffb667f7 100644 --- a/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp +++ b/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp @@ -3492,7 +3492,7 @@ bool LoopIdiomRecognize::recognizeShiftUntilBitTest() { // Step 4: Rewrite the loop into a countable form, with canonical IV. // The new canonical induction variable. - Builder.SetInsertPoint(LoopHeaderBB, LoopHeaderBB->begin()); + Builder.SetInsertPoint(LoopHeaderBB->begin()); auto *IV = Builder.CreatePHI(Ty, 2, CurLoop->getName() + ".iv"); // The induction itself. @@ -3827,11 +3827,11 @@ bool LoopIdiomRecognize::recognizeShiftUntilZero() { // Step 3: Rewrite the loop into a countable form, with canonical IV. // The new canonical induction variable. - Builder.SetInsertPoint(LoopHeaderBB, LoopHeaderBB->begin()); + Builder.SetInsertPoint(LoopHeaderBB->begin()); auto *CIV = Builder.CreatePHI(Ty, 2, CurLoop->getName() + ".iv"); // The induction itself. - Builder.SetInsertPoint(LoopHeaderBB, LoopHeaderBB->getFirstNonPHIIt()); + Builder.SetInsertPoint(LoopHeaderBB->getFirstNonPHIIt()); auto *CIVNext = Builder.CreateAdd(CIV, ConstantInt::get(Ty, 1), CIV->getName() + ".next", /*HasNUW=*/true, /*HasNSW=*/Bitwidth != 2); diff --git a/llvm/lib/Transforms/Scalar/LoopPredication.cpp b/llvm/lib/Transforms/Scalar/LoopPredication.cpp index 2deaeeb0792e6c..65f2c708871fae 100644 --- a/llvm/lib/Transforms/Scalar/LoopPredication.cpp +++ b/llvm/lib/Transforms/Scalar/LoopPredication.cpp @@ -782,7 +782,7 @@ bool LoopPredication::widenWidenableBranchGuardConditions( BI->setCondition(AllChecks); if (InsertAssumesOfPredicatedGuardsConditions) { BasicBlock *IfTrueBB = BI->getSuccessor(0); - Builder.SetInsertPoint(IfTrueBB, IfTrueBB->getFirstInsertionPt()); + Builder.SetInsertPoint(IfTrueBB->getFirstInsertionPt()); // If this block has other predecessors, we might not be able to use Cond. // In this case, create a Phi where every other input is `true` and input // from guard block is Cond. diff --git a/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp b/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp index ea635af81e44e4..4f3b9b748057ba 100644 --- a/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp +++ b/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp @@ -1956,7 +1956,7 @@ class LowerMatrixIntrinsics { // condition holds, they alias, otherwise they are guaranteed to not // overlap. Check1->getTerminator()->eraseFromParent(); - Builder.SetInsertPoint(Check1, Check1->begin()); + Builder.SetInsertPoint(Check1->begin()); auto *VT = cast<FixedVectorType>(Load->getType()); // Use an array type for the alloca, to avoid potentially huge alignment @@ -1975,10 +1975,10 @@ class LowerMatrixIntrinsics { setExplicitlyUnknownBranchWeightsIfProfiled(*BR2, DEBUG_TYPE); // Copy load operand to new alloca. - Builder.SetInsertPoint(Copy, Copy->begin()); + Builder.SetInsertPoint(Copy->begin()); Builder.CreateMemCpy(Alloca, Alloca->getAlign(), Load->getPointerOperand(), Load->getAlign(), LoadLoc.Size.getValue()); - Builder.SetInsertPoint(Fusion, Fusion->begin()); + Builder.SetInsertPoint(Fusion->begin()); PHINode *PHI = Builder.CreatePHI(Load->getPointerOperandType(), 3); PHI->addIncoming(Load->getPointerOperand(), Check0); PHI->addIncoming(Load->getPointerOperand(), Check1); diff --git a/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp b/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp index 6a1b992c42d733..8c89e2d25a35e4 100644 --- a/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp +++ b/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp @@ -73,7 +73,7 @@ static bool optimizeSQRT(CallInst *Call, Function *CalledFunc, // Create phi that will merge results of either sqrt and replace all uses. BasicBlock *JoinBB = LibCallTerm->getSuccessor(0); JoinBB->setName(CurrBB.getName() + ".split"); - Builder.SetInsertPoint(JoinBB, JoinBB->begin()); + Builder.SetInsertPoint(JoinBB->begin()); PHINode *Phi = Builder.CreatePHI(Ty, 2); Call->replaceAllUsesWith(Phi); diff --git a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp index 6ac5637e0c9bdd..8d7160456822d4 100644 --- a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp +++ b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp @@ -1875,7 +1875,7 @@ makeStatepointExplicitImpl(CallBase *Call, /* to replace */ UnwindBlock->getUniquePredecessor() && "can't safely insert in this block!"); - Builder.SetInsertPoint(UnwindBlock, UnwindBlock->getFirstInsertionPt()); + Builder.SetInsertPoint(UnwindBlock->getFirstInsertionPt()); Builder.SetCurrentDebugLocation(II->getDebugLoc()); // Attach exceptional gc relocates to the landingpad. @@ -1890,7 +1890,7 @@ makeStatepointExplicitImpl(CallBase *Call, /* to replace */ NormalDest->getUniquePredecessor() && "can't safely insert in this block!"); - Builder.SetInsertPoint(NormalDest, NormalDest->getFirstInsertionPt()); + Builder.SetInsertPoint(NormalDest->getFirstInsertionPt()); // gc relocates will be generated later as if it were regular call // statepoint diff --git a/llvm/lib/Transforms/Scalar/SROA.cpp b/llvm/lib/Transforms/Scalar/SROA.cpp index 3d90a06667a92f..d1b1a0a2116456 100644 --- a/llvm/lib/Transforms/Scalar/SROA.cpp +++ b/llvm/lib/Transforms/Scalar/SROA.cpp @@ -3578,7 +3578,7 @@ class AllocaSliceRewriter : public InstVisitor<AllocaSliceRewriter, bool> { // after the load, so that variable values referring to the load are // dominated by it. LIIt.setHeadBit(true); - IRB.SetInsertPoint(LI.getParent(), LIIt); + IRB.SetInsertPoint(LIIt); // Create a placeholder value with the same type as LI to use as the // basis for the new value. This allows us to replace the uses of LI with // the computed value, and then replace the placeholder with LI, leaving @@ -4215,8 +4215,7 @@ class AllocaSliceRewriter : public InstVisitor<AllocaSliceRewriter, bool> { // dominate the PHI. IRBuilderBase::InsertPointGuard Guard(IRB); if (isa<PHINode>(OldPtr)) - IRB.SetInsertPoint(OldPtr->getParent(), - OldPtr->getParent()->getFirstInsertionPt()); + IRB.SetInsertPoint(OldPtr->getParent()->getFirstInsertionPt()); else IRB.SetInsertPoint(OldPtr); IRB.SetCurrentDebugLocation(OldPtr->getDebugLoc()); diff --git a/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp b/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp index 664031a581ed08..bfbfb4b7572c35 100644 --- a/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp +++ b/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp @@ -291,7 +291,7 @@ static void scalarizeMaskedLoad(const DataLayout &DL, bool HasBranchDivergence, std::nullopt); BasicBlock *PostLoad = ThenTerm->getSuccessor(0); - Builder.SetInsertPoint(PostLoad, PostLoad->begin()); + Builder.SetInsertPoint(PostLoad->begin()); PHINode *Phi = Builder.CreatePHI(VecType, /*NumReservedValues=*/2); Phi->addIncoming(Load, CondBlock); Phi->addIncoming(Src0, IfBlock); @@ -363,7 +363,7 @@ static void scalarizeMaskedLoad(const DataLayout &DL, bool HasBranchDivergence, IfBlock = NewIfBlock; // Create the phi to join the new and previous value. - Builder.SetInsertPoint(NewIfBlock, NewIfBlock->begin()); + Builder.SetInsertPoint(NewIfBlock->begin()); PHINode *Phi = Builder.CreatePHI(VecType, 2, "res.phi.else"); Phi->addIncoming(NewVResult, CondBlock); Phi->addIncoming(VResult, PrevIfBlock); @@ -538,7 +538,7 @@ static void scalarizeMaskedStore(const DataLayout &DL, bool HasBranchDivergence, BasicBlock *NewIfBlock = ThenTerm->getSuccessor(0); NewIfBlock->setName("else"); - Builder.SetInsertPoint(NewIfBlock, NewIfBlock->begin()); + Builder.SetInsertPoint(NewIfBlock->begin()); } CI->eraseFromParent(); @@ -674,7 +674,7 @@ static void scalarizeMaskedGather(const DataLayout &DL, IfBlock = NewIfBlock; // Create the phi to join the new and previous value. - Builder.SetInsertPoint(NewIfBlock, NewIfBlock->begin()); + Builder.SetInsertPoint(NewIfBlock->begin()); PHINode *Phi = Builder.CreatePHI(VecType, 2, "res.phi.else"); Phi->addIncoming(NewVResult, CondBlock); Phi->addIncoming(VResult, PrevIfBlock); @@ -807,7 +807,7 @@ static void scalarizeMaskedScatter(const DataLayout &DL, BasicBlock *NewIfBlock = ThenTerm->getSuccessor(0); NewIfBlock->setName("else"); - Builder.SetInsertPoint(NewIfBlock, NewIfBlock->begin()); + Builder.SetInsertPoint(NewIfBlock->begin()); } CI->eraseFromParent(); @@ -937,7 +937,7 @@ static void scalarizeMaskedExpandLoad(const DataLayout &DL, IfBlock = NewIfBlock; // Create the phi to join the new and previous value. - Builder.SetInsertPoint(NewIfBlock, NewIfBlock->begin()); + Builder.SetInsertPoint(NewIfBlock->begin()); PHINode *ResultPhi = Builder.CreatePHI(VecType, 2, "res.phi.else"); ResultPhi->addIncoming(NewVResult, CondBlock); ResultPhi->addIncoming(VResult, PrevIfBlock); @@ -1064,7 +1064,7 @@ static void scalarizeMaskedCompressStore(const DataLayout &DL, BasicBlock *PrevIfBlock = IfBlock; IfBlock = NewIfBlock; - Builder.SetInsertPoint(NewIfBlock, NewIfBlock->begin()); + Builder.SetInsertPoint(NewIfBlock->begin()); // Add a PHI for the pointer if this isn't the last iteration. if ((Idx + 1) != VectorWidth) { @@ -1171,7 +1171,7 @@ static void scalarizeMaskedVectorHistogram(const DataLayout &DL, CallInst *CI, // Create "else" block, fill it in the next iteration BasicBlock *NewIfBlock = ThenTerm->getSuccessor(0); NewIfBlock->setName("else"); - Builder.SetInsertPoint(NewIfBlock, NewIfBlock->begin()); + Builder.SetInsertPoint(NewIfBlock->begin()); } CI->eraseFromParent(); diff --git a/llvm/lib/Transforms/Scalar/Scalarizer.cpp b/llvm/lib/Transforms/Scalar/Scalarizer.cpp index d930d3e5dd33d6..9ab7f2b3315467 100644 --- a/llvm/lib/Transforms/Scalar/Scalarizer.cpp +++ b/llvm/lib/Transforms/Scalar/Scalarizer.cpp @@ -1336,7 +1336,7 @@ bool ScalarizerVisitor::finish() { BasicBlock *BB = Op->getParent(); IRBuilder<> Builder(Op); if (isa<PHINode>(Op)) - Builder.SetInsertPoint(BB, BB->getFirstInsertionPt()); + Builder.SetInsertPoint(BB->getFirstInsertionPt()); VectorSplit VS = *getVectorSplit(Ty); assert(VS.NumFragments == CV.size()); @@ -1348,7 +1348,7 @@ bool ScalarizerVisitor::finish() { BasicBlock *BB = Op->getParent(); IRBuilder<> Builder(Op); if (isa<PHINode>(Op)) - Builder.SetInsertPoint(BB, BB->getFirstInsertionPt()); + Builder.SetInsertPoint(BB->getFirstInsertionPt()); // Iterate over each element in the struct unsigned NumOfStructElements = Ty->getNumElements(); diff --git a/llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp b/llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp index 93fc21714ecdf6..8fa120f94e1df5 100644 --- a/llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp +++ b/llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp @@ -135,14 +135,14 @@ static Value *getStrlenWithNull(IRBuilder<> &Builder, Value *Str) { Builder.CreateCondBr(Cmp, WhileDone, While); // Add one to the computed length. - Builder.SetInsertPoint(WhileDone, WhileDone->begin()); + Builder.SetInsertPoint(WhileDone->begin()); auto Len = Builder.CreatePtrDiff(PtrPhi, Str); Len = Builder.CreateZExt(Len, Int64Ty); Len = Builder.CreateAdd(Len, One); // Final join. UncondBrInst::Create(Join, WhileDone); - Builder.SetInsertPoint(Join, Join->begin()); + Builder.SetInsertPoint(Join->begin()); auto LenPhi = Builder.CreatePHI(Len->getType(), 2); LenPhi->addIncoming(Len, WhileDone); LenPhi->addIncoming(Zero, Prev); diff --git a/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp b/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp index a49f0c73ad3e36..a56900ac654bb7 100644 --- a/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp +++ b/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp @@ -116,7 +116,7 @@ static void createRetPHINode(Instruction *OrigInst, Instruction *NewInst, if (OrigInst->getType()->isVoidTy() || OrigInst->use_empty()) return; - Builder.SetInsertPoint(MergeBlock, MergeBlock->begin()); + Builder.SetInsertPoint(MergeBlock->begin()); PHINode *Phi = Builder.CreatePHI(OrigInst->getType(), 0); SmallVector<User *, 16> UsersToUpdate(OrigInst->users()); for (User *U : UsersToUpdate) diff --git a/llvm/lib/Transforms/Utils/FlattenCFG.cpp b/llvm/lib/Transforms/Utils/FlattenCFG.cpp index 48c16c062a39f5..5dbf763ed0c2d7 100644 --- a/llvm/lib/Transforms/Utils/FlattenCFG.cpp +++ b/llvm/lib/Transforms/Utils/FlattenCFG.cpp @@ -481,7 +481,6 @@ bool FlattenCFGOpt::MergeIfRegion(BasicBlock *BB, IRBuilder<> &Builder) { FirstEntryBlock->splice(FirstEntryBlock->end(), SecondEntryBlock); CondBrInst *PBI = cast<CondBrInst>(FirstEntryBlock->getTerminator()); assert(PBI->getCondition() == CInst2); - BasicBlock *SaveInsertBB = Builder.GetInsertBlock(); BasicBlock::iterator SaveInsertPt = Builder.GetInsertPoint(); Builder.SetInsertPoint(PBI); if (InvertCond2) { @@ -489,7 +488,7 @@ bool FlattenCFGOpt::MergeIfRegion(BasicBlock *BB, IRBuilder<> &Builder) { } Value *NC = Builder.CreateBinOp(CombineOp, CInst1, PBI->getCondition()); PBI->replaceUsesOfWith(PBI->getCondition(), NC); - Builder.SetInsertPoint(SaveInsertBB, SaveInsertPt); + Builder.SetInsertPoint(SaveInsertPt); // Remove IfTrue1 if (IfTrue1 != FirstEntryBlock) { diff --git a/llvm/lib/Transforms/Utils/IntegerDivision.cpp b/llvm/lib/Transforms/Utils/IntegerDivision.cpp index 549c8e32c60792..9180c98cb45ebe 100644 --- a/llvm/lib/Transforms/Utils/IntegerDivision.cpp +++ b/llvm/lib/Transforms/Utils/IntegerDivision.cpp @@ -359,7 +359,7 @@ static Value *generateUnsignedDivisionCode(Value *Dividend, Value *Divisor, // ; end: ; preds = %loop-exit, %special-cases // ; %q_5 = phi i32 [ %q_4, %loop-exit ], [ %retVal, %special-cases ] // ; ret i32 %q_5 - Builder.SetInsertPoint(End, End->begin()); + Builder.SetInsertPoint(End->begin()); PHINode *Q_5 = Builder.CreatePHI(DivTy, 2); // Populate the Phis, since all values have now been created. Our Phis were: diff --git a/llvm/lib/Transforms/Utils/LoopUtils.cpp b/llvm/lib/Transforms/Utils/LoopUtils.cpp index 0599f045c4f840..0932f9ae27681b 100644 --- a/llvm/lib/Transforms/Utils/LoopUtils.cpp +++ b/llvm/lib/Transforms/Utils/LoopUtils.cpp @@ -1434,7 +1434,7 @@ Value *llvm::expandReductionViaLoop(IRBuilderBase &Builder, Value *Vec, NewLoop->addBasicBlockToLoop(LoopBB, *LI); } - Builder.SetInsertPoint(ExitBB, ExitBB->begin()); + Builder.SetInsertPoint(ExitBB->begin()); return Res; } diff --git a/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp b/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp index 84131f6592e500..1e501e26a8005e 100644 --- a/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp +++ b/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp @@ -1024,8 +1024,7 @@ static void createMemMoveLoopKnownSize(Instruction *InsertBefore, PartDstAlign); for (auto *OpTy : RemainingOps) { // reverse the order of the emitted operations - BwdResBuilder.SetInsertPoint(CopyBackwardsBB, - CopyBackwardsBB->getFirstNonPHIIt()); + BwdResBuilder.SetInsertPoint(CopyBackwardsBB->getFirstNonPHIIt()); GenerateResidualLdStPair(OpTy, BwdResBuilder, BytesCopied); } } diff --git a/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp b/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp index d8ad13994ca2af..d56958be37b947 100644 --- a/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp +++ b/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp @@ -1145,7 +1145,7 @@ SCEVExpander::getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized, // Create the PHI. BasicBlock *Header = L->getHeader(); - Builder.SetInsertPoint(Header, Header->begin()); + Builder.SetInsertPoint(Header->begin()); PHINode *PN = Builder.CreatePHI(ExpandTy, pred_size(Header), Twine(IVName) + ".iv"); @@ -1744,7 +1744,7 @@ Value *SCEVExpander::expand(SCEVUse S) { return I->second; SCEVInsertPointGuard Guard(Builder, this); - Builder.SetInsertPoint(InsertPt->getParent(), InsertPt); + Builder.SetInsertPoint(InsertPt); // Expand the expression into instructions. Value *V = findExistingExpansionAndDropPoisonFlags(S, &*InsertPt); diff --git a/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp b/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp index 38b9a5b09d32bf..7ae357601d7c27 100644 --- a/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp @@ -1821,8 +1821,7 @@ bool WidenIV::widenWithVariantUse(WidenIV::NarrowIVDefUse DU) { assert(LoopExitingBlock && L->contains(LoopExitingBlock) && "Not a LCSSA Phi?"); WidePN->addIncoming(WideBO, LoopExitingBlock); - Builder.SetInsertPoint(User->getParent(), - User->getParent()->getFirstInsertionPt()); + Builder.SetInsertPoint(User->getParent()->getFirstInsertionPt()); auto *TruncPN = Builder.CreateTrunc(WidePN, User->getType()); User->replaceAllUsesWith(TruncPN); DeadInsts.emplace_back(User); diff --git a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp index 2ca27db66d490b..6679a0fc4348be 100644 --- a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp @@ -3106,12 +3106,12 @@ static bool insertSinCosCall(IRBuilderBase &B, Function *OrigCallee, Value *Arg, if (Instruction *ArgInst = dyn_cast<Instruction>(Arg)) { // If the argument is an instruction, it must dominate all uses so put our // sincos call there. - B.SetInsertPoint(ArgInst->getParent(), ++ArgInst->getIterator()); + B.SetInsertPoint(++ArgInst->getIterator()); } else { // Otherwise (e.g. for a constant) the beginning of the function is as // good a place as any. BasicBlock &EntryBB = B.GetInsertBlock()->getParent()->getEntryBlock(); - B.SetInsertPoint(&EntryBB, EntryBB.begin()); + B.SetInsertPoint(EntryBB.begin()); } SinCos = B.CreateCall(Callee, Arg, "sincospi"); diff --git a/llvm/lib/Transforms/Vectorize/LoopIdiomVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopIdiomVectorize.cpp index 8316341d830ad3..be613a18432ce9 100644 --- a/llvm/lib/Transforms/Vectorize/LoopIdiomVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopIdiomVectorize.cpp @@ -903,7 +903,7 @@ Value *LoopIdiomVectorize::expandFindMismatch( // 3. We didn't find a mismatch in the vector loop, so we return MaxLen. // 4. We exitted the vector loop early due to a mismatch and need to return // the index that we found. - Builder.SetInsertPoint(EndBlock, EndBlock->getFirstInsertionPt()); + Builder.SetInsertPoint(EndBlock->getFirstInsertionPt()); PHINode *ResPhi = Builder.CreatePHI(ResType, 4, "mismatch_result"); ResPhi->addIncoming(MaxLen, LoopIncBlock); ResPhi->addIncoming(IndexPhi, LoopStartBlock); diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index 516b4af4c4a528..fcc14be3104bd2 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -22302,20 +22302,18 @@ void BoUpSLP::setInsertPointAfterBundle(const TreeEntry *E) { (GatheredLoadsEntriesFirst.has_value() && E->Idx >= *GatheredLoadsEntriesFirst && !E->isGather() && E->getOpcode() == Instruction::Load)) { - Builder.SetInsertPoint(LastInst->getParent(), LastInstIt); + Builder.SetInsertPoint(LastInstIt); } else { // Set the insertion point after the last instruction in the bundle. Set the // debug location to Front. - Builder.SetInsertPoint( - LastInst->getParent(), - LastInst->getNextNode()->getIterator()); + Builder.SetInsertPoint(LastInst->getNextNode()->getIterator()); if (Instruction *Res = LastInstructionToPos.lookup(LastInst)) { - Builder.SetInsertPoint(LastInst->getParent(), Res->getIterator()); + Builder.SetInsertPoint(Res->getIterator()); } else { Res = Builder.CreateAlignedLoad(Builder.getPtrTy(), PoisonValue::get(Builder.getPtrTy()), MaybeAlign()); - Builder.SetInsertPoint(LastInst->getParent(), Res->getIterator()); + Builder.SetInsertPoint(Res->getIterator()); eraseInstruction(Res); if (E->State != TreeEntry::SplitVectorize) LastInstructionToPos.try_emplace(LastInst, Res); @@ -24103,15 +24101,13 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) { E != &getRootNode() || E->UserTreeIndex) && "PHI reordering is free."); auto *PH = cast<PHINode>(VL0); - Builder.SetInsertPoint(PH->getParent(), - PH->getParent()->getFirstNonPHIIt()); + Builder.SetInsertPoint(PH->getParent()->getFirstNonPHIIt()); Builder.SetCurrentDebugLocation(getDebugLocFromPHI(*PH)); PHINode *NewPhi = Builder.CreatePHI(VecTy, PH->getNumIncomingValues()); Value *V = NewPhi; // Adjust insertion point once all PHI's have been generated. - Builder.SetInsertPoint(PH->getParent(), - PH->getParent()->getFirstInsertionPt()); + Builder.SetInsertPoint(PH->getParent()->getFirstInsertionPt()); Builder.SetCurrentDebugLocation(getDebugLocFromPHI(*PH)); V = FinalShuffle(V, E); @@ -26077,10 +26073,9 @@ BoUpSLP::vectorizeTree(const ExtraValueToDebugLocsMap &ExternallyUsedValues, versionBlocksForRuntimeChecks(); if (ReductionRoot) - Builder.SetInsertPoint(ReductionRoot->getParent(), - ReductionRoot->getIterator()); + Builder.SetInsertPoint(ReductionRoot->getIterator()); else - Builder.SetInsertPoint(&F->getEntryBlock(), F->getEntryBlock().begin()); + Builder.SetInsertPoint(F->getEntryBlock().begin()); // Vectorize gather operands of the nodes with the external uses only. SmallVector<std::pair<TreeEntry *, Instruction *>> GatherEntries; @@ -26490,19 +26485,15 @@ BoUpSLP::vectorizeTree(const ExtraValueToDebugLocsMap &ExternallyUsedValues, if (auto *VecI = dyn_cast<Instruction>(Vec)) { if (auto *PHI = dyn_cast<PHINode>(VecI)) { if (PHI->getParent()->isLandingPad()) - Builder.SetInsertPoint( - PHI->getParent(), - std::next( - PHI->getParent()->getLandingPadInst()->getIterator())); + Builder.SetInsertPoint(std::next( + PHI->getParent()->getLandingPadInst()->getIterator())); else - Builder.SetInsertPoint(PHI->getParent(), - PHI->getParent()->getFirstNonPHIIt()); + Builder.SetInsertPoint(PHI->getParent()->getFirstNonPHIIt()); } else { - Builder.SetInsertPoint(VecI->getParent(), - std::next(VecI->getIterator())); + Builder.SetInsertPoint(std::next(VecI->getIterator())); } } else { - Builder.SetInsertPoint(&F->getEntryBlock(), F->getEntryBlock().begin()); + Builder.SetInsertPoint(F->getEntryBlock().begin()); } Value *NewInst = ExtractAndExtendIfNeeded(Vec); // Required to update internally referenced instructions. @@ -26542,10 +26533,8 @@ BoUpSLP::vectorizeTree(const ExtraValueToDebugLocsMap &ExternallyUsedValues, IRBuilderBase::InsertPointGuard Guard(Builder); if (auto *IVec = dyn_cast<PHINode>(Vec)) { if (IVec->getParent()->isLandingPad()) - Builder.SetInsertPoint(IVec->getParent(), - std::next(IVec->getParent() - ->getLandingPadInst() - ->getIterator())); + Builder.SetInsertPoint(std::next( + IVec->getParent()->getLandingPadInst()->getIterator())); else Builder.SetInsertPoint( IVec->getParent()->getFirstNonPHIOrDbgOrLifetime()); @@ -26600,8 +26589,7 @@ BoUpSLP::vectorizeTree(const ExtraValueToDebugLocsMap &ExternallyUsedValues, Instruction *IncomingTerminator = PH->getIncomingBlock(I)->getTerminator(); if (isa<CatchSwitchInst>(IncomingTerminator)) { - Builder.SetInsertPoint(VecI->getParent(), - std::next(VecI->getIterator())); + Builder.SetInsertPoint(std::next(VecI->getIterator())); } else { Builder.SetInsertPoint(PH->getIncomingBlock(I)->getTerminator()); } @@ -26622,7 +26610,7 @@ BoUpSLP::vectorizeTree(const ExtraValueToDebugLocsMap &ExternallyUsedValues, } } } else { - Builder.SetInsertPoint(&F->getEntryBlock(), F->getEntryBlock().begin()); + Builder.SetInsertPoint(F->getEntryBlock().begin()); Value *NewInst = ExtractAndExtendIfNeeded(Vec); User->replaceUsesOfWith(Scalar, NewInst); } @@ -26953,8 +26941,7 @@ BoUpSLP::vectorizeTree(const ExtraValueToDebugLocsMap &ExternallyUsedValues, It != MinBWs.end() && ReductionBitWidth != It->second.first) { IRBuilder<>::InsertPointGuard Guard(Builder); - Builder.SetInsertPoint(ReductionRoot->getParent(), - ReductionRoot->getIterator()); + Builder.SetInsertPoint(ReductionRoot->getIterator()); if (isReducedBitcastRoot() || isReducedCmpBitcastRoot()) { Vec = Builder.CreateIntCast(Vec, Builder.getIntNTy(ReductionBitWidth), It->second.second); diff --git a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp index ae9001dc8c67fa..833564dba579c9 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp @@ -2029,7 +2029,7 @@ void VPIRInstruction::execute(VPTransformState &State) { "PHINodes must be handled by VPIRPhi"); // Advance the insert point after the wrapped IR instruction. This allows // interleaving VPIRInstructions and other recipes. - State.Builder.SetInsertPoint(I.getParent(), std::next(I.getIterator())); + State.Builder.SetInsertPoint(std::next(I.getIterator())); } InstructionCost VPIRInstruction::computeCost(ElementCount VF, @@ -2070,7 +2070,7 @@ void VPIRPhi::execute(VPTransformState &State) { // Advance the insert point after the wrapped IR instruction. This allows // interleaving VPIRInstructions and other recipes. - State.Builder.SetInsertPoint(Phi->getParent(), std::next(Phi->getIterator())); + State.Builder.SetInsertPoint(std::next(Phi->getIterator())); } void VPPhiAccessors::removeIncomingValueFor(VPBlockBase *IncomingBlock) const { diff --git a/llvm/unittests/Analysis/MemorySSATest.cpp b/llvm/unittests/Analysis/MemorySSATest.cpp index 7780c575014659..450241963af538 100644 --- a/llvm/unittests/Analysis/MemorySSATest.cpp +++ b/llvm/unittests/Analysis/MemorySSATest.cpp @@ -124,7 +124,7 @@ TEST_F(MemorySSATest, CreateLoadsAndStoreUpdater) { BasicBlock *Merge(BasicBlock::Create(C, "", F)); B.SetInsertPoint(Entry); B.CreateCondBr(B.getTrue(), Left, Right); - B.SetInsertPoint(Left, Left->begin()); + B.SetInsertPoint(Left->begin()); Argument *PointerArg = &*F->arg_begin(); B.SetInsertPoint(Left); B.CreateBr(Merge); @@ -136,14 +136,14 @@ TEST_F(MemorySSATest, CreateLoadsAndStoreUpdater) { MemorySSA &MSSA = *Analyses->MSSA; MemorySSAUpdater Updater(&MSSA); // Add the store - B.SetInsertPoint(Entry, Entry->begin()); + B.SetInsertPoint(Entry->begin()); StoreInst *EntryStore = B.CreateStore(B.getInt8(16), PointerArg); MemoryAccess *EntryStoreAccess = Updater.createMemoryAccessInBB( EntryStore, nullptr, Entry, MemorySSA::Beginning); Updater.insertDef(cast<MemoryDef>(EntryStoreAccess)); // Add the load - B.SetInsertPoint(Merge, Merge->begin()); + B.SetInsertPoint(Merge->begin()); LoadInst *FirstLoad = B.CreateLoad(B.getInt8Ty(), PointerArg); // MemoryPHI should not already exist. @@ -160,7 +160,7 @@ TEST_F(MemorySSATest, CreateLoadsAndStoreUpdater) { // Create a store on the left // Add the store - B.SetInsertPoint(Left, Left->begin()); + B.SetInsertPoint(Left->begin()); StoreInst *LeftStore = B.CreateStore(B.getInt8(16), PointerArg); MemoryAccess *LeftStoreAccess = Updater.createMemoryAccessInBB( LeftStore, nullptr, Left, MemorySSA::Beginning); @@ -171,7 +171,7 @@ TEST_F(MemorySSATest, CreateLoadsAndStoreUpdater) { EXPECT_NE(MP, nullptr); // Add the second load - B.SetInsertPoint(Merge, Merge->begin()); + B.SetInsertPoint(Merge->begin()); LoadInst *SecondLoad = B.CreateLoad(B.getInt8Ty(), PointerArg); // Create the load memory access @@ -185,7 +185,7 @@ TEST_F(MemorySSATest, CreateLoadsAndStoreUpdater) { EXPECT_EQ(MergePhi->getIncomingValue(0), EntryStoreAccess); EXPECT_EQ(MergePhi->getIncomingValue(1), LeftStoreAccess); // Now create a store below the existing one in the entry - B.SetInsertPoint(Entry, --Entry->end()); + B.SetInsertPoint(--Entry->end()); StoreInst *SecondEntryStore = B.CreateStore(B.getInt8(16), PointerArg); MemoryAccess *SecondEntryStoreAccess = Updater.createMemoryAccessInBB( SecondEntryStore, nullptr, Entry, MemorySSA::End); @@ -214,7 +214,7 @@ TEST_F(MemorySSATest, CreateALoadUpdater) { BasicBlock *Merge(BasicBlock::Create(C, "", F)); B.SetInsertPoint(Entry); B.CreateCondBr(B.getTrue(), Left, Right); - B.SetInsertPoint(Left, Left->begin()); + B.SetInsertPoint(Left->begin()); Argument *PointerArg = &*F->arg_begin(); B.SetInsertPoint(Left); B.CreateBr(Merge); @@ -225,7 +225,7 @@ TEST_F(MemorySSATest, CreateALoadUpdater) { setupAnalyses(); MemorySSA &MSSA = *Analyses->MSSA; MemorySSAUpdater Updater(&MSSA); - B.SetInsertPoint(Left, Left->begin()); + B.SetInsertPoint(Left->begin()); // Add the store StoreInst *SI = B.CreateStore(B.getInt8(16), PointerArg); MemoryAccess *StoreAccess = @@ -237,7 +237,7 @@ TEST_F(MemorySSATest, CreateALoadUpdater) { EXPECT_NE(MP, nullptr); // Add the load - B.SetInsertPoint(Merge, Merge->begin()); + B.SetInsertPoint(Merge->begin()); LoadInst *LoadInst = B.CreateLoad(B.getInt8Ty(), PointerArg); // Create the load memory acccess @@ -258,7 +258,7 @@ TEST_F(MemorySSATest, SinkLoad) { BasicBlock *Merge(BasicBlock::Create(C, "", F)); B.SetInsertPoint(Entry); B.CreateCondBr(B.getTrue(), Left, Right); - B.SetInsertPoint(Left, Left->begin()); + B.SetInsertPoint(Left->begin()); Argument *PointerArg = &*F->arg_begin(); B.SetInsertPoint(Left); B.CreateBr(Merge); @@ -267,10 +267,10 @@ TEST_F(MemorySSATest, SinkLoad) { ReturnInst::Create(C, Merge); // Load in left block - B.SetInsertPoint(Left, Left->begin()); + B.SetInsertPoint(Left->begin()); LoadInst *LoadInst1 = B.CreateLoad(B.getInt8Ty(), PointerArg); // Store in merge block - B.SetInsertPoint(Merge, Merge->begin()); + B.SetInsertPoint(Merge->begin()); B.CreateStore(B.getInt8(16), PointerArg); setupAnalyses(); diff --git a/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp b/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp index 2010533b7e6db4..553ca558d6f2d4 100644 --- a/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp +++ b/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp @@ -2411,7 +2411,7 @@ TEST_P(OpenMPIRBuilderTestWithNeedsBarrier, StaticWorkshareLoopTarget) { BasicBlock *Exit = CLI->getExit(); Value *TripCount = CLI->getTripCount(); - Builder.SetInsertPoint(BB, BB->getFirstInsertionPt()); + Builder.SetInsertPoint(BB->getFirstInsertionPt()); ASSERT_EXPECTED_INIT(OpenMPIRBuilder::InsertPointTy, AfterIP, OMPBuilder.applyWorkshareLoop( @@ -2495,7 +2495,7 @@ TEST_F(OpenMPIRBuilderTest, StaticWorkShareLoop) { Value *IV = CLI->getIndVar(); BasicBlock *ExitBlock = CLI->getExit(); - Builder.SetInsertPoint(BB, BB->getFirstInsertionPt()); + Builder.SetInsertPoint(BB->getFirstInsertionPt()); InsertPointTy AllocaIP = Builder.saveIP(); ASSERT_THAT_EXPECTED(OMPBuilder.applyWorkshareLoop(DL, CLI, AllocaIP, @@ -2693,7 +2693,7 @@ TEST_P(OpenMPIRBuilderTestWithParams, DynamicWorkShareLoop) { Loc, LoopBodyGen, StartVal, StopVal, StepVal, /*IsSigned=*/false, /*InclusiveStop=*/false)); - Builder.SetInsertPoint(BB, BB->getFirstInsertionPt()); + Builder.SetInsertPoint(BB->getFirstInsertionPt()); InsertPointTy AllocaIP = Builder.saveIP(); // Collect all the info from CLI, as it isn't usable after the call to @@ -2839,7 +2839,7 @@ TEST_F(OpenMPIRBuilderTest, DynamicWorkShareLoopOrdered) { Loc, LoopBodyGen, StartVal, StopVal, StepVal, /*IsSigned=*/false, /*InclusiveStop=*/false)); - Builder.SetInsertPoint(BB, BB->getFirstInsertionPt()); + Builder.SetInsertPoint(BB->getFirstInsertionPt()); InsertPointTy AllocaIP = Builder.saveIP(); // Collect all the info from CLI, as it isn't usable after the call to diff --git a/llvm/unittests/IR/DebugInfoTest.cpp b/llvm/unittests/IR/DebugInfoTest.cpp index 5b68354119e3ad..f2e7389e0da329 100644 --- a/llvm/unittests/IR/DebugInfoTest.cpp +++ b/llvm/unittests/IR/DebugInfoTest.cpp @@ -777,8 +777,7 @@ TEST(IRBuilder, GetSetInsertionPointWithEmptyBasicBlock) { Value *DIV = MetadataAsValue::get(C, (Metadata *)nullptr); SmallVector<Value *, 3> Args = {DIV, DIV, DIV}; Builder.CreateCall(DbgDeclare, Args); - auto IP = BB->getFirstInsertionPt(); - Builder.SetInsertPoint(BB.get(), IP); + Builder.SetInsertPoint(BB->getFirstInsertionPt()); } TEST(AssignmentTrackingTest, InstrMethods) { diff --git a/llvm/unittests/IR/IRBuilderTest.cpp b/llvm/unittests/IR/IRBuilderTest.cpp index bea757cb0b1a22..2bb24dcb5a5b24 100644 --- a/llvm/unittests/IR/IRBuilderTest.cpp +++ b/llvm/unittests/IR/IRBuilderTest.cpp @@ -1292,7 +1292,7 @@ TEST_F(IRBuilderTest, DebugLoc) { EXPECT_EQ(DL1, Call1->getDebugLoc()); Call1->setDebugLoc(DL2); - Builder.SetInsertPoint(Call1->getParent(), Call1->getIterator()); + Builder.SetInsertPoint(Call1->getIterator()); EXPECT_EQ(DL2, Builder.getCurrentDebugLocation()); auto Call2 = Builder.CreateCall(Callee, {}); EXPECT_EQ(DL2, Call2->getDebugLoc()); diff --git a/llvm/unittests/Transforms/Utils/SSAUpdaterBulkTest.cpp b/llvm/unittests/Transforms/Utils/SSAUpdaterBulkTest.cpp index 0c7720e9c4f1f6..835e5930ed009c 100644 --- a/llvm/unittests/Transforms/Utils/SSAUpdaterBulkTest.cpp +++ b/llvm/unittests/Transforms/Utils/SSAUpdaterBulkTest.cpp @@ -64,7 +64,7 @@ TEST(SSAUpdaterBulk, SimpleMerge) { Value *SubOp2 = B.CreateSub(FirstArg, ConstantInt::get(I32Ty, 4)); B.CreateBr(MergeBB); - B.SetInsertPoint(MergeBB, MergeBB->begin()); + B.SetInsertPoint(MergeBB->begin()); auto *I1 = cast<Instruction>(B.CreateAdd(AddOp1, ConstantInt::get(I32Ty, 5))); auto *I2 = cast<Instruction>(B.CreateAdd(AddOp2, ConstantInt::get(I32Ty, 6))); auto *I3 = cast<Instruction>(B.CreateAdd(SubOp1, SubOp2)); diff --git a/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp index 9859008ebe08c1..ba9b30e69aacef 100644 --- a/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp +++ b/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp @@ -800,7 +800,7 @@ static llvm::Expected<llvm::BasicBlock *> convertOmpOpRegions( if (continuationBlockPHIs) { llvm::IRBuilderBase::InsertPointGuard guard(builder); continuationBlockPHIs->reserve(continuationBlockPHITypes.size()); - builder.SetInsertPoint(continuationBlock, continuationBlock->begin()); + builder.SetInsertPoint(continuationBlock->begin()); for (llvm::Type *ty : continuationBlockPHITypes) continuationBlockPHIs->push_back(builder.CreatePHI(ty, numYields)); } @@ -1186,8 +1186,7 @@ static LogicalResult inlineConvertOmpRegions( if (continuationBlockArgs) llvm::append_range(*continuationBlockArgs, phis); - builder.SetInsertPoint(*continuationBlock, - (*continuationBlock)->getFirstInsertionPt()); + builder.SetInsertPoint((*continuationBlock)->getFirstInsertionPt()); return success(); } @@ -4882,7 +4881,7 @@ convertOmpWsloop(Operation &opInst, llvm::IRBuilderBase &builder, linearClauseProcessor.splitLinearFiniBB(builder, loopInfo->getExit()); } - builder.SetInsertPoint(*regionBlock, (*regionBlock)->begin()); + builder.SetInsertPoint((*regionBlock)->begin()); // Check if we can generate no-loop kernel bool noLoopMode = false; @@ -5314,7 +5313,7 @@ convertOmpSimd(Operation &opInst, llvm::IRBuilderBase &builder, linearClauseProcessor.updateLinearVar(builder, loopInfo->getBody(), loopInfo->getIndVar()); } - builder.SetInsertPoint(*regionBlock, (*regionBlock)->begin()); + builder.SetInsertPoint((*regionBlock)->begin()); for (size_t index = 0; index < simdOp.getLinearVars().size(); index++) linearClauseProcessor.rewriteInPlace(builder, loopInfo->getBody(), @@ -5414,7 +5413,7 @@ convertOmpLoopNest(Operation &opInst, llvm::IRBuilderBase &builder, if (!regionBlock) return regionBlock.takeError(); - builder.SetInsertPoint(*regionBlock, (*regionBlock)->begin()); + builder.SetInsertPoint((*regionBlock)->begin()); return llvm::Error::success(); }; @@ -8835,7 +8834,7 @@ convertOmpDistribute(Operation &opInst, llvm::IRBuilderBase &builder, builder, moduleTranslation); if (!regionBlock) return regionBlock.takeError(); - builder.SetInsertPoint(*regionBlock, (*regionBlock)->begin()); + builder.SetInsertPoint((*regionBlock)->begin()); // Skip applying a workshare loop below when translating 'distribute // parallel do' (it's been already handled by this point while translating diff --git a/polly/lib/CodeGen/BlockGenerators.cpp b/polly/lib/CodeGen/BlockGenerators.cpp index 877bb48ad650a1..bc5b4a6227754e 100644 --- a/polly/lib/CodeGen/BlockGenerators.cpp +++ b/polly/lib/CodeGen/BlockGenerators.cpp @@ -418,7 +418,7 @@ BasicBlock *BlockGenerator::copyBB(ScopStmt &Stmt, BasicBlock *BB, ValueMapT &BBMap, LoopToScevMapT <S, isl_id_to_ast_expr *NewAccesses) { BasicBlock *CopyBB = splitBB(BB); - Builder.SetInsertPoint(CopyBB, CopyBB->begin()); + Builder.SetInsertPoint(CopyBB->begin()); generateScalarLoads(Stmt, LTS, BBMap, NewAccesses); generateBeginStmtTrace(Stmt, LTS, BBMap); @@ -639,9 +639,9 @@ void BlockGenerator::generateConditionalExecution( // Put the client code into the conditional block and continue in the merge // block afterwards. - Builder.SetInsertPoint(ThenBlock, ThenBlock->getFirstInsertionPt()); + Builder.SetInsertPoint(ThenBlock->getFirstInsertionPt()); GenThenFunc(); - Builder.SetInsertPoint(TailBlock, TailBlock->getFirstInsertionPt()); + Builder.SetInsertPoint(TailBlock->getFirstInsertionPt()); } static std::string getInstName(Value *Val) { @@ -798,7 +798,7 @@ void BlockGenerator::createScalarInitialization(Scop &S) { BasicBlock *ExitBB = S.getExit(); BasicBlock *PreEntryBB = S.getEnteringBlock(); - Builder.SetInsertPoint(StartBlock, StartBlock->begin()); + Builder.SetInsertPoint(StartBlock->begin()); for (auto &Array : S.arrays()) { if (Array->getNumberOfDimensions() != 0) @@ -853,7 +853,7 @@ void BlockGenerator::createScalarFinalization(Scop &S) { if (OptExitBB == ExitBB) OptExitBB = *(++pred_begin(MergeBB)); - Builder.SetInsertPoint(OptExitBB, OptExitBB->getTerminator()->getIterator()); + Builder.SetInsertPoint(OptExitBB->getTerminator()->getIterator()); for (const auto &EscapeMapping : EscapeMap) { // Extract the escaping instruction and the escaping users as well as the // alloca the instruction was demoted to. @@ -924,7 +924,7 @@ void BlockGenerator::createExitPHINodeMerges(Scop &S) { if (OptExitBB == ExitBB) OptExitBB = *(++pred_begin(MergeBB)); - Builder.SetInsertPoint(OptExitBB, OptExitBB->getTerminator()->getIterator()); + Builder.SetInsertPoint(OptExitBB->getTerminator()->getIterator()); for (auto &SAI : S.arrays()) { auto *Val = SAI->getBasePtr(); @@ -1075,7 +1075,7 @@ void RegionGenerator::copyStmt(ScopStmt &Stmt, LoopToScevMapT <S, BasicBlock *EntryBBCopy = SplitBlock(Builder.GetInsertBlock(), Builder.GetInsertPoint(), GenDT, GenLI); EntryBBCopy->setName("polly.stmt." + EntryBB->getName() + ".entry"); - Builder.SetInsertPoint(EntryBBCopy, EntryBBCopy->begin()); + Builder.SetInsertPoint(EntryBBCopy->begin()); ValueMapT &EntryBBMap = RegionMaps[EntryBBCopy]; generateScalarLoads(Stmt, LTS, EntryBBMap, IdToAstExp); @@ -1115,7 +1115,7 @@ void RegionGenerator::copyStmt(ScopStmt &Stmt, LoopToScevMapT <S, ValueMapT &RegionMap = Inserted.first->second; // Copy the block with the BlockGenerator. - Builder.SetInsertPoint(BBCopy, BBCopy->begin()); + Builder.SetInsertPoint(BBCopy->begin()); copyBB(Stmt, BB, BBCopy, RegionMap, LTS, IdToAstExp); // In order to remap PHI nodes we store also basic block mappings. @@ -1169,7 +1169,7 @@ void RegionGenerator::copyStmt(ScopStmt &Stmt, LoopToScevMapT <S, ValueMapT &RegionMap = RegionMaps[BBCopyStart]; RegionMap.insert_range(StartBlockMap); - Builder.SetInsertPoint(BBCopyEnd, BICopy->getIterator()); + Builder.SetInsertPoint(BICopy->getIterator()); copyInstScalar(Stmt, TI, RegionMap, LTS); BICopy->eraseFromParent(); } @@ -1207,7 +1207,7 @@ void RegionGenerator::copyStmt(ScopStmt &Stmt, LoopToScevMapT <S, } // Continue generating code in the exit block. - Builder.SetInsertPoint(ExitBBCopy, ExitBBCopy->getFirstInsertionPt()); + Builder.SetInsertPoint(ExitBBCopy->getFirstInsertionPt()); // Write values visible to other statements. generateScalarStores(Stmt, LTS, ValueMap, IdToAstExp); @@ -1244,8 +1244,7 @@ PHINode *RegionGenerator::buildExitPHI(MemoryAccess *MA, LoopToScevMapT <S, BasicBlock *OrigIncomingBlock = Pair.first; BasicBlock *NewIncomingBlockStart = StartBlockMap.lookup(OrigIncomingBlock); BasicBlock *NewIncomingBlockEnd = EndBlockMap.lookup(OrigIncomingBlock); - Builder.SetInsertPoint(NewIncomingBlockEnd, - NewIncomingBlockEnd->getTerminator()->getIterator()); + Builder.SetInsertPoint(NewIncomingBlockEnd->getTerminator()->getIterator()); assert(RegionMaps.count(NewIncomingBlockStart)); assert(RegionMaps.count(NewIncomingBlockEnd)); ValueMapT *LocalBBMap = &RegionMaps[NewIncomingBlockStart]; @@ -1362,8 +1361,7 @@ void RegionGenerator::addOperandToPHI(ScopStmt &Stmt, PHINode *PHI, // change it, otherwise do not. auto IP = Builder.GetInsertPoint(); if (IP->getParent() != BBCopyEnd) - Builder.SetInsertPoint(BBCopyEnd, - BBCopyEnd->getTerminator()->getIterator()); + Builder.SetInsertPoint(BBCopyEnd->getTerminator()->getIterator()); OpCopy = getNewValue(Stmt, Op, BBCopyMap, LTS, getLoopForStmt(Stmt)); if (IP->getParent() != BBCopyEnd) Builder.SetInsertPoint(IP); diff --git a/polly/lib/CodeGen/CodeGeneration.cpp b/polly/lib/CodeGen/CodeGeneration.cpp index d02a1979bed6d2..5bbcc7255e9ddd 100644 --- a/polly/lib/CodeGen/CodeGeneration.cpp +++ b/polly/lib/CodeGen/CodeGeneration.cpp @@ -75,7 +75,7 @@ namespace polly { /// UnreachableInst. void markBlockUnreachable(BasicBlock &Block, PollyIRBuilder &Builder) { auto OrigTerminator = Block.getTerminator()->getIterator(); - Builder.SetInsertPoint(&Block, OrigTerminator); + Builder.SetInsertPoint(OrigTerminator); Builder.CreateUnreachable(); OrigTerminator->eraseFromParent(); } @@ -208,8 +208,7 @@ static bool generateCode(Scop &S, IslAstInfo &AI, LoopInfo &LI, assert(EnteringBB); PollyIRBuilder Builder(EnteringBB->getContext(), ConstantFolder(), IRInserter(Annotator)); - Builder.SetInsertPoint(EnteringBB, - EnteringBB->getTerminator()->getIterator()); + Builder.SetInsertPoint(EnteringBB->getTerminator()->getIterator()); // Only build the run-time condition and parameters _after_ having // introduced the conditional branch. This is important as the conditional @@ -246,8 +245,7 @@ static bool generateCode(Scop &S, IslAstInfo &AI, LoopInfo &LI, // might reference the hoisted loads. Finally, build the runtime check // that might reference both hoisted loads as well as parameters. // If the hoisting fails we have to bail and execute the original code. - Builder.SetInsertPoint(SplitBlock, - SplitBlock->getTerminator()->getIterator()); + Builder.SetInsertPoint(SplitBlock->getTerminator()->getIterator()); if (!NodeBuilder.preloadInvariantLoads()) { // Patch the introduced branch condition to ensure that we always execute // the original SCoP. @@ -294,8 +292,7 @@ static bool generateCode(Scop &S, IslAstInfo &AI, LoopInfo &LI, // Ideally we would just split the block during allocation of the new // arrays, but this would break the assumption that there are no blocks // between polly.start and polly.exiting (at this point). - Builder.SetInsertPoint(StartBlock, - StartBlock->getTerminator()->getIterator()); + Builder.SetInsertPoint(StartBlock->getTerminator()->getIterator()); NodeBuilder.generateBeginScopTrace(); diff --git a/polly/lib/CodeGen/IslExprBuilder.cpp b/polly/lib/CodeGen/IslExprBuilder.cpp index ca5a82fd5fa8ec..41cca3fcedd23f 100644 --- a/polly/lib/CodeGen/IslExprBuilder.cpp +++ b/polly/lib/CodeGen/IslExprBuilder.cpp @@ -625,7 +625,7 @@ IslExprBuilder::createOpBooleanConditional(__isl_take isl_ast_expr *Expr) { Builder.SetInsertPoint(CondBB); Builder.CreateBr(NextBB); - Builder.SetInsertPoint(InsertBB, InsertBB->getTerminator()->getIterator()); + Builder.SetInsertPoint(InsertBB->getTerminator()->getIterator()); LHS = create(isl_ast_expr_get_op_arg(Expr, 0)); if (!LHS->getType()->isIntegerTy(1)) @@ -637,13 +637,13 @@ IslExprBuilder::createOpBooleanConditional(__isl_take isl_ast_expr *Expr) { else BR->setCondition(LHS); - Builder.SetInsertPoint(CondBB, CondBB->getTerminator()->getIterator()); + Builder.SetInsertPoint(CondBB->getTerminator()->getIterator()); RHS = create(isl_ast_expr_get_op_arg(Expr, 1)); if (!RHS->getType()->isIntegerTy(1)) RHS = Builder.CreateIsNotNull(RHS); auto RightBB = Builder.GetInsertBlock(); - Builder.SetInsertPoint(NextBB, NextBB->getTerminator()->getIterator()); + Builder.SetInsertPoint(NextBB->getTerminator()->getIterator()); auto PHI = Builder.CreatePHI(Builder.getInt1Ty(), 2); PHI->addIncoming(OpType == isl_ast_op_and_then ? Builder.getFalse() : Builder.getTrue(), diff --git a/polly/lib/CodeGen/IslNodeBuilder.cpp b/polly/lib/CodeGen/IslNodeBuilder.cpp index 126cb756a41448..bac10f5e3ad408 100644 --- a/polly/lib/CodeGen/IslNodeBuilder.cpp +++ b/polly/lib/CodeGen/IslNodeBuilder.cpp @@ -564,7 +564,7 @@ void IslNodeBuilder::createForSequential(isl::ast_node_for For, IDToValue.erase(IDToValue.find(IteratorID.get())); - Builder.SetInsertPoint(ExitBlock, ExitBlock->begin()); + Builder.SetInsertPoint(ExitBlock->begin()); SequentialLoops++; } @@ -584,7 +584,7 @@ void IslNodeBuilder::createForParallel(__isl_take isl_ast_node *For) { BasicBlock *ParBB = SplitBlock(Builder.GetInsertBlock(), Builder.GetInsertPoint(), &DT, &LI); ParBB->setName("polly.parallel.for"); - Builder.SetInsertPoint(ParBB, ParBB->begin()); + Builder.SetInsertPoint(ParBB->begin()); Body = isl_ast_node_for_get_body(For); Init = isl_ast_node_for_get_init(For); @@ -832,16 +832,16 @@ void IslNodeBuilder::createIf(__isl_take isl_ast_node *If) { Builder.CreateBr(MergeBB); Builder.SetInsertPoint(ElseBB); Builder.CreateBr(MergeBB); - Builder.SetInsertPoint(ThenBB, ThenBB->begin()); + Builder.SetInsertPoint(ThenBB->begin()); create(isl_ast_node_if_get_then(If)); - Builder.SetInsertPoint(ElseBB, ElseBB->begin()); + Builder.SetInsertPoint(ElseBB->begin()); if (isl_ast_node_if_has_else(If)) create(isl_ast_node_if_get_else(If)); - Builder.SetInsertPoint(MergeBB, MergeBB->begin()); + Builder.SetInsertPoint(MergeBB->begin()); isl_ast_node_free(If); @@ -1231,16 +1231,16 @@ Value *IslNodeBuilder::preloadInvariantLoad(const MemoryAccess &MA, L->addBasicBlockToLoop(ExecBB, *GenLI); auto *CondBBTerminator = CondBB->getTerminator(); - Builder.SetInsertPoint(CondBB, CondBBTerminator->getIterator()); + Builder.SetInsertPoint(CondBBTerminator->getIterator()); Builder.CreateCondBr(Cond, ExecBB, MergeBB); CondBBTerminator->eraseFromParent(); Builder.SetInsertPoint(ExecBB); Builder.CreateBr(MergeBB); - Builder.SetInsertPoint(ExecBB, ExecBB->getTerminator()->getIterator()); + Builder.SetInsertPoint(ExecBB->getTerminator()->getIterator()); Value *PreAccInst = preloadUnconditionally(AccessRange, Build, AccInst); - Builder.SetInsertPoint(MergeBB, MergeBB->getTerminator()->getIterator()); + Builder.SetInsertPoint(MergeBB->getTerminator()->getIterator()); auto *MergePHI = Builder.CreatePHI( AccInstTy, 2, "polly.preload." + AccInst->getName() + ".merge"); Value *PreloadVal = MergePHI; @@ -1420,8 +1420,7 @@ void IslNodeBuilder::allocateNewArrays(BBPair StartExitBlocks) { // Insert the malloc call at polly.start BasicBlock *StartBlock = std::get<0>(StartExitBlocks); - Builder.SetInsertPoint(StartBlock, - StartBlock->getTerminator()->getIterator()); + Builder.SetInsertPoint(StartBlock->getTerminator()->getIterator()); auto *CreatedArray = Builder.CreateMalloc( IntPtrTy, ConstantInt::get(Type::getInt64Ty(Ctx), Size), ConstantInt::get(Type::getInt64Ty(Ctx), ArraySizeInt), nullptr, @@ -1431,8 +1430,7 @@ void IslNodeBuilder::allocateNewArrays(BBPair StartExitBlocks) { // Insert the free call at polly.exiting BasicBlock *ExitingBlock = std::get<1>(StartExitBlocks); - Builder.SetInsertPoint(ExitingBlock, - ExitingBlock->getTerminator()->getIterator()); + Builder.SetInsertPoint(ExitingBlock->getTerminator()->getIterator()); Builder.CreateFree(CreatedArray); } else { auto InstIt = Builder.GetInsertBlock() @@ -1458,7 +1456,7 @@ bool IslNodeBuilder::preloadInvariantLoads() { BasicBlock *PreLoadBB = SplitBlock(Builder.GetInsertBlock(), Builder.GetInsertPoint(), GenDT, GenLI); PreLoadBB->setName("polly.preload.begin"); - Builder.SetInsertPoint(PreLoadBB, PreLoadBB->begin()); + Builder.SetInsertPoint(PreLoadBB->begin()); for (auto &IAClass : InvariantEquivClasses) if (!preloadInvariantEquivClass(IAClass)) _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
