Home
last modified time | relevance | path

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

12

/netbsd-src/external/apache2/llvm/dist/llvm/lib/Transforms/Scalar/
H A DLoopFuse.cpp151 BasicBlock *Preheader; member
189 : Preheader(L->getLoopPreheader()), Header(L->getHeader()), in FusionCandidate()
236 return Preheader && Header && ExitingBlock && ExitBlock && Latch && L && in isValid()
244 assert(Preheader == L->getLoopPreheader() && "Preheader is out of sync"); in verify()
261 return Preheader; in getEntryBlock()
267 Preheader = L->getLoopPreheader(); in updateAfterPeeling()
288 return (GuardBranch->getSuccessor(0) == Preheader) in getNonLoopBlock()
302 << "\tPreheader: " << (Preheader ? Preheader->getName() : "nullptr") in dump()
322 if (!Preheader) in isEligibleForFusion()
374 assert(L && Preheader && "Fusion candidate not initialized properly!"); in reportInvalidCandidate()
[all …]
H A DLoopSink.cpp285 BasicBlock *Preheader = L.getLoopPreheader(); in sinkLoopInvariantInstructions() local
286 assert(Preheader && "Expected loop to have preheader"); in sinkLoopInvariantInstructions()
288 assert(Preheader->getParent()->hasProfileData() && in sinkLoopInvariantInstructions()
291 const BlockFrequency PreheaderFreq = BFI.getBlockFreq(Preheader); in sinkLoopInvariantInstructions()
326 for (auto II = Preheader->rbegin(), E = Preheader->rend(); II != E;) { in sinkLoopInvariantInstructions()
344 static void computeAliasSet(Loop &L, BasicBlock &Preheader, in computeAliasSet() argument
348 CurAST.add(Preheader); in computeAliasSet()
376 BasicBlock *Preheader = L.getLoopPreheader(); in run() local
377 if (!Preheader) in run()
382 if (!Preheader->getParent()->hasProfileData()) in run()
[all …]
H A DLoopDeletion.cpp57 BasicBlock *Preheader) { in isLoopDead() argument
82 if (!L->makeLoopInvariant(I, Changed, Preheader->getTerminator())) { in isLoopDead()
112 auto *Preheader = L->getLoopPreheader(); in isLoopNeverExecuted() local
115 assert(Preheader && "Needs preheader!"); in isLoopNeverExecuted()
117 if (Preheader->isEntryBlock()) in isLoopNeverExecuted()
121 for (auto *Pred: predecessors(Preheader)) { in isLoopNeverExecuted()
129 if (Taken == Preheader) in isLoopNeverExecuted()
132 assert(!pred_empty(Preheader) && in isLoopNeverExecuted()
181 BasicBlock *Preheader = L->getLoopPreheader(); in deleteLoopIfDead() local
182 if (!Preheader || !L->hasDedicatedExits()) { in deleteLoopIfDead()
[all …]
H A DInductiveRangeCheckElimination.cpp594 changeIterationSpaceEnd(const LoopStructure &LS, BasicBlock *Preheader,
774 BasicBlock *Preheader = L.getLoopPreheader(); in parseLoopStructure() local
775 if (!Preheader) { in parseLoopStructure()
1024 const DataLayout &DL = Preheader->getModule()->getDataLayout(); in parseLoopStructure()
1026 Instruction *Ins = Preheader->getTerminator(); in parseLoopStructure()
1195 const LoopStructure &LS, BasicBlock *Preheader, Value *ExitSubloopAt, in changeIterationSpaceEnd() argument
1276 BranchInst *PreheaderJump = cast<BranchInst>(Preheader->getTerminator()); in changeIterationSpaceEnd()
1331 NewPHI->addIncoming(PN.getIncomingValueForBlock(Preheader), Preheader); in changeIterationSpaceEnd()
1339 RRI.IndVarEnd->addIncoming(IndVarStart, Preheader); in changeIterationSpaceEnd()
1363 BasicBlock *Preheader = BasicBlock::Create(Ctx, Tag, &F, LS.Header); in createPreheader() local
[all …]
H A DLoopSimplifyCFG.cpp357 BasicBlock *Preheader = L.getLoopPreheader(); in handleDeadExits() local
359 Preheader, Preheader->getTerminator(), &DT, &LI, MSSAU); in handleDeadExits()
361 IRBuilder<> Builder(Preheader->getTerminator()); in handleDeadExits()
364 Preheader->getTerminator()->eraseFromParent(); in handleDeadExits()
384 DTUpdates.push_back({DominatorTree::Insert, Preheader, BB}); in handleDeadExits()
389 if (Loop *OuterLoop = LI.getLoopFor(Preheader)) { in handleDeadExits()
H A DLoopIdiomRecognize.cpp1047 BasicBlock *Preheader = CurLoop->getLoopPreheader(); in processLoopStridedStore() local
1048 IRBuilder<> Builder(Preheader->getTerminator()); in processLoopStridedStore()
1072 Expander.expandCodeFor(Start, DestInt8PtrTy, Preheader->getTerminator()); in processLoopStridedStore()
1101 Expander.expandCodeFor(NumBytesS, IntIdxTy, Preheader->getTerminator()); in processLoopStridedStore()
1141 NewCall->getDebugLoc(), Preheader) in processLoopStridedStore()
1196 BasicBlock *Preheader = CurLoop->getLoopPreheader(); in processLoopStoreOfLoopLoad() local
1197 IRBuilder<> Builder(Preheader->getTerminator()); in processLoopStoreOfLoopLoad()
1221 StrStart, Builder.getInt8PtrTy(StrAS), Preheader->getTerminator()); in processLoopStoreOfLoopLoad()
1261 LdStart, Builder.getInt8PtrTy(LdAS), Preheader->getTerminator()); in processLoopStoreOfLoopLoad()
1288 Expander.expandCodeFor(NumBytesS, IntIdxTy, Preheader->getTerminator()); in processLoopStoreOfLoopLoad()
[all …]
H A DLoopPredication.cpp261 BasicBlock *Preheader; member in __anon8af7232a0111::LoopPredication
511 return Preheader->getTerminator(); in findInsertPt()
521 !isSafeToExpandAt(Op, Preheader->getTerminator(), *SE)) in findInsertPt()
523 return Preheader->getTerminator(); in findInsertPt()
1208 Preheader = L->getLoopPreheader(); in runOnLoop()
1209 if (!Preheader) in runOnLoop()
H A DIndVarSimplify.cpp1212 BasicBlock *Preheader = L->getLoopPreheader(); in sinkUnusedInvariants() local
1213 if (!Preheader) return false; in sinkUnusedInvariants()
1217 BasicBlock::iterator I(Preheader->getTerminator()); in sinkUnusedInvariants()
1218 while (I != Preheader->begin()) { in sinkUnusedInvariants()
1259 if (UseBB == Preheader || L->contains(UseBB)) { in sinkUnusedInvariants()
1273 if (I != Preheader->begin()) { in sinkUnusedInvariants()
1277 } while (isa<DbgInfoIntrinsic>(I) && I != Preheader->begin()); in sinkUnusedInvariants()
1279 if (isa<DbgInfoIntrinsic>(I) && I == Preheader->begin()) in sinkUnusedInvariants()
/netbsd-src/external/apache2/llvm/dist/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.cpp220 static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader, in separateNestedLoop() argument
225 if (!Preheader) in separateNestedLoop()
364 static BasicBlock *insertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader, in insertUniqueBackedgeBlock() argument
374 if (!Preheader) in insertUniqueBackedgeBlock()
387 if (P != Preheader) BackedgeBlocks.push_back(P); in insertUniqueBackedgeBlock()
418 if (IBB == Preheader) { in insertUniqueBackedgeBlock()
478 MSSAU->updatePhisWhenInsertingUniqueBackedgeBlock(Header, Preheader, in insertUniqueBackedgeBlock()
547 BasicBlock *Preheader = L->getLoopPreheader(); in simplifyOneLoop() local
548 if (!Preheader) { in simplifyOneLoop()
549 Preheader = InsertPreheaderForLoop(L, DT, LI, MSSAU, PreserveLCSSA); in simplifyOneLoop()
[all …]
H A DIntegerDivision.cpp225 BasicBlock *Preheader = BasicBlock::Create(Builder.getContext(), in generateUnsignedDivisionCode() local
275 Builder.CreateCondBr(SkipLoop, LoopExit, Preheader); in generateUnsignedDivisionCode()
281 Builder.SetInsertPoint(Preheader); in generateUnsignedDivisionCode()
344 Carry_1->addIncoming(Zero, Preheader); in generateUnsignedDivisionCode()
347 SR_3->addIncoming(SR_1, Preheader); in generateUnsignedDivisionCode()
350 R_1->addIncoming(Tmp3, Preheader); in generateUnsignedDivisionCode()
353 Q_2->addIncoming(Q, Preheader); in generateUnsignedDivisionCode()
H A DLoopUtils.cpp541 auto *Preheader = L->getLoopPreheader(); in deleteDeadLoop() local
542 assert(Preheader && "Preheader should exist!"); in deleteDeadLoop()
560 auto *OldBr = dyn_cast<BranchInst>(Preheader->getTerminator()); in deleteDeadLoop()
607 P.setIncomingBlock(PredIndex, Preheader); in deleteDeadLoop()
619 P.getIncomingBlock(PredIndex) == Preheader) && in deleteDeadLoop()
624 DTU.applyUpdates({{DominatorTree::Insert, Preheader, ExitBlock}}); in deleteDeadLoop()
626 MSSAU->applyUpdates({{DominatorTree::Insert, Preheader, ExitBlock}}, in deleteDeadLoop()
634 Builder.SetInsertPoint(Preheader->getTerminator()); in deleteDeadLoop()
637 Preheader->getTerminator()->eraseFromParent(); in deleteDeadLoop()
644 Preheader->getTerminator()->eraseFromParent(); in deleteDeadLoop()
[all …]
/netbsd-src/external/apache2/llvm/dist/llvm/lib/CodeGen/
H A DMachineLoopUtils.cpp32 MachineBasicBlock *Preheader = *Loop->pred_begin(); in PeelSingleBlockLoop() local
33 if (Preheader == Loop) in PeelSingleBlockLoop()
34 Preheader = *std::next(Loop->pred_begin()); in PeelSingleBlockLoop()
82 if (MI.getOperand(2).getMBB() != Preheader) in PeelSingleBlockLoop()
107 Preheader->replaceSuccessor(Loop, NewBB); in PeelSingleBlockLoop()
109 Loop->replacePhiUsesWith(Preheader, NewBB); in PeelSingleBlockLoop()
110 if (TII->removeBranch(*Preheader) > 0) in PeelSingleBlockLoop()
111 TII->insertBranch(*Preheader, NewBB, nullptr, {}, DL); in PeelSingleBlockLoop()
H A DMachineLoopInfo.cpp130 MachineBasicBlock *Preheader = nullptr; in findLoopPreheader() local
135 if (Preheader) in findLoopPreheader()
137 Preheader = P; in findLoopPreheader()
142 for (MachineBasicBlock *S : Preheader->successors()) { in findLoopPreheader()
149 return Preheader; in findLoopPreheader()
H A DMachineLICM.cpp264 bool Hoist(MachineInstr *MI, MachineBasicBlock *Preheader);
513 MachineBasicBlock *Preheader = getCurPreheader(); in HoistRegionPostRA() local
514 if (!Preheader) in HoistRegionPostRA()
547 MachineBasicBlock::iterator TI = Preheader->getFirstTerminator(); in HoistRegionPostRA()
548 if (TI != Preheader->end()) { in HoistRegionPostRA()
614 MachineBasicBlock *Preheader = getCurPreheader(); in HoistPostRA() local
618 LLVM_DEBUG(dbgs() << "Hoisting to " << printMBBReference(*Preheader) in HoistPostRA()
624 Preheader->splice(Preheader->getFirstTerminator(), MBB, MI); in HoistPostRA()
701 MachineBasicBlock *Preheader = getCurPreheader(); in HoistOutOfLoop() local
702 if (!Preheader) in HoistOutOfLoop()
[all …]
H A DHardwareLoops.cpp302 BasicBlock *Preheader = L->getLoopPreheader(); in TryConvertLoop() local
305 if (!Preheader) in TryConvertLoop()
306 Preheader = InsertPreheaderForLoop(L, DT, LI, nullptr, PreserveLCSSA); in TryConvertLoop()
307 if (!Preheader) in TryConvertLoop()
343 BasicBlock *Preheader = L->getLoopPreheader(); in CanGenerateTest() local
344 if (!Preheader->getSinglePredecessor()) in CanGenerateTest()
347 BasicBlock *Pred = Preheader->getSinglePredecessor(); in CanGenerateTest()
372 if (BI->getSuccessor(SuccIdx) != Preheader) in CanGenerateTest()
501 BasicBlock *Preheader = L->getLoopPreheader(); in InsertPHICounter() local
506 Index->addIncoming(NumElts, Preheader); in InsertPHICounter()
H A DModuloSchedule.cpp68 Preheader = *BB->pred_begin(); in expand()
69 if (Preheader == BB) in expand()
70 Preheader = *std::next(BB->pred_begin()); in expand()
176 addBranches(*Preheader, PrologBBs, KernelBB, EpilogBBs, VRMap); in generatePipelinedLoop()
194 MachineBasicBlock *PredBB = Preheader; in generateProlog()
238 unsigned numBranches = TII->removeBranch(*Preheader); in generateProlog()
241 TII->insertBranch(*Preheader, PrologBBs[0], nullptr, Cond, DebugLoc()); in generateProlog()
1990 Preheader = Schedule.getLoop()->getLoopPreheader(); in expand()
2002 Preheader = Schedule.getLoop()->getLoopPreheader(); in validateAgainstModuloScheduleExpander()
2024 Preheader->addSuccessor(BB); in validateAgainstModuloScheduleExpander()
[all …]
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/ARM/
H A DARMLowOverheadLoops.cpp159 if (auto *Preheader = ML.getLoopPreheader()) in ProcessLoop() local
160 GetPredecessor(Preheader); in ProcessLoop()
161 else if (auto *Preheader = MLI.findLoopPreheader(&ML, true)) in ProcessLoop() local
162 GetPredecessor(Preheader); in ProcessLoop()
363 MachineBasicBlock *Preheader = nullptr; member
388 Preheader = MBB; in LowOverheadLoop()
390 Preheader = MBB; in LowOverheadLoop()
712 MachineBasicBlock *MBB = Preheader; in ValidateTailPredicate()
783 if (Start->getOpcode() == ARM::t2DoLoopStartTP && Preheader && in ValidateTailPredicate()
784 !Preheader->empty() && in ValidateTailPredicate()
[all …]
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()
/netbsd-src/external/apache2/llvm/dist/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()
1194 MachineBasicBlock *Preheader = MLI->findLoopPreheader(L, SpecPreheader); in convertToHardwareLoop() local
1195 if (!Preheader) { in convertToHardwareLoop()
1196 Preheader = createPreheaderForLoop(L); in convertToHardwareLoop()
1197 if (!Preheader) in convertToHardwareLoop()
1201 MachineBasicBlock::iterator InsertPos = Preheader->getFirstTerminator(); in convertToHardwareLoop()
1215 if (!MDT->dominates(BBDef, Preheader)) in convertToHardwareLoop()
[all …]
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/X86/
H A DX86LowerAMXIntrinsics.cpp72 BasicBlock *createLoop(BasicBlock *Preheader, BasicBlock *Exit, Value *Bound,
103 BasicBlock *X86LowerAMXIntrinsics::createLoop(BasicBlock *Preheader, in createLoop() argument
107 LLVMContext &Ctx = Preheader->getContext(); in createLoop()
109 BasicBlock::Create(Ctx, Name + ".header", Preheader->getParent(), Exit); in createLoop()
120 IV->addIncoming(ConstantInt::get(I16Ty, 0), Preheader); in createLoop()
128 BranchInst *PreheaderBr = cast<BranchInst>(Preheader->getTerminator()); in createLoop()
132 {DominatorTree::Delete, Preheader, Tmp}, in createLoop()
137 {DominatorTree::Insert, Preheader, Header}, in createLoop()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Analysis/
H A DLoopInfo.cpp96 BasicBlock *Preheader = getLoopPreheader(); in makeLoopInvariant() local
98 if (!Preheader) in makeLoopInvariant()
100 InsertPt = Preheader->getTerminator(); in makeLoopInvariant()
370 BasicBlock *Preheader = getLoopPreheader(); in getLoopGuardBranch() local
371 assert(Preheader && getLoopLatch() && in getLoopGuardBranch()
384 BasicBlock *GuardBB = Preheader->getUniquePredecessor(); in getLoopGuardBranch()
394 BasicBlock *GuardOtherSucc = (GuardBI->getSuccessor(0) == Preheader) in getLoopGuardBranch()
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/Frontend/OpenMP/
H A DOMPIRBuilder.h1108 BasicBlock *Preheader; variable
1127 BasicBlock *getPreheader() const { return Preheader; } in getPreheader()
1179 return {Preheader, std::prev(Preheader->end())}; in getPreheaderIP()
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/Transforms/Utils/
H A DMatrixUtils.h87 static BasicBlock *CreateLoop(BasicBlock *Preheader, BasicBlock *Exit,
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/CodeGen/
H A DModuloSchedule.h176 MachineBasicBlock *Preheader; variable
303 MachineBasicBlock *Preheader; variable

12