Home
last modified time | relevance | path

Searched refs:Preheader (Results 1 – 25 of 49) sorted by relevance

12

/llvm-project-15.0.7/llvm/lib/Transforms/Scalar/
H A DLoopFuse.cpp151 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 DLoopSink.cpp270 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 DLoopDeletion.cpp68 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 DInductiveRangeCheckElimination.cpp772 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 DLoopSimplifyCFG.cpp353 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 DLoopIdiomRecognize.cpp1116 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 DLoopPredication.cpp262 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 DPPCCTRLoops.cpp168 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 DARMBlockPlacement.cpp99 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 DMVETailPredication.cpp147 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 DARMLowOverheadLoops.cpp165 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 DMatrixUtils.cpp23 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 DLoopSimplify.cpp215 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 DIntegerDivision.cpp224 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 DLoopUtils.cpp472 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 DMachineLoopUtils.cpp31 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 DMachineLoopInfo.cpp130 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 DMachineLICM.cpp515 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 DHardwareLoops.cpp299 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 Dloop-pass-printer.ll15 ; DEL: ; Preheader:
23 ; DEL: ; Preheader:
31 ; BAR: ; Preheader:
/llvm-project-15.0.7/llvm/lib/Target/Hexagon/
H A DHexagonHardwareLoops.cpp408 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 DX86LowerAMXIntrinsics.cpp73 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 DLoopInfo.cpp92 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 DMatrixUtils.h82 static BasicBlock *CreateLoop(BasicBlock *Preheader, BasicBlock *Exit,
/llvm-project-15.0.7/llvm/include/llvm/CodeGen/
H A DModuloSchedule.h177 MachineBasicBlock *Preheader; variable
304 MachineBasicBlock *Preheader; variable

12