Home
last modified time | relevance | path

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

/freebsd-12.1/contrib/llvm/lib/Transforms/Scalar/
H A DLoopDeletion.cpp46 BasicBlock *Preheader) { in isLoopDead() argument
70 if (!L->makeLoopInvariant(I, Changed, Preheader->getTerminator())) { in isLoopDead()
97 auto *Preheader = L->getLoopPreheader(); in isLoopNeverExecuted() local
100 assert(Preheader && "Needs preheader!"); in isLoopNeverExecuted()
102 if (Preheader == &Preheader->getParent()->getEntryBlock()) in isLoopNeverExecuted()
106 for (auto *Pred: predecessors(Preheader)) { in isLoopNeverExecuted()
114 if (Taken == Preheader) in isLoopNeverExecuted()
117 assert(!pred_empty(Preheader) && in isLoopNeverExecuted()
143 BasicBlock *Preheader = L->getLoopPreheader(); in deleteLoopIfDead() local
144 if (!Preheader || !L->hasDedicatedExits()) { in deleteLoopIfDead()
[all …]
H A DInductiveRangeCheckElimination.cpp767 BasicBlock *Preheader = L.getLoopPreheader(); in parseLoopStructure() local
768 if (!Preheader) { in parseLoopStructure()
1301 NewPHI->addIncoming(PN.getIncomingValueForBlock(Preheader), Preheader); in changeIterationSpaceEnd()
1336 BranchInst::Create(LS.Header, Preheader); in createPreheader()
1342 return Preheader; in createPreheader()
1377 BasicBlock *Preheader = nullptr; in run() local
1379 Preheader = OriginalLoop.getLoopPreheader(); in run()
1383 OriginalPreheader = Preheader; in run()
1384 MainLoopPreheader = Preheader; in run()
1774 BasicBlock *Preheader = L->getLoopPreheader(); in run() local
[all …]
H A DLoopSink.cpp259 BasicBlock *Preheader = L.getLoopPreheader(); in sinkLoopInvariantInstructions() local
260 if (!Preheader) in sinkLoopInvariantInstructions()
265 if (!Preheader->getParent()->hasProfileData()) in sinkLoopInvariantInstructions()
268 const BlockFrequency PreheaderFreq = BFI.getBlockFreq(Preheader); in sinkLoopInvariantInstructions()
283 CurAST.add(*Preheader); in sinkLoopInvariantInstructions()
302 for (auto II = Preheader->rbegin(), E = Preheader->rend(); II != E;) { in sinkLoopInvariantInstructions()
H A DLoopSimplifyCFG.cpp321 BasicBlock *Preheader = L.getLoopPreheader(); in handleDeadExits() local
322 BasicBlock *NewPreheader = Preheader->splitBasicBlock( in handleDeadExits()
323 Preheader->getTerminator(), in handleDeadExits()
324 Twine(Preheader->getName()).concat("-split")); in handleDeadExits()
325 DTU.deleteEdge(Preheader, L.getHeader()); in handleDeadExits()
327 DTU.insertEdge(Preheader, NewPreheader); in handleDeadExits()
328 IRBuilder<> Builder(Preheader->getTerminator()); in handleDeadExits()
331 Preheader->getTerminator()->eraseFromParent(); in handleDeadExits()
346 DTU.insertEdge(Preheader, BB); in handleDeadExits()
351 if (Loop *OuterLoop = LI.getLoopFor(Preheader)) { in handleDeadExits()
H A DLoopIdiomRecognize.cpp876 BasicBlock *Preheader = CurLoop->getLoopPreheader(); in processLoopStridedStore() local
877 IRBuilder<> Builder(Preheader->getTerminator()); in processLoopStridedStore()
922 Expander.expandCodeFor(NumBytesS, IntPtr, Preheader->getTerminator()); in processLoopStridedStore()
989 BasicBlock *Preheader = CurLoop->getLoopPreheader(); in processLoopStoreOfLoopLoad() local
990 IRBuilder<> Builder(Preheader->getTerminator()); in processLoopStoreOfLoopLoad()
1008 StrStart, Builder.getInt8PtrTy(StrAS), Preheader->getTerminator()); in processLoopStoreOfLoopLoad()
1030 LdStart, Builder.getInt8PtrTy(LdAS), Preheader->getTerminator()); in processLoopStoreOfLoopLoad()
1585 Intrinsic::ID IntrinID, BasicBlock *Preheader, Instruction *CntInst, in transformLoopToCountable() argument
1588 BranchInst *PreheaderBr = cast<BranchInst>(Preheader->getTerminator()); in transformLoopToCountable()
1629 Value *CntInitVal = CntPhi->getIncomingValueForBlock(Preheader); in transformLoopToCountable()
[all …]
H A DLoopPredication.cpp248 BasicBlock *Preheader; member in __anon96bde4440111::LoopPredication
466 Instruction *InsertAt = Preheader->getTerminator(); in widenICmpRangeCheckIncrementingLoop()
500 Instruction *InsertAt = Preheader->getTerminator(); in widenICmpRangeCheckDecrementingLoop()
584 IRBuilder<> Builder(cast<Instruction>(Preheader->getTerminator())); in widenGuardConditions()
803 Preheader = L->getLoopPreheader(); in runOnLoop()
804 if (!Preheader) in runOnLoop()
H A DLICM.cpp305 BasicBlock *Preheader = L->getLoopPreheader(); in runOnLoop() local
324 if (Preheader) in runOnLoop()
335 if (!DisablePromotion && Preheader && L->hasDedicatedExits()) { in runOnLoop()
1736 BasicBlock *Preheader = CurLoop->getLoopPreheader(); in promoteLoopAccessesToScalars() local
1788 const DataLayout &MDL = Preheader->getModule()->getDataLayout(); in promoteLoopAccessesToScalars()
1832 *Load, DT, CurLoop, SafetyInfo, ORE, Preheader->getTerminator()); in promoteLoopAccessesToScalars()
1879 Preheader->getTerminator(), DT); in promoteLoopAccessesToScalars()
1952 SomePtr, SomePtr->getName() + ".promoted", Preheader->getTerminator()); in promoteLoopAccessesToScalars()
1959 SSA.AddAvailableValue(Preheader, PreheaderLoad); in promoteLoopAccessesToScalars()
H A DIndVarSimplify.cpp778 BasicBlock *Preheader = L->getLoopPreheader(); in canLoopBeDeleted() local
780 if (!Preheader) in canLoopBeDeleted()
2536 BasicBlock *Preheader = L->getLoopPreheader(); in sinkUnusedInvariants() local
2537 if (!Preheader) return false; in sinkUnusedInvariants()
2541 BasicBlock::iterator I(Preheader->getTerminator()); in sinkUnusedInvariants()
2542 while (I != Preheader->begin()) { in sinkUnusedInvariants()
2583 if (UseBB == Preheader || L->contains(UseBB)) { in sinkUnusedInvariants()
2597 if (I != Preheader->begin()) { in sinkUnusedInvariants()
2601 } while (isa<DbgInfoIntrinsic>(I) && I != Preheader->begin()); in sinkUnusedInvariants()
2603 if (isa<DbgInfoIntrinsic>(I) && I == Preheader->begin()) in sinkUnusedInvariants()
H A DSimpleLoopUnswitch.cpp270 static void hoistLoopToNewParent(Loop &L, BasicBlock &Preheader, in hoistLoopToNewParent() argument
295 assert(OldParentL == LI.getLoopFor(&Preheader) && in hoistLoopToNewParent()
297 LI.changeLoopFor(&Preheader, NewParentL); in hoistLoopToNewParent()
315 return BB == &Preheader || L.contains(BB); in hoistLoopToNewParent()
318 OldContainingL->getBlocksSet().erase(&Preheader); in hoistLoopToNewParent()
/freebsd-12.1/contrib/llvm/lib/CodeGen/
H A DMachineLICM.cpp492 if (!Preheader) in HoistRegionPostRA()
526 if (TI != Preheader->end()) { in HoistRegionPostRA()
602 Preheader->splice(Preheader->getFirstTerminator(), MBB, MI); in HoistPostRA()
674 if (!Preheader) in HoistOutOfLoop()
726 InitRegPressure(Preheader); in HoistOutOfLoop()
740 if (!Hoist(MI, Preheader)) in HoistOutOfLoop()
757 if (!Preheader) in SinkIntoLoop()
796 if (!CanSink || !B || B == Preheader) in SinkIntoLoop()
1456 if (Preheader->getBasicBlock()) in Hoist()
1464 InitCSEMap(Preheader); in Hoist()
[all …]
H A DMachineLoopInfo.cpp120 MachineBasicBlock *Preheader = nullptr; in findLoopPreheader() local
125 if (Preheader) in findLoopPreheader()
127 Preheader = P; in findLoopPreheader()
132 for (MachineBasicBlock *S : Preheader->successors()) { in findLoopPreheader()
139 return Preheader; in findLoopPreheader()
H A DCodeGenPrepare.cpp618 if (BasicBlock *Preheader = L->getLoopPreheader()) in eliminateMostlyEmptyBlocks() local
619 Preheaders.insert(Preheader); in eliminateMostlyEmptyBlocks()
/freebsd-12.1/contrib/llvm/lib/Transforms/Utils/
H A DLoopSimplify.cpp217 static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader, in separateNestedLoop() argument
222 if (!Preheader) in separateNestedLoop()
350 if (!Preheader) in insertUniqueBackedgeBlock()
365 if (P != Preheader) BackedgeBlocks.push_back(P); in insertUniqueBackedgeBlock()
396 if (IBB == Preheader) { in insertUniqueBackedgeBlock()
519 BasicBlock *Preheader = L->getLoopPreheader(); in simplifyOneLoop() local
520 if (!Preheader) { in simplifyOneLoop()
521 Preheader = InsertPreheaderForLoop(L, DT, LI, PreserveLCSSA); in simplifyOneLoop()
522 if (Preheader) in simplifyOneLoop()
559 LoopLatch = insertUniqueBackedgeBlock(L, Preheader, DT, LI); in simplifyOneLoop()
[all …]
H A DLoopUtils.cpp450 auto *Preheader = L->getLoopPreheader(); in deleteDeadLoop() local
451 assert(Preheader && "Preheader should exist!"); in deleteDeadLoop()
469 auto *OldBr = dyn_cast<BranchInst>(Preheader->getTerminator()); in deleteDeadLoop()
509 P.setIncomingBlock(PredIndex, Preheader); in deleteDeadLoop()
521 P.getIncomingBlock(PredIndex) == Preheader) && in deleteDeadLoop()
526 Builder.SetInsertPoint(Preheader->getTerminator()); in deleteDeadLoop()
529 Preheader->getTerminator()->eraseFromParent(); in deleteDeadLoop()
535 DTU.insertEdge(Preheader, ExitBlock); in deleteDeadLoop()
537 DTU.deleteEdge(Preheader, L->getHeader()); in deleteDeadLoop()
H A DIntegerDivision.cpp226 BasicBlock *Preheader = BasicBlock::Create(Builder.getContext(), in generateUnsignedDivisionCode() local
276 Builder.CreateCondBr(SkipLoop, LoopExit, Preheader); in generateUnsignedDivisionCode()
282 Builder.SetInsertPoint(Preheader); in generateUnsignedDivisionCode()
345 Carry_1->addIncoming(Zero, Preheader); in generateUnsignedDivisionCode()
348 SR_3->addIncoming(SR_1, Preheader); in generateUnsignedDivisionCode()
351 R_1->addIncoming(Tmp3, Preheader); in generateUnsignedDivisionCode()
354 Q_2->addIncoming(Q, Preheader); in generateUnsignedDivisionCode()
H A DLoopUnroll.cpp342 BasicBlock *Preheader = L->getLoopPreheader(); in UnrollLoop() local
343 if (!Preheader) { in UnrollLoop()
447 Preheader = L->getLoopPreheader(); in UnrollLoop()
700 PN->replaceAllUsesWith(PN->getIncomingValueForBlock(Preheader)); in UnrollLoop()
H A DLoopUnrollRuntime.cpp304 BasicBlock *InsertBot, BasicBlock *Preheader, in CloneLoopBlocks() argument
381 unsigned idx = NewPHI->getBasicBlockIndex(Preheader); in CloneLoopBlocks()
385 VMap[&*I] = NewPHI->getIncomingValueForBlock(Preheader); in CloneLoopBlocks()
389 unsigned idx = NewPHI->getBasicBlockIndex(Preheader); in CloneLoopBlocks()
H A DLoopUnrollAndJam.cpp249 BasicBlock *Preheader = L->getLoopPreheader(); in UnrollAndJamLoop() local
252 assert(Preheader && LatchBlock && Header); in UnrollAndJamLoop()
455 Phi->replaceAllUsesWith(Phi->getIncomingValueForBlock(Preheader)); in UnrollAndJamLoop()
/freebsd-12.1/contrib/llvm/lib/Target/PowerPC/
H A DPPCCTRLoops.cpp634 BasicBlock *Preheader = L->getLoopPreheader(); in convertToCTRLoop() local
640 if (!Preheader || mightUseCTR(Preheader)) in convertToCTRLoop()
641 Preheader = InsertPreheaderForLoop(L, DT, LI, PreserveLCSSA); in convertToCTRLoop()
642 if (!Preheader) in convertToCTRLoop()
645 LLVM_DEBUG(dbgs() << "Preheader for exit count: " << Preheader->getName() in convertToCTRLoop()
660 SCEVE.expandCodeFor(ExitCount, CountType, Preheader->getTerminator()); in convertToCTRLoop()
662 IRBuilder<> CountBuilder(Preheader->getTerminator()); in convertToCTRLoop()
663 Module *M = Preheader->getParent()->getParent(); in convertToCTRLoop()
/freebsd-12.1/contrib/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()
1195 if (!Preheader) { in convertToHardwareLoop()
1196 Preheader = createPreheaderForLoop(L); in convertToHardwareLoop()
1197 if (!Preheader) in convertToHardwareLoop()
1215 if (!MDT->dominates(BBDef, Preheader)) in convertToHardwareLoop()
1243 if (InsertPos != Preheader->end()) in convertToHardwareLoop()
1264 BuildMI(*Preheader, InsertPos, DL, TII->get(LOOP_r)) in convertToHardwareLoop()
[all …]
H A DHexagonLoopIdiomRecognition.cpp2028 BasicBlock *Preheader = CurLoop->getLoopPreheader(); in processCopyingStore() local
2029 Instruction *ExpPt = Preheader->getTerminator(); in processCopyingStore()
2170 Loop *ParentL = LF->getLoopFor(Preheader); in processCopyingStore()
2184 int bx = PN->getBasicBlockIndex(Preheader); in processCopyingStore()
2188 DT->addNewBlock(NewPreheader, Preheader); in processCopyingStore()
2222 Instruction *OldT = Preheader->getTerminator(); in processCopyingStore()
2225 Preheader->setName(Preheader->getName()+".old"); in processCopyingStore()
2226 DT->addNewBlock(MemmoveB, Preheader); in processCopyingStore()
2228 BasicBlock *ExitD = Preheader; in processCopyingStore()
2239 if (ExitD && DT->dominates(Preheader, ExitD)) { in processCopyingStore()
/freebsd-12.1/contrib/llvm/lib/Analysis/
H A DScalarEvolutionExpander.cpp217 BasicBlock *Preheader = L->getLoopPreheader(); in InsertBinop() local
218 if (!Preheader) break; in InsertBinop()
221 Builder.SetInsertPoint(Preheader->getTerminator()); in InsertBinop()
544 BasicBlock *Preheader = L->getLoopPreheader(); in expandAddToGEP() local
545 if (!Preheader) break; in expandAddToGEP()
548 Builder.SetInsertPoint(Preheader->getTerminator()); in expandAddToGEP()
571 BasicBlock *Preheader = L->getLoopPreheader(); in expandAddToGEP() local
572 if (!Preheader) break; in expandAddToGEP()
575 Builder.SetInsertPoint(Preheader->getTerminator()); in expandAddToGEP()
1739 if (BasicBlock *Preheader = L->getLoopPreheader()) in expand() local
[all …]
H A DLoopInfo.cpp89 BasicBlock *Preheader = getLoopPreheader(); in makeLoopInvariant() local
91 if (!Preheader) in makeLoopInvariant()
93 InsertPt = Preheader->getTerminator(); in makeLoopInvariant()
H A DIVDescriptors.cpp677 auto *Preheader = TheLoop->getLoopPreheader(); in isFirstOrderRecurrence() local
679 if (!Preheader || !Latch) in isFirstOrderRecurrence()
683 if (Phi->getBasicBlockIndex(Preheader) < 0 || in isFirstOrderRecurrence()
/freebsd-12.1/contrib/llvm/lib/Transforms/Vectorize/
H A DLoopVectorize.cpp3369 auto *Preheader = OrigLoop->getLoopPreheader(); in fixFirstOrderRecurrence() local
3373 auto *ScalarInit = Phi->getIncomingValueForBlock(Preheader); in fixFirstOrderRecurrence()