Searched refs:Preheader (Results 1 - 25 of 33) sorted by relevance

12

/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopDeletion.cpp48 BasicBlock *Preheader) {
72 if (!L->makeLoopInvariant(I, Changed, Preheader->getTerminator())) {
99 auto *Preheader = L->getLoopPreheader();
102 assert(Preheader && "Needs preheader!");
104 if (Preheader == &Preheader->getParent()->getEntryBlock())
108 for (auto *Pred: predecessors(Preheader)) {
116 if (Taken == Preheader)
119 assert(!pred_empty(Preheader) &&
120 "Preheader shoul
45 isLoopDead(Loop *L, ScalarEvolution &SE, SmallVectorImpl<BasicBlock *> &ExitingBlocks, BasicBlock *ExitBlock, bool &Changed, BasicBlock *Preheader) argument
147 BasicBlock *Preheader = L->getLoopPreheader(); local
[all...]
H A DLoopFuse.cpp140 /// Preheader of the loop this candidate represents
141 BasicBlock *Preheader; member in struct:__anon4651::FusionCandidate
172 : Preheader(L->getLoopPreheader()), Header(L->getHeader()),
218 return Preheader && Header && ExitingBlock && ExitBlock && Latch && L &&
226 assert(Preheader == L->getLoopPreheader() && "Preheader is out of sync");
243 return Preheader;
257 return (GuardBranch->getSuccessor(0) == Preheader)
271 << "\tPreheader: " << (Preheader ? Preheader
[all...]
H A DLoopSink.cpp22 // For I in Preheader:
77 /// Freq(Preheader) = 100
79 /// Even if Freq(BBs) < Freq(Preheader), we will not sink from Preheade to
256 BasicBlock *Preheader = L.getLoopPreheader(); local
257 if (!Preheader)
262 if (!Preheader->getParent()->hasProfileData())
265 const BlockFrequency PreheaderFreq = BFI.getBlockFreq(Preheader);
280 CurAST.add(*Preheader);
298 for (auto II = Preheader->rbegin(), E = Preheader
[all...]
H A DInductiveRangeCheckElimination.cpp565 // Rewrite the iteration space of the loop denoted by (LS, Preheader). The
583 // After changeIterationSpaceEnd, `Preheader' is no longer a legitimate
587 changeIterationSpaceEnd(const LoopStructure &LS, BasicBlock *Preheader,
768 BasicBlock *Preheader = L.getLoopPreheader(); local
769 if (!Preheader) {
1028 const DataLayout &DL = Preheader->getModule()->getDataLayout();
1030 Instruction *Ins = Preheader->getTerminator();
1199 const LoopStructure &LS, BasicBlock *Preheader, Value *ExitSubloopAt,
1280 BranchInst *PreheaderJump = cast<BranchInst>(Preheader->getTerminator());
1335 NewPHI->addIncoming(PN.getIncomingValueForBlock(Preheader), Preheade
1198 changeIterationSpaceEnd( const LoopStructure &LS, BasicBlock *Preheader, Value *ExitSubloopAt, BasicBlock *ContinuationBlock) const argument
1367 BasicBlock *Preheader = BasicBlock::Create(Ctx, Tag, &F, LS.Header); local
1407 BasicBlock *Preheader = nullptr; local
1842 BasicBlock *Preheader = L->getLoopPreheader(); local
[all...]
H A DLoopSimplifyCFG.cpp358 BasicBlock *Preheader = L.getLoopPreheader();
360 Preheader, Preheader->getTerminator(), &DT, &LI, MSSAU);
362 IRBuilder<> Builder(Preheader->getTerminator());
365 Preheader->getTerminator()->eraseFromParent();
380 DTUpdates.push_back({DominatorTree::Insert, Preheader, BB});
385 if (Loop *OuterLoop = LI.getLoopFor(Preheader)) {
H A DLoopIdiomRecognize.cpp908 BasicBlock *Preheader = CurLoop->getLoopPreheader(); local
909 IRBuilder<> Builder(Preheader->getTerminator());
931 Expander.expandCodeFor(Start, DestInt8PtrTy, Preheader->getTerminator());
954 Expander.expandCodeFor(NumBytesS, IntIdxTy, Preheader->getTerminator());
994 NewCall->getDebugLoc(), Preheader)
1062 BasicBlock *Preheader = CurLoop->getLoopPreheader(); local
1063 IRBuilder<> Builder(Preheader->getTerminator());
1083 StrStart, Builder.getInt8PtrTy(StrAS), Preheader->getTerminator());
1102 LdStart, Builder.getInt8PtrTy(LdAS), Preheader->getTerminator());
1118 Expander.expandCodeFor(NumBytesS, IntIdxTy, Preheader
1686 transformLoopToCountable( Intrinsic::ID IntrinID, BasicBlock *Preheader, Instruction *CntInst, PHINode *CntPhi, Value *InitX, Instruction *DefX, const DebugLoc &DL, bool ZeroCheck, bool IsCntPhiUsedOutsideLoop) argument
[all...]
H A DLoopPredication.cpp261 BasicBlock *Preheader; member in class:__anon4660::LoopPredication
510 return Preheader->getTerminator();
520 !isSafeToExpandAt(Op, Preheader->getTerminator(), *SE))
522 return Preheader->getTerminator();
1207 Preheader = L->getLoopPreheader();
1208 if (!Preheader)
H A DLICM.cpp331 BasicBlock *Preheader = L->getLoopPreheader(); local
353 if (Preheader)
365 if (!DisablePromotion && Preheader && L->hasDedicatedExits() &&
1851 BasicBlock *Preheader = CurLoop->getLoopPreheader(); local
1903 const DataLayout &MDL = Preheader->getModule()->getDataLayout();
1953 ORE, Preheader->getTerminator())) {
2000 Store->getAlign(), MDL, Preheader->getTerminator(), DT);
2083 SomePtr->getName() + ".promoted", Preheader->getTerminator());
2090 SSA.AddAvailableValue(Preheader, PreheaderLoad);
/freebsd-13-stable/contrib/llvm-project/llvm/lib/CodeGen/
H A DMachineLoopInfo.cpp127 MachineBasicBlock *Preheader = nullptr;
132 if (Preheader)
134 Preheader = P;
139 for (MachineBasicBlock *S : Preheader->successors()) {
146 return Preheader;
H A DMachineLoopUtils.cpp32 MachineBasicBlock *Preheader = *Loop->pred_begin(); local
33 if (Preheader == Loop)
34 Preheader = *std::next(Loop->pred_begin());
82 if (MI.getOperand(2).getMBB() != Preheader)
107 Preheader->replaceSuccessor(Loop, NewBB);
109 Loop->replacePhiUsesWith(Preheader, NewBB);
110 if (TII->removeBranch(*Preheader) > 0)
111 TII->insertBranch(*Preheader, NewBB, nullptr, {}, DL);
H A DMachineLICM.cpp273 bool Hoist(MachineInstr *MI, MachineBasicBlock *Preheader);
525 MachineBasicBlock *Preheader = getCurPreheader(); local
526 if (!Preheader)
559 MachineBasicBlock::iterator TI = Preheader->getFirstTerminator();
560 if (TI != Preheader->end()) {
626 MachineBasicBlock *Preheader = getCurPreheader(); local
630 LLVM_DEBUG(dbgs() << "Hoisting to " << printMBBReference(*Preheader)
636 Preheader->splice(Preheader->getFirstTerminator(), MBB, MI);
713 MachineBasicBlock *Preheader local
796 MachineBasicBlock *Preheader = getCurPreheader(); local
1490 Hoist(MachineInstr *MI, MachineBasicBlock *Preheader) argument
[all...]
H A DHardwareLoops.cpp304 BasicBlock *Preheader = L->getLoopPreheader(); local
307 if (!Preheader)
308 Preheader = InsertPreheaderForLoop(L, DT, LI, nullptr, PreserveLCSSA);
309 if (!Preheader)
345 BasicBlock *Preheader = L->getLoopPreheader(); local
346 if (!Preheader->getSinglePredecessor())
349 BasicBlock *Pred = Preheader->getSinglePredecessor();
374 if (BI->getSuccessor(SuccIdx) != Preheader)
491 BasicBlock *Preheader = L->getLoopPreheader(); local
496 Index->addIncoming(NumElts, Preheader);
[all...]
H A DModuloSchedule.cpp70 Preheader = *BB->pred_begin();
71 if (Preheader == BB)
72 Preheader = *std::next(BB->pred_begin());
178 addBranches(*Preheader, PrologBBs, KernelBB, EpilogBBs, VRMap);
196 MachineBasicBlock *PredBB = Preheader;
240 unsigned numBranches = TII->removeBranch(*Preheader);
243 TII->insertBranch(*Preheader, PrologBBs[0], nullptr, Cond, DebugLoc());
1992 Preheader = Schedule.getLoop()->getLoopPreheader();
2004 Preheader = Schedule.getLoop()->getLoopPreheader();
2026 Preheader
[all...]
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/ARM/
H A DMVETailPredication.cpp180 BasicBlock *Preheader = L->getLoopPreheader(); local
181 if (!Preheader)
199 IntrinsicInst *Setup = FindLoopIterations(Preheader);
203 if (!Preheader->getSinglePredecessor())
205 Setup = FindLoopIterations(Preheader->getSinglePredecessor());
489 static Value *getNumElements(BasicBlock *Preheader, Value *BTC) { argument
499 for (auto &I : *Preheader) {
513 IRBuilder<> Builder(Preheader->getTerminator());
H A DARMLowOverheadLoops.cpp128 if (auto *Preheader = ML.getLoopPreheader())
129 GetPredecessor(Preheader);
130 else if (auto *Preheader = MLI.findLoopPreheader(&ML, true))
131 GetPredecessor(Preheader);
218 MachineBasicBlock *Preheader = nullptr; member in struct:__anon4030::LowOverheadLoop
245 Preheader = MBB;
247 Preheader = MBB;
509 MachineBasicBlock *MBB = Preheader;
665 if (!Preheader)
743 RDA.getLiveOuts(Preheader, Cop
[all...]
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DLoopSimplify.cpp225 static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader, argument
230 if (!Preheader)
370 static BasicBlock *insertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader, argument
380 if (!Preheader)
395 if (P != Preheader) BackedgeBlocks.push_back(P);
426 if (IBB == Preheader) {
486 MSSAU->updatePhisWhenInsertingUniqueBackedgeBlock(Header, Preheader,
558 BasicBlock *Preheader = L->getLoopPreheader(); local
559 if (!Preheader) {
560 Preheader
[all...]
H A DIntegerDivision.cpp225 BasicBlock *Preheader = BasicBlock::Create(Builder.getContext(), local
275 Builder.CreateCondBr(SkipLoop, LoopExit, Preheader);
281 Builder.SetInsertPoint(Preheader);
344 Carry_1->addIncoming(Zero, Preheader);
347 SR_3->addIncoming(SR_1, Preheader);
350 R_1->addIncoming(Tmp3, Preheader);
353 Q_2->addIncoming(Q, Preheader);
H A DLoopUtils.cpp526 auto *Preheader = L->getLoopPreheader(); local
527 assert(Preheader && "Preheader should exist!");
549 auto *OldBr = dyn_cast<BranchInst>(Preheader->getTerminator());
550 assert(OldBr && "Preheader must end with a branch");
551 assert(OldBr->isUnconditional() && "Preheader must have a single successor");
558 // 0. Preheader 1. Preheader 2. Preheader
582 // Rewrite phis in the exit block to get their inputs from the Preheader
1232 BasicBlock *Preheader = L->getLoopPreheader(); local
[all...]
H A DScalarEvolutionExpander.cpp226 BasicBlock *Preheader = L->getLoopPreheader(); local
227 if (!Preheader) break;
230 Builder.SetInsertPoint(Preheader->getTerminator());
559 BasicBlock *Preheader = L->getLoopPreheader(); local
560 if (!Preheader) break;
563 Builder.SetInsertPoint(Preheader->getTerminator());
586 BasicBlock *Preheader = L->getLoopPreheader(); local
587 if (!Preheader) break;
590 Builder.SetInsertPoint(Preheader->getTerminator());
1851 if (BasicBlock *Preheader
[all...]
H A DLoopUnroll.cpp289 BasicBlock *Preheader = L->getLoopPreheader(); local
290 if (!Preheader) {
404 Preheader = L->getLoopPreheader();
684 PN->replaceAllUsesWith(PN->getIncomingValueForBlock(Preheader));
H A DLoopUnrollRuntime.cpp74 // Preheader
303 BasicBlock *InsertBot, BasicBlock *Preheader,
380 unsigned idx = NewPHI->getBasicBlockIndex(Preheader);
384 VMap[&*I] = NewPHI->getIncomingValueForBlock(Preheader);
388 unsigned idx = NewPHI->getBasicBlockIndex(Preheader);
300 CloneLoopBlocks(Loop *L, Value *NewIter, const bool CreateRemainderLoop, const bool UseEpilogRemainder, const bool UnrollRemainder, BasicBlock *InsertTop, BasicBlock *InsertBot, BasicBlock *Preheader, std::vector<BasicBlock *> &NewBlocks, LoopBlocksDFS &LoopBlocks, ValueToValueMapTy &VMap, DominatorTree *DT, LoopInfo *LI) argument
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/Hexagon/
H A DHexagonHardwareLoops.cpp408 MachineBasicBlock *Preheader = MLI->findLoopPreheader(L, SpecPreheader); local
411 if (!Header || !Preheader || !Latch || !ExitingBlock)
602 MachineBasicBlock *Preheader = MLI->findLoopPreheader(L, SpecPreheader);
609 if (MBB == Preheader)
1194 MachineBasicBlock *Preheader = MLI->findLoopPreheader(L, SpecPreheader);
1195 if (!Preheader) {
1196 Preheader = createPreheaderForLoop(L);
1197 if (!Preheader)
1201 MachineBasicBlock::iterator InsertPos = Preheader->getFirstTerminator();
1215 if (!MDT->dominates(BBDef, Preheader))
[all...]
H A DHexagonLoopIdiomRecognition.cpp2031 BasicBlock *Preheader = CurLoop->getLoopPreheader(); local
2032 Instruction *ExpPt = Preheader->getTerminator();
2173 Loop *ParentL = LF->getLoopFor(Preheader);
2187 int bx = PN->getBasicBlockIndex(Preheader);
2191 DT->addNewBlock(NewPreheader, Preheader);
2225 Instruction *OldT = Preheader->getTerminator();
2228 Preheader->setName(Preheader->getName()+".old");
2229 DT->addNewBlock(MemmoveB, Preheader);
2231 BasicBlock *ExitD = Preheader;
[all...]
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Analysis/
H A DLoopInfo.cpp94 BasicBlock *Preheader = getLoopPreheader();
96 if (!Preheader)
98 InsertPt = Preheader->getTerminator();
368 BasicBlock *Preheader = getLoopPreheader();
369 assert(Preheader && getLoopLatch() &&
386 BasicBlock *GuardBB = Preheader->getUniquePredecessor();
396 BasicBlock *GuardOtherSucc = (GuardBI->getSuccessor(0) == Preheader)
955 OS << "\n; Preheader:";
/freebsd-13-stable/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DModuloSchedule.h176 MachineBasicBlock *Preheader; member in class:llvm::ModuloScheduleExpander
303 MachineBasicBlock *Preheader; member in class:llvm::PeelingModuloScheduleExpander

Completed in 383 milliseconds

12