| /llvm-project-15.0.7/llvm/unittests/IR/ |
| H A D | CFGBuilder.cpp | 43 if (isa<UnreachableInst>(From->getTerminator())) in ConnectBlocks() 44 From->getTerminator()->eraseFromParent(); in ConnectBlocks() 45 if (!From->getTerminator()) { in ConnectBlocks() 51 SwitchInst *SI = cast<SwitchInst>(From->getTerminator()); in ConnectBlocks() 62 SwitchInst *SI = cast<SwitchInst>(From->getTerminator()); in DisconnectBlocks() 174 EXPECT_TRUE(isa<SwitchInst>(B.getOrAddBlock("a")->getTerminator())); in TEST() 176 EXPECT_TRUE(isa<SwitchInst>(B.getOrAddBlock("d")->getTerminator())); in TEST() 202 EXPECT_TRUE(isa<SwitchInst>(B.getOrAddBlock("a")->getTerminator())); in TEST() 204 EXPECT_TRUE(isa<SwitchInst>(B.getOrAddBlock("d")->getTerminator())); in TEST() 225 EXPECT_TRUE(isa<SwitchInst>(B.getOrAddBlock("a")->getTerminator())); in TEST() [all …]
|
| /llvm-project-15.0.7/llvm/unittests/Analysis/ |
| H A D | DomTreeUpdaterTest.cpp | 91 EXPECT_EQ(BB0->getTerminator()->getNumSuccessors(), 3u); in TEST() 99 EXPECT_EQ(BB0->getTerminator()->getNumSuccessors(), 2u); in TEST() 103 ASSERT_FALSE(isa<UnreachableInst>(BB3->getTerminator())); in TEST() 195 NewEntry->getTerminator()->eraseFromParent(); in TEST() 272 BB0->getTerminator()->eraseFromParent(); in TEST() 370 BB0->getTerminator()->eraseFromParent(); in TEST() 404 BB0->getTerminator()->eraseFromParent(); in TEST() 489 BB0->getTerminator()->eraseFromParent(); in TEST() 573 NewEntry->getTerminator()->eraseFromParent(); in TEST() 759 BB0->getTerminator()->eraseFromParent(); in TEST() [all …]
|
| H A D | ProfileSummaryInfoTest.cpp | 143 BasicBlock *BB1 = BB0.getTerminator()->getSuccessor(0); in TEST_F() 203 BasicBlock *BB1 = BB0.getTerminator()->getSuccessor(0); in TEST_F() 204 BasicBlock *BB2 = BB0.getTerminator()->getSuccessor(1); in TEST_F() 270 BasicBlock *BB1 = BB0.getTerminator()->getSuccessor(0); in TEST_F() 271 BasicBlock *BB2 = BB0.getTerminator()->getSuccessor(1); in TEST_F() 299 BasicBlock *BB1 = BB0.getTerminator()->getSuccessor(0); in TEST_F() 300 BasicBlock *BB2 = BB0.getTerminator()->getSuccessor(1); in TEST_F() 370 BasicBlock *BB1 = BB0.getTerminator()->getSuccessor(0); in TEST_F() 371 BasicBlock *BB2 = BB0.getTerminator()->getSuccessor(1); in TEST_F()
|
| H A D | ValueTrackingTest.cpp | 974 EXPECT_EQ(isGuaranteedNotToBePoison(A, nullptr, BB.getTerminator(), &DT), in TEST_F() 1544 A, M->getDataLayout(), /* Depth */ 0, &AC, F->front().getTerminator()); in TEST_F() 1581 F->front().getTerminator()); in TEST_F() 1597 F->front().getTerminator()); in TEST_F() 1602 F->front().getTerminator()); in TEST_F() 1652 F->front().getTerminator()); in TEST_F() 1657 F->front().getTerminator()); in TEST_F() 1679 F->front().getTerminator()); in TEST_F() 1684 F->front().getTerminator()); in TEST_F() 1712 F->front().getTerminator()); in TEST_F() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Utils/ |
| H A D | FlattenCFG.cpp | 151 BranchInst *PBI = dyn_cast<BranchInst>(Pred->getTerminator()); in FlattenParallelAndOr() 223 BranchInst *BPS = dyn_cast<BranchInst>(PS->getTerminator()); in FlattenParallelAndOr() 234 Instruction *TBB = LastCondBlock->getTerminator(); in FlattenParallelAndOr() 237 BranchInst *PBI1 = dyn_cast<BranchInst>(PS1->getTerminator()); in FlattenParallelAndOr() 238 BranchInst *PBI2 = dyn_cast<BranchInst>(PS2->getTerminator()); in FlattenParallelAndOr() 243 (PS1->getTerminator()->getSuccessor(0) != PS2)) { in FlattenParallelAndOr() 246 (PS2->getTerminator()->getSuccessor(0) != PS1)) in FlattenParallelAndOr() 254 auto *BI = cast<BranchInst>(CurrBlock->getTerminator()); in FlattenParallelAndOr() 292 PBI = cast<BranchInst>(FirstCondBlock->getTerminator()); in FlattenParallelAndOr() 325 Instruction *PTI2 = Head2->getTerminator(); in CompareIfRegionBlock() [all …]
|
| H A D | LoopUnrollRuntime.cpp | 155 Instruction *InsertPt = PrologExit->getTerminator(); in ConnectProlog() 285 Instruction *InsertPt = NewExit->getTerminator(); in ConnectEpilog() 342 InsertTop->getTerminator()->setSuccessor(0, NewBB); in CloneLoopBlocks() 358 VMap.erase((*BB)->getTerminator()); in CloneLoopBlocks() 473 cast<BranchInst>(OrigLoop->getLoopLatch()->getTerminator()); in updateLatchBranchWeightsForRemainderLoop() 483 auto *RemainderLatchBR = cast<BranchInst>(Latch->getTerminator()); in updateLatchBranchWeightsForRemainderLoop() 582 BranchInst *LatchBR = cast<BranchInst>(Latch->getTerminator()); in UnrollRuntimeLoopRemainder() 696 auto *NewExitTerminator = NewExit->getTerminator(); in UnrollRuntimeLoopRemainder() 744 PreHeaderBR = cast<BranchInst>(PreHeader->getTerminator()); in UnrollRuntimeLoopRemainder() 914 IRBuilder<> B2(NewPreHeader->getTerminator()); in UnrollRuntimeLoopRemainder() [all …]
|
| H A D | BasicBlockUtils.cpp | 88 isa<UnreachableInst>(BB->getTerminator()) && in detachDeadBlocks() 193 Instruction *PTI = PredBB->getTerminator(); in MergeBlockIntoPredecessor() 261 Instruction *STI = BB->getTerminator(); in MergeBlockIntoPredecessor() 505 isa<UnreachableInst>(BB->getTerminator())) in IsBlockFollowedByDeoptOrUnreachable() 522 Instruction *LatchTerm = BB->getTerminator(); in SplitEdge() 638 setUnwindEdgeTo(BB->getTerminator(), NewBB); in ehAwareSplitEdge() 772 Instruction *TI = BB.getTerminator(); in SplitAllCriticalEdges() 1320 Instruction *UncondBranch = Pred->getTerminator(); in FoldReturnIntoUncondBranch() 1393 Instruction *HeadOldTerm = Head->getTerminator(); in SplitBlockAndInsertIfThenImpl() 1408 CheckTerm = ThenBlock->getTerminator(); in SplitBlockAndInsertIfThenImpl() [all …]
|
| H A D | BreakCriticalEdges.cpp | 158 return isa<IndirectBrInst>(Pred->getTerminator()); in SplitKnownCriticalEdge() 319 Instruction *PredTerm = PredBB->getTerminator(); in findIBRPredecessor() 347 auto *IBI = dyn_cast<IndirectBrInst>(BB.getTerminator()); in SplitIndirectBrCriticalEdges() 379 EdgeProbabilities.reserve(Target->getTerminator()->getNumSuccessors()); in SplitIndirectBrCriticalEdges() 380 for (unsigned I = 0, E = Target->getTerminator()->getNumSuccessors(); in SplitIndirectBrCriticalEdges() 408 Src->getTerminator()->replaceUsesOfWith(Target, DirectSucc); in SplitIndirectBrCriticalEdges() 430 assert(&*End == Target->getTerminator() && in SplitIndirectBrCriticalEdges()
|
| H A D | UnifyFunctionExitNodes.cpp | 52 if (isa<UnreachableInst>(I.getTerminator())) in unifyUnreachableBlocks() 74 if (isa<ReturnInst>(I.getTerminator())) in unifyReturnBlocks() 103 PN->addIncoming(BB->getTerminator()->getOperand(0), BB); in unifyReturnBlocks()
|
| H A D | LoopPeel.cpp | 91 if (!isa<BranchInst>(Latch->getTerminator())) in canPeel() 174 return !isa<UnreachableInst>(BB->getTerminator()); in peelToTurnInvariantLoadsDerefencebale() 213 return LoadUsers.contains(Exiting->getTerminator()); in peelToTurnInvariantLoadsDerefencebale() 234 auto *BI = dyn_cast<BranchInst>(BB->getTerminator()); in countToEliminateCompares() 340 BranchInst *LatchBR = dyn_cast<BranchInst>(Latch->getTerminator()); in violatesLegacyMultiExitLoopCheck() 636 InsertTop->getTerminator()->setSuccessor(0, cast<BasicBlock>(VMap[Header])); in cloneLoopBlocks() 644 BranchInst *LatchBR = cast<BranchInst>(NewLatch->getTerminator()); in cloneLoopBlocks() 825 SplitBlock(InsertTop, InsertTop->getTerminator(), &DT, LI); in peelLoop() 827 SplitBlock(InsertBot, InsertBot->getTerminator(), &DT, LI); in peelLoop() 838 cast<BranchInst>(cast<BasicBlock>(Latch)->getTerminator()); in peelLoop() [all …]
|
| H A D | LoopSimplify.cpp | 130 if (isa<IndirectBrInst>(P->getTerminator())) in InsertPreheaderForLoop() 259 if (isa<IndirectBrInst>(PN->getIncomingBlock(i)->getTerminator())) in separateNestedLoop() 378 if (isa<IndirectBrInst>(P->getTerminator())) in insertUniqueBackedgeBlock() 454 Instruction *TI = BackedgeBlocks[i]->getTerminator(); in insertUniqueBackedgeBlock() 460 BEBlock->getTerminator()->setMetadata(LoopMDKind, LoopMD); in insertUniqueBackedgeBlock() 509 Instruction *TI = P->getTerminator(); in simplifyOneLoop() 525 if (BranchInst *BI = dyn_cast<BranchInst>(ExitingBlock->getTerminator())) in simplifyOneLoop() 637 BranchInst *BI = dyn_cast<BranchInst>(ExitingBlock->getTerminator()); in simplifyOneLoop() 652 Preheader ? Preheader->getTerminator() : nullptr, MSSAU)) { in simplifyOneLoop() 889 if (isa<IndirectBrInst>(Pred->getTerminator())) { [all …]
|
| H A D | LoopRotationUtils.cpp | 186 BranchInst *BI = dyn_cast<BranchInst>(Header->getTerminator()); in profitableToRotateLoopExitingLatch() 212 BranchInst *BI = dyn_cast<BranchInst>(Latch->getTerminator()); in canRotateDeoptimizingLatchExit() 270 BranchInst *BI = dyn_cast<BranchInst>(OrigHeader->getTerminator()); in rotateLoop() 385 Instruction *LoopEntryBranch = OrigPreheader->getTerminator(); in rotateLoop() 599 BranchInst *PHBI = cast<BranchInst>(OrigPreheader->getTerminator()); in rotateLoop() 625 isa<IndirectBrInst>(ExitPred->getTerminator())) in rotateLoop() 770 BranchInst *Jmp = dyn_cast<BranchInst>(Latch->getTerminator()); in simplifyLoopLatch() 778 BranchInst *BI = dyn_cast<BranchInst>(LastExit->getTerminator()); in simplifyLoopLatch()
|
| H A D | LoopVersioning.cpp | 66 MemRuntimeCheck = addRuntimeChecks(RuntimeCheckBB->getTerminator(), in versionLoop() 72 Exp.expandCodeForPredicate(&Preds, RuntimeCheckBB->getTerminator()); in versionLoop() 78 Builder.SetInsertPoint(RuntimeCheckBB->getTerminator()); in versionLoop() 94 SplitBlock(RuntimeCheckBB, RuntimeCheckBB->getTerminator(), DT, LI, in versionLoop() 108 Instruction *OrigTerm = RuntimeCheckBB->getTerminator(); in versionLoop()
|
| /llvm-project-15.0.7/llvm/unittests/Transforms/Utils/ |
| H A D | BasicBlockUtilsTest.cpp | 273 Instruction *LatchTerm = SrcBlock->getTerminator(); in TEST() 471 BasicBlock *SplitBB = BB1->getTerminator()->getSuccessor(0); in TEST() 472 ASSERT_EQ(2u, SplitBB->getTerminator()->getNumSuccessors()); in TEST() 478 ASSERT_EQ(2u, BB0->getTerminator()->getNumSuccessors()); in TEST() 479 EXPECT_EQ(BB0->getTerminator()->getSuccessor(1), in TEST() 513 BasicBlock *SplitBB = BB1->getTerminator()->getSuccessor(0); in TEST() 514 ASSERT_EQ(2u, SplitBB->getTerminator()->getNumSuccessors()); in TEST() 521 ASSERT_EQ(2u, BB0->getTerminator()->getNumSuccessors()); in TEST() 525 ASSERT_EQ(1u, BB2->getTerminator()->getNumSuccessors()); in TEST() 527 EXPECT_EQ(BB2->getTerminator()->getSuccessor(0), in TEST() [all …]
|
| /llvm-project-15.0.7/llvm/tools/llvm-stress/ |
| H A D | llvm-stress.cpp | 341 Value *V = new LoadInst(Ty, Ptr, "L", BB->getTerminator()); in Act() 363 new StoreInst(Val, Ptr, BB->getTerminator()); in Act() 385 Instruction* Term = BB->getTerminator(); in Act() 486 "E", BB->getTerminator()); in Act() 514 BB->getTerminator()); in Act() 533 "I", BB->getTerminator()); in Act() 561 new BitCastInst(V, DestTy, "PC", BB->getTerminator())); in Act() 570 new BitCastInst(V, DestTy, "BC", BB->getTerminator())); in Act() 667 BB->getTerminator()); in Act() 723 Instr->moveBefore(Curr->getTerminator()); in IntroduceControlFlow() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Target/AMDGPU/ |
| H A D | AMDGPUUnifyDivergentExitNodes.cpp | 124 if (!DA.isUniform(Top->getTerminator())) in isUniformlyReached() 163 PN->addIncoming(BB->getTerminator()->getOperand(0), BB); in unifyReturnBlockSet() 166 BB->getTerminator()->eraseFromParent(); in unifyReturnBlockSet() 210 if (isa<ReturnInst>(BB->getTerminator())) { in runOnFunction() 213 } else if (isa<UnreachableInst>(BB->getTerminator())) { in runOnFunction() 216 } else if (BranchInst *BI = dyn_cast<BranchInst>(BB->getTerminator())) { in runOnFunction() 252 BB->getTerminator()->eraseFromParent(); in runOnFunction() 273 BB->getTerminator()->eraseFromParent(); in runOnFunction() 287 UnreachableBlock->getTerminator()->eraseFromParent(); in runOnFunction()
|
| /llvm-project-15.0.7/llvm/examples/IRTransforms/ |
| H A D | SimplifyCFG.cpp | 145 BranchInst *BI = dyn_cast<BranchInst>(BB.getTerminator()); in eliminateCondBranches_v1() 181 BranchInst *BI = dyn_cast<BranchInst>(BB.getTerminator()); in eliminateCondBranches_v2() 231 if (!match(BB.getTerminator(), in eliminateCondBranches_v3() 247 BranchInst *NewBranch = BranchInst::Create(TakenSucc, BB.getTerminator()); in eliminateCondBranches_v3() 248 BB.getTerminator()->eraseFromParent(); in eliminateCondBranches_v3() 290 I.moveBefore(Pred->getTerminator()); in mergeIntoSinglePredecessor_v1() 294 Pred->getTerminator()->eraseFromParent(); in mergeIntoSinglePredecessor_v1() 341 I.moveBefore(Pred->getTerminator()); in mergeIntoSinglePredecessor_v2() 345 Pred->getTerminator()->eraseFromParent(); in mergeIntoSinglePredecessor_v2()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Scalar/ |
| H A D | JumpThreading.cpp | 527 if (BB->getTerminator() == StopAt) { in getJumpThreadDuplicationCost() 994 Instruction *BBTerm = BB->getTerminator(); in getBestDestForJumpOnUndef() 1050 Instruction *Terminator = BB->getTerminator(); in processBlock() 1092 Instruction *BBTerm = BB->getTerminator(); in processBlock() 1462 if (isa<IndirectBrInst>(P->getTerminator())) in simplifyPartiallyRedundantLoad() 1483 UnavailablePred->getTerminator()); in simplifyPartiallyRedundantLoad() 1715 Instruction *Term = BB->getTerminator(); in processThreadableEdges() 1781 MostPopularDest = BB->getTerminator()-> in processThreadableEdges() 2173 if (isa<IndirectBrInst>(P->getTerminator())) in maybethreadThroughTwoBasicBlocks() 2473 const Instruction *TI = BB->getTerminator(); in doesBlockHaveProfileData() [all …]
|
| H A D | CallSiteSplitting.cpp | 133 auto *BI = dyn_cast<BranchInst>(From->getTerminator()); in recordCondition() 145 Conditions.push_back({Cmp, From->getTerminator()->getSuccessor(0) == To in recordCondition() 198 if (Preds.size() != 2 || isa<IndirectBrInst>(Preds[0]->getTerminator()) || in canSplitCallSite() 199 isa<IndirectBrInst>(Preds[1]->getTerminator())) in canSplitCallSite() 253 Instruction *TI = SplitBB->getTerminator(); in copyMustTailReturn() 334 cast<CallBase>(&*std::prev(SplitBlock->getTerminator()->getIterator())); in splitCallSite() 368 Splits[i]->getTerminator()->eraseFromParent(); in splitCallSite() 509 auto IE = BB.getTerminator()->getIterator(); in doCallSiteSplitting() 514 while (II != IE && &*II != BB.getTerminator()) { in doCallSiteSplitting()
|
| H A D | IndVarSimplify.cpp | 467 auto *TermInst = IncomingBB->getTerminator(); in rewriteFirstIterationLoopExitValues() 704 BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator()); in isLoopExitTestBasedOn() 723 BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator()); in needsLFTR() 1118 BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator()); in linearFunctionTestReplace() 1214 BasicBlock::iterator I(Preheader->getTerminator()); in sinkUnusedInvariants() 1301 BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator()); in foldExit() 1349 BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator()); in replaceWithInvariantCond() 1634 auto *BI = cast<BranchInst>(ExitingBB->getTerminator()); in optimizeLoopExits() 1850 IRBuilder<> B(L->getLoopPreheader()->getTerminator()); in predicateLoopExits() 1855 auto *BI = cast<BranchInst>(ExitingBB->getTerminator()); in predicateLoopExits() [all …]
|
| /llvm-project-15.0.7/polly/lib/CodeGen/ |
| H A D | CodeGeneration.cpp | 78 auto *OrigTerminator = Block.getTerminator(); in markBlockUnreachable() 212 Builder.SetInsertPoint(EnteringBB->getTerminator()); in generateCode() 238 P.insertRegionStart(SplitBlock->getTerminator()); in generateCode() 241 P.insertRegionEnd(MergeBlock->getTerminator()); in generateCode() 249 Builder.SetInsertPoint(SplitBlock->getTerminator()); in generateCode() 254 auto *SplitBBTerm = Builder.GetInsertBlock()->getTerminator(); in generateCode() 273 Builder.GetInsertBlock()->getTerminator()->setOperand(0, RTC); in generateCode() 281 Builder.SetInsertPoint(StartBlock->getTerminator()); in generateCode()
|
| /llvm-project-15.0.7/mlir/lib/Conversion/SCFToControlFlow/ |
| H A D | SCFToControlFlow.cpp | 315 Operation *terminator = lastBodyBlock->getTerminator(); in matchAndRewrite() 381 Operation *thenTerminator = thenRegion.back().getTerminator(); in matchAndRewrite() 395 Operation *elseTerminator = elseRegion.back().getTerminator(); in matchAndRewrite() 427 if (auto terminator = dyn_cast<scf::YieldOp>(block.getTerminator())) { in matchAndRewrite() 496 yieldOperands.push_back(reduceBlock.getTerminator()->getOperand(0)); in matchAndRewrite() 497 rewriter.eraseOp(reduceBlock.getTerminator()); in matchAndRewrite() 503 rewriter.eraseOp(parallelOp.getBody()->getTerminator()); in matchAndRewrite() 508 rewriter.mergeBlockBefore(parallelOp.getBody(), newBody->getTerminator(), in matchAndRewrite() 549 auto condOp = cast<ConditionOp>(beforeLast->getTerminator()); in matchAndRewrite() 555 auto yieldOp = cast<scf::YieldOp>(afterLast->getTerminator()); in matchAndRewrite() [all …]
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | HardwareLoops.cpp | 345 if (!isa<BranchInst>(Pred->getTerminator())) in CanGenerateTest() 348 auto *BI = cast<BranchInst>(Pred->getTerminator()); in CanGenerateTest() 406 cast<BranchInst>(BB->getTerminator())->isUnconditional()) { in InitLoopCount() 410 if (!SCEVE.isSafeToExpandAt(ExitCount, Predecessor->getTerminator())) in InitLoopCount() 416 if (!SCEVE.isSafeToExpandAt(ExitCount, BB->getTerminator())) { in InitLoopCount() 423 BB->getTerminator()); in InitLoopCount() 442 IRBuilder<> Builder(BeginBB->getTerminator()); in InsertIterationSetup() 455 assert((isa<BranchInst>(BeginBB->getTerminator()) && in InsertIterationSetup() 456 cast<BranchInst>(BeginBB->getTerminator())->isConditional()) && in InsertIterationSetup() 461 auto *LoopGuard = cast<BranchInst>(BeginBB->getTerminator()); in InsertIterationSetup()
|
| /llvm-project-15.0.7/llvm/lib/Target/X86/ |
| H A D | X86LowerAMXIntrinsics.cpp | 183 B.SetInsertPoint(ColBody->getTerminator()); in createTileLoadStoreLoops() 196 B.SetInsertPoint(RowLoopHeader->getTerminator()); in createTileLoadStoreLoops() 204 B.SetInsertPoint(ColLoopHeader->getTerminator()); in createTileLoadStoreLoops() 213 B.SetInsertPoint(ColBody->getTerminator()); in createTileLoadStoreLoops() 229 B.SetInsertPoint(ColBody->getTerminator()); in createTileLoadStoreLoops() 290 B.SetInsertPoint(ColBody->getTerminator()); in createTileDPLoops() 323 B.SetInsertPoint(RowLoopHeader->getTerminator()); in createTileDPLoops() 340 B.SetInsertPoint(ColLoopHeader->getTerminator()); in createTileDPLoops() 353 B.SetInsertPoint(InnerLoopHeader->getTerminator()); in createTileDPLoops() 357 B.SetInsertPoint(InnerBody->getTerminator()); in createTileDPLoops() [all …]
|
| /llvm-project-15.0.7/llvm/lib/IR/ |
| H A D | BasicBlock.cpp | 360 auto *Term = getTerminator(); in isLegalToHoistInto() 383 assert(getTerminator() && "Can't use splitBasicBlock on degenerate BB!"); in splitBasicBlock() 410 assert(getTerminator() && in splitBasicBlockBefore() 432 Instruction *TI = Pred->getTerminator(); in splitBasicBlockBefore() 456 Instruction *TI = getTerminator(); in replaceSuccessorsPhiUsesWith() 478 const Instruction *TI = getTerminator(); in getIrrLoopHeaderWeight()
|