| /llvm-project-15.0.7/llvm/lib/Transforms/Scalar/ |
| H A D | LoopFuse.cpp | 151 BasicBlock *Preheader; member 261 return Preheader; in getEntryBlock() 302 << "\tPreheader: " << (Preheader ? Preheader->getName() : "nullptr") in dump() 322 if (!Preheader) in isEligibleForFusion() 635 assert(FC0.Preheader && FC1.Preheader && "Expecting valid preheaders"); in isControlFlowEquivalent() 1333 moveInstructionsToTheEnd(*FC1.Preheader, *FC0.Preheader, DT, PDT, DI); in performFusion() 1361 FC1.Preheader->replaceSuccessorsPhiUsesWith(FC0.Preheader); in performFusion() 1409 new UnreachableInst(FC1.Preheader->getContext(), FC1.Preheader); in performFusion() 1535 assert(FC0.Preheader && FC1.Preheader && in reportLoopFusion() 1651 FC1.Preheader->replaceSuccessorsPhiUsesWith(FC0.Preheader); in fuseGuardedLoops() [all …]
|
| H A D | LoopSink.cpp | 270 BasicBlock *Preheader = L.getLoopPreheader(); in sinkLoopInvariantInstructions() local 271 assert(Preheader && "Expected loop to have preheader"); in sinkLoopInvariantInstructions() 273 assert(Preheader->getParent()->hasProfileData() && in sinkLoopInvariantInstructions() 276 const BlockFrequency PreheaderFreq = BFI.getBlockFreq(Preheader); in sinkLoopInvariantInstructions() 306 for (Instruction &I : llvm::make_early_inc_range(llvm::reverse(*Preheader))) { in sinkLoopInvariantInstructions() 346 BasicBlock *Preheader = L.getLoopPreheader(); in run() local 347 if (!Preheader) in run() 352 if (!Preheader->getParent()->hasProfileData()) in run() 386 BasicBlock *Preheader = L->getLoopPreheader(); in runOnLoop() local 387 if (!Preheader) in runOnLoop() [all …]
|
| H A D | LoopDeletion.cpp | 68 BasicBlock *Preheader, LoopInfo &LI) { in isLoopDead() argument 93 if (!L->makeLoopInvariant(I, Changed, Preheader->getTerminator())) { in isLoopDead() 153 auto *Preheader = L->getLoopPreheader(); in isLoopNeverExecuted() local 156 assert(Preheader && "Needs preheader!"); in isLoopNeverExecuted() 158 if (Preheader->isEntryBlock()) in isLoopNeverExecuted() 162 for (auto *Pred: predecessors(Preheader)) { in isLoopNeverExecuted() 170 if (Taken == Preheader) in isLoopNeverExecuted() 173 assert(!pred_empty(Preheader) && in isLoopNeverExecuted() 448 BasicBlock *Preheader = L->getLoopPreheader(); in deleteLoopIfDead() local 449 if (!Preheader || !L->hasDedicatedExits()) { in deleteLoopIfDead() [all …]
|
| H A D | InductiveRangeCheckElimination.cpp | 772 BasicBlock *Preheader = L.getLoopPreheader(); in parseLoopStructure() local 773 if (!Preheader) { in parseLoopStructure() 1024 Instruction *Ins = Preheader->getTerminator(); in parseLoopStructure() 1329 NewPHI->addIncoming(PN.getIncomingValueForBlock(Preheader), Preheader); in changeIterationSpaceEnd() 1362 BranchInst::Create(LS.Header, Preheader); in createPreheader() 1366 return Preheader; in createPreheader() 1401 BasicBlock *Preheader = nullptr; in run() local 1403 Preheader = OriginalLoop.getLoopPreheader(); in run() 1407 OriginalPreheader = Preheader; in run() 1408 MainLoopPreheader = Preheader; in run() [all …]
|
| H A D | LoopSimplifyCFG.cpp | 353 BasicBlock *Preheader = L.getLoopPreheader(); in handleDeadExits() local 355 Preheader, Preheader->getTerminator(), &DT, &LI, MSSAU); in handleDeadExits() 357 IRBuilder<> Builder(Preheader->getTerminator()); in handleDeadExits() 360 Preheader->getTerminator()->eraseFromParent(); in handleDeadExits() 380 DTUpdates.push_back({DominatorTree::Insert, Preheader, BB}); in handleDeadExits() 385 if (Loop *OuterLoop = LI.getLoopFor(Preheader)) { in handleDeadExits()
|
| H A D | LoopIdiomRecognize.cpp | 1116 BasicBlock *Preheader = CurLoop->getLoopPreheader(); in processLoopStridedStore() local 1117 IRBuilder<> Builder(Preheader->getTerminator()); in processLoopStridedStore() 1220 NewCall->getDebugLoc(), Preheader); in processLoopStridedStore() 1230 << ore::NV("ToBlock", Preheader->getName()); in processLoopStridedStore() 1335 BasicBlock *Preheader = CurLoop->getLoopPreheader(); in processLoopStoreOfLoopLoad() local 1336 IRBuilder<> Builder(Preheader->getTerminator()); in processLoopStoreOfLoopLoad() 1420 LdStart, Builder.getInt8PtrTy(LdAS), Preheader->getTerminator()); in processLoopStoreOfLoopLoad() 1520 NewCall->getDebugLoc(), Preheader) in processLoopStoreOfLoopLoad() 1528 << ore::NV("ToBlock", Preheader->getName()); in processLoopStoreOfLoopLoad() 2085 Value *CntInitVal = CntPhi->getIncomingValueForBlock(Preheader); in transformLoopToCountable() [all …]
|
| H A D | LoopPredication.cpp | 262 BasicBlock *Preheader; member in __anon082da8af0111::LoopPredication 518 return Preheader->getTerminator(); in findInsertPt() 529 !Expander.isSafeToExpandAt(Op, Preheader->getTerminator())) in findInsertPt() 531 return Preheader->getTerminator(); in findInsertPt() 1275 Preheader = L->getLoopPreheader(); in runOnLoop() 1276 if (!Preheader) in runOnLoop()
|
| /llvm-project-15.0.7/llvm/lib/Target/PowerPC/ |
| H A D | PPCCTRLoops.cpp | 168 MachineBasicBlock *Preheader = ML->getLoopPreheader(); in processLoop() local 171 if (!Preheader) in processLoop() 174 Start = SearchForStart(Preheader); in processLoop() 180 if (Preheader->isLiveIn(PPC::CTR) || Preheader->isLiveIn(PPC::CTR8)) in processLoop() 187 I != Preheader->instr_rend(); ++I) in processLoop() 198 I != Preheader->instr_end(); ++I) in processLoop() 237 MachineBasicBlock *Preheader = Start->getParent(); in expandNormalLoops() local 239 assert((Preheader && Exiting) && in expandNormalLoops() 288 assert(P == Preheader && in expandNormalLoops() 314 MachineBasicBlock *Preheader = Start->getParent(); in expandCTRLoops() local [all …]
|
| /llvm-project-15.0.7/llvm/lib/Target/ARM/ |
| H A D | ARMBlockPlacement.cpp | 99 MachineBasicBlock *Preheader = WLS->getParent(); in revertWhileToDoLoop() local 100 assert(WLS != &Preheader->back()); in revertWhileToDoLoop() 101 assert(WLS->getNextNode() == &Preheader->back()); in revertWhileToDoLoop() 102 MachineInstr *Br = &Preheader->back(); in revertWhileToDoLoop() 112 MachineBasicBlock *NewBlock = Preheader->getParent()->CreateMachineBasicBlock( in revertWhileToDoLoop() 113 Preheader->getBasicBlock()); in revertWhileToDoLoop() 114 Preheader->getParent()->insert(++Preheader->getIterator(), NewBlock); in revertWhileToDoLoop() 119 Preheader->replaceSuccessor(Br->getOperand(0).getMBB(), NewBlock); in revertWhileToDoLoop() 141 Preheader->getParent()->RenumberBlocks(); in revertWhileToDoLoop() 143 BBUtils->adjustBBOffsetsAfter(Preheader); in revertWhileToDoLoop()
|
| H A D | MVETailPredication.cpp | 147 BasicBlock *Preheader = L->getLoopPreheader(); in runOnLoop() local 148 if (!Preheader) in runOnLoop() 166 IntrinsicInst *Setup = FindLoopIterations(Preheader); in runOnLoop() 170 if (!Preheader->getSinglePredecessor()) in runOnLoop() 172 Setup = FindLoopIterations(Preheader->getSinglePredecessor()); in runOnLoop()
|
| H A D | ARMLowOverheadLoops.cpp | 165 if (auto *Preheader = ML.getLoopPreheader()) in ProcessLoop() local 166 GetPredecessor(Preheader); in ProcessLoop() 168 GetPredecessor(Preheader); in ProcessLoop() 363 MachineBasicBlock *Preheader = nullptr; member 390 Preheader = MBB; in LowOverheadLoop() 392 Preheader = MBB; in LowOverheadLoop() 715 MachineBasicBlock *MBB = Preheader; in ValidateTailPredicate() 803 Preheader && !Preheader->empty() && in ValidateTailPredicate() 1338 if (auto *Preheader = ML->getLoopPreheader()) in ProcessLoop() 1363 if (LoLoop.Preheader) in ProcessLoop() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Utils/ |
| H A D | MatrixUtils.cpp | 23 BasicBlock *TileInfo::CreateLoop(BasicBlock *Preheader, BasicBlock *Exit, in CreateLoop() argument 27 LLVMContext &Ctx = Preheader->getContext(); in CreateLoop() 29 Preheader->getContext(), Name + ".header", Preheader->getParent(), Exit); in CreateLoop() 40 IV->addIncoming(ConstantInt::get(I32Ty, 0), Preheader); in CreateLoop() 48 BranchInst *PreheaderBr = cast<BranchInst>(Preheader->getTerminator()); in CreateLoop() 52 {DominatorTree::Delete, Preheader, Tmp}, in CreateLoop() 57 {DominatorTree::Insert, Preheader, Header}, in CreateLoop()
|
| H A D | LoopSimplify.cpp | 215 static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader, in separateNestedLoop() argument 220 if (!Preheader) in separateNestedLoop() 368 if (!Preheader) in insertUniqueBackedgeBlock() 381 if (P != Preheader) BackedgeBlocks.push_back(P); in insertUniqueBackedgeBlock() 412 if (IBB == Preheader) { in insertUniqueBackedgeBlock() 541 BasicBlock *Preheader = L->getLoopPreheader(); in simplifyOneLoop() local 542 if (!Preheader) { in simplifyOneLoop() 544 if (Preheader) in simplifyOneLoop() 566 if (Loop *OuterL = separateNestedLoop(L, Preheader, DT, LI, SE, in simplifyOneLoop() 584 LoopLatch = insertUniqueBackedgeBlock(L, Preheader, DT, LI, MSSAU); in simplifyOneLoop() [all …]
|
| H A D | IntegerDivision.cpp | 224 BasicBlock *Preheader = BasicBlock::Create(Builder.getContext(), in generateUnsignedDivisionCode() local 274 Builder.CreateCondBr(SkipLoop, LoopExit, Preheader); in generateUnsignedDivisionCode() 280 Builder.SetInsertPoint(Preheader); in generateUnsignedDivisionCode() 343 Carry_1->addIncoming(Zero, Preheader); in generateUnsignedDivisionCode() 346 SR_3->addIncoming(SR_1, Preheader); in generateUnsignedDivisionCode() 349 R_1->addIncoming(Tmp3, Preheader); in generateUnsignedDivisionCode() 352 Q_2->addIncoming(Q, Preheader); in generateUnsignedDivisionCode()
|
| H A D | LoopUtils.cpp | 472 auto *Preheader = L->getLoopPreheader(); in deleteDeadLoop() local 473 assert(Preheader && "Preheader should exist!"); in deleteDeadLoop() 491 Instruction *OldTerm = Preheader->getTerminator(); in deleteDeadLoop() 540 P.setIncomingBlock(PredIndex, Preheader); in deleteDeadLoop() 552 P.getIncomingBlock(PredIndex) == Preheader) && in deleteDeadLoop() 557 DTU.applyUpdates({{DominatorTree::Insert, Preheader, ExitBlock}}); in deleteDeadLoop() 567 Builder.SetInsertPoint(Preheader->getTerminator()); in deleteDeadLoop() 570 Preheader->getTerminator()->eraseFromParent(); in deleteDeadLoop() 577 Preheader->getTerminator()->eraseFromParent(); in deleteDeadLoop() 1196 BasicBlock *Preheader = L->getLoopPreheader(); in canLoopBeDeleted() local [all …]
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | MachineLoopUtils.cpp | 31 MachineBasicBlock *Preheader = *Loop->pred_begin(); in PeelSingleBlockLoop() local 32 if (Preheader == Loop) in PeelSingleBlockLoop() 33 Preheader = *std::next(Loop->pred_begin()); in PeelSingleBlockLoop() 85 if (MI.getOperand(2).getMBB() != Preheader) in PeelSingleBlockLoop() 110 Preheader->ReplaceUsesOfBlockWith(Loop, NewBB); in PeelSingleBlockLoop() 112 Loop->replacePhiUsesWith(Preheader, NewBB); in PeelSingleBlockLoop() 113 Preheader->updateTerminator(Loop); in PeelSingleBlockLoop()
|
| H A D | MachineLoopInfo.cpp | 130 MachineBasicBlock *Preheader = nullptr; in findLoopPreheader() local 135 if (Preheader) in findLoopPreheader() 137 Preheader = P; in findLoopPreheader() 143 for (MachineBasicBlock *S : Preheader->successors()) { in findLoopPreheader() 151 return Preheader; in findLoopPreheader()
|
| H A D | MachineLICM.cpp | 515 MachineBasicBlock *Preheader = getCurPreheader(); in HoistRegionPostRA() local 516 if (!Preheader) in HoistRegionPostRA() 550 if (TI != Preheader->end()) { in HoistRegionPostRA() 626 Preheader->splice(Preheader->getFirstTerminator(), MBB, MI); in HoistPostRA() 718 if (!Preheader) in HoistOutOfLoop() 770 InitRegPressure(Preheader); in HoistOutOfLoop() 781 if (!Hoist(&MI, Preheader)) in HoistOutOfLoop() 1408 isTgtHotterThanSrc(SrcBlock, Preheader)) { in Hoist() 1430 if (Preheader->getBasicBlock()) in Hoist() 1438 InitCSEMap(Preheader); in Hoist() [all …]
|
| H A D | HardwareLoops.cpp | 299 BasicBlock *Preheader = L->getLoopPreheader(); in TryConvertLoop() local 302 if (!Preheader) in TryConvertLoop() 303 Preheader = InsertPreheaderForLoop(L, DT, LI, nullptr, PreserveLCSSA); in TryConvertLoop() 304 if (!Preheader) in TryConvertLoop() 340 BasicBlock *Preheader = L->getLoopPreheader(); in CanGenerateTest() local 341 if (!Preheader->getSinglePredecessor()) in CanGenerateTest() 344 BasicBlock *Pred = Preheader->getSinglePredecessor(); in CanGenerateTest() 375 if (BI->getSuccessor(SuccIdx) != Preheader) in CanGenerateTest() 509 BasicBlock *Preheader = L->getLoopPreheader(); in InsertPHICounter() local 514 Index->addIncoming(NumElts, Preheader); in InsertPHICounter()
|
| /llvm-project-15.0.7/llvm/test/Other/ |
| H A D | loop-pass-printer.ll | 15 ; DEL: ; Preheader: 23 ; DEL: ; Preheader: 31 ; BAR: ; Preheader:
|
| /llvm-project-15.0.7/llvm/lib/Target/Hexagon/ |
| H A D | HexagonHardwareLoops.cpp | 408 MachineBasicBlock *Preheader = MLI->findLoopPreheader(L, SpecPreheader); in findInductionRegister() local 411 if (!Header || !Preheader || !Latch || !ExitingBlock) in findInductionRegister() 602 MachineBasicBlock *Preheader = MLI->findLoopPreheader(L, SpecPreheader); in getLoopTripCount() local 609 if (MBB == Preheader) in getLoopTripCount() 1190 if (!Preheader) { in convertToHardwareLoop() 1191 Preheader = createPreheaderForLoop(L); in convertToHardwareLoop() 1192 if (!Preheader) in convertToHardwareLoop() 1210 if (!MDT->dominates(BBDef, Preheader)) in convertToHardwareLoop() 1238 if (InsertPos != Preheader->end()) in convertToHardwareLoop() 1259 BuildMI(*Preheader, InsertPos, DL, TII->get(LOOP_r)) in convertToHardwareLoop() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Target/X86/ |
| H A D | X86LowerAMXIntrinsics.cpp | 73 BasicBlock *createLoop(BasicBlock *Preheader, BasicBlock *Exit, Value *Bound, 104 BasicBlock *X86LowerAMXIntrinsics::createLoop(BasicBlock *Preheader, in createLoop() argument 108 LLVMContext &Ctx = Preheader->getContext(); in createLoop() 110 BasicBlock::Create(Ctx, Name + ".header", Preheader->getParent(), Exit); in createLoop() 121 IV->addIncoming(ConstantInt::get(I16Ty, 0), Preheader); in createLoop() 129 BranchInst *PreheaderBr = cast<BranchInst>(Preheader->getTerminator()); in createLoop() 133 {DominatorTree::Delete, Preheader, Tmp}, in createLoop() 138 {DominatorTree::Insert, Preheader, Header}, in createLoop()
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | LoopInfo.cpp | 92 BasicBlock *Preheader = getLoopPreheader(); in makeLoopInvariant() local 94 if (!Preheader) in makeLoopInvariant() 96 InsertPt = Preheader->getTerminator(); in makeLoopInvariant() 367 BasicBlock *Preheader = getLoopPreheader(); in getLoopGuardBranch() local 368 assert(Preheader && getLoopLatch() && in getLoopGuardBranch() 381 BasicBlock *GuardBB = Preheader->getUniquePredecessor(); in getLoopGuardBranch() 391 BasicBlock *GuardOtherSucc = (GuardBI->getSuccessor(0) == Preheader) in getLoopGuardBranch()
|
| /llvm-project-15.0.7/llvm/include/llvm/Transforms/Utils/ |
| H A D | MatrixUtils.h | 82 static BasicBlock *CreateLoop(BasicBlock *Preheader, BasicBlock *Exit,
|
| /llvm-project-15.0.7/llvm/include/llvm/CodeGen/ |
| H A D | ModuloSchedule.h | 177 MachineBasicBlock *Preheader; variable 304 MachineBasicBlock *Preheader; variable
|