/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | LoopDeletion.cpp | 48 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 D | LoopFuse.cpp | 140 /// 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 D | LoopSink.cpp | 22 // 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 D | InductiveRangeCheckElimination.cpp | 565 // 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 D | LoopSimplifyCFG.cpp | 358 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 D | LoopIdiomRecognize.cpp | 908 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 D | LoopPredication.cpp | 261 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 D | LICM.cpp | 331 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 D | MachineLoopInfo.cpp | 127 MachineBasicBlock *Preheader = nullptr; 132 if (Preheader) 134 Preheader = P; 139 for (MachineBasicBlock *S : Preheader->successors()) { 146 return Preheader;
|
H A D | MachineLoopUtils.cpp | 32 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 D | MachineLICM.cpp | 273 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 D | HardwareLoops.cpp | 304 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 D | ModuloSchedule.cpp | 70 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 D | MVETailPredication.cpp | 180 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 D | ARMLowOverheadLoops.cpp | 128 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 D | LoopSimplify.cpp | 225 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 D | IntegerDivision.cpp | 225 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 D | LoopUtils.cpp | 526 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 D | ScalarEvolutionExpander.cpp | 226 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 D | LoopUnroll.cpp | 289 BasicBlock *Preheader = L->getLoopPreheader(); local 290 if (!Preheader) { 404 Preheader = L->getLoopPreheader(); 684 PN->replaceAllUsesWith(PN->getIncomingValueForBlock(Preheader));
|
H A D | LoopUnrollRuntime.cpp | 74 // 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 D | HexagonHardwareLoops.cpp | 408 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 D | HexagonLoopIdiomRecognition.cpp | 2031 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 D | LoopInfo.cpp | 94 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 D | ModuloSchedule.h | 176 MachineBasicBlock *Preheader; member in class:llvm::ModuloScheduleExpander 303 MachineBasicBlock *Preheader; member in class:llvm::PeelingModuloScheduleExpander
|