Home
last modified time | relevance | path

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

1234

/external/llvm-project/llvm/unittests/Transforms/Vectorize/
DVPlanDominatorTreeTest.cpp53 VPBlockBase *Latch = IfThen->getSingleSuccessor(); in TEST_F() local
54 VPBlockBase *Exit = Latch->getSuccessors()[0] != H in TEST_F()
55 ? Latch->getSuccessors()[0] in TEST_F()
56 : Latch->getSuccessors()[1]; in TEST_F()
62 EXPECT_TRUE(VPDT.isReachableFromEntry(Latch)); in TEST_F()
70 EXPECT_TRUE(VPDT.dominates(PH, Latch)); in TEST_F()
77 EXPECT_TRUE(VPDT.dominates(H, Latch)); in TEST_F()
84 EXPECT_FALSE(VPDT.dominates(IfThen, Latch)); in TEST_F()
91 EXPECT_FALSE(VPDT.dominates(IfElse, Latch)); in TEST_F()
94 EXPECT_FALSE(VPDT.dominates(Latch, PH)); in TEST_F()
[all …]
DVPlanLoopInfoTest.cpp55 VPBlockBase *Latch = IfThen->getSingleSuccessor(); in TEST_F() local
56 VPBlockBase *Exit = Latch->getSuccessors()[0] != H in TEST_F()
57 ? Latch->getSuccessors()[0] in TEST_F()
58 : Latch->getSuccessors()[1]; in TEST_F()
73 EXPECT_TRUE(VPLp->contains(Latch)); in TEST_F()
74 EXPECT_EQ(VPLp, VPLI.getLoopFor(Latch)); in TEST_F()
81 EXPECT_EQ(Latch, VPLp->getLoopLatch()); in TEST_F()
82 EXPECT_EQ(Latch, VPLp->getExitingBlock()); in TEST_F()
/external/llvm-project/llvm/lib/Transforms/Utils/
DMatrixUtils.cpp32 BasicBlock *Latch = BasicBlock::Create(Header->getContext(), Name + ".latch", in CreateLoop() local
37 BranchInst::Create(Latch, Body); in CreateLoop()
42 B.SetInsertPoint(Latch); in CreateLoop()
45 BranchInst::Create(Header, Exit, Cond, Latch); in CreateLoop()
46 IV->addIncoming(Inc, Latch); in CreateLoop()
54 {DominatorTree::Insert, Body, Latch}, in CreateLoop()
55 {DominatorTree::Insert, Latch, Header}, in CreateLoop()
56 {DominatorTree::Insert, Latch, Exit}, in CreateLoop()
62 L->addBasicBlockToLoop(Latch, LI); in CreateLoop()
DLoopUnrollRuntime.cpp85 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog() local
86 assert(Latch && "Loop must have a latch"); in ConnectProlog()
87 BasicBlock *PrologLatch = cast<BasicBlock>(VMap[Latch]); in ConnectProlog()
94 for (BasicBlock *Succ : successors(Latch)) { in ConnectProlog()
116 Value *V = PN.getIncomingValueForBlock(Latch); in ConnectProlog()
189 BasicBlock *Latch = L->getLoopLatch(); in ConnectEpilog() local
190 assert(Latch && "Loop must have a latch"); in ConnectEpilog()
191 BasicBlock *EpilogLatch = cast<BasicBlock>(VMap[Latch]); in ConnectEpilog()
227 Value *V = PN.getIncomingValueForBlock(Latch); in ConnectEpilog()
251 for (BasicBlock *Succ : successors(Latch)) { in ConnectEpilog()
[all …]
DLoopRotationUtils.cpp216 BasicBlock *Latch = L->getLoopLatch(); in canRotateDeoptimizingLatchExit() local
217 assert(Latch && "need latch"); in canRotateDeoptimizingLatchExit()
218 BranchInst *BI = dyn_cast<BranchInst>(Latch->getTerminator()); in canRotateDeoptimizingLatchExit()
684 BasicBlock *Latch = L->getLoopLatch(); in simplifyLoopLatch() local
685 if (!Latch || Latch->hasAddressTaken()) in simplifyLoopLatch()
688 BranchInst *Jmp = dyn_cast<BranchInst>(Latch->getTerminator()); in simplifyLoopLatch()
692 BasicBlock *LastExit = Latch->getSinglePredecessor(); in simplifyLoopLatch()
700 if (!shouldSpeculateInstrs(Latch->begin(), Jmp->getIterator(), L)) in simplifyLoopLatch()
703 LLVM_DEBUG(dbgs() << "Folding loop latch " << Latch->getName() << " into " in simplifyLoopLatch()
707 MergeBlockIntoPredecessor(Latch, &DTU, LI, MSSAU, nullptr, in simplifyLoopLatch()
DLoopPeel.cpp101 const BasicBlock *Latch = L->getLoopLatch(); in canPeel() local
102 const BranchInst *T = dyn_cast<BranchInst>(Latch->getTerminator()); in canPeel()
103 return T && T->isConditional() && L->isLoopExiting(Latch) && in canPeel()
509 BasicBlock *Latch = L->getLoopLatch(); in cloneLoopBlocks() local
560 BasicBlock *NewLatch = cast<BasicBlock>(VMap[Latch]); in cloneLoopBlocks()
583 Value *LatchVal = NewPHI->getIncomingValueForBlock(Latch); in cloneLoopBlocks()
666 BasicBlock *Latch = L->getLoopLatch(); in peelLoop() local
695 DT->getNode(Edge.second)->getIDom()->getBlock(), Latch); in peelLoop()
763 cast<BranchInst>(cast<BasicBlock>(Latch)->getTerminator()); in peelLoop()
811 Value *NewVal = PHI->getIncomingValueForBlock(Latch); in peelLoop()
/external/llvm-project/llvm/test/Transforms/LoopPredication/
Dprofitability.ll24 ; CHECK: Latch:
40 Header: ; preds = %entry, %Latch
41 %result.in3 = phi i64* [ %arg2, %entry ], [ %arg, %Latch ]
42 %j2 = phi i64 [ 0, %entry ], [ %j.next, %Latch ]
47 br i1 %innercmp, label %Latch, label %exit, !prof !0
49 Latch: ; preds = %Header
53 deopt: ; preds = %Latch
82 ; CHECK: Latch:
97 Header: ; preds = %entry, %Latch
98 %result.in3 = phi i64* [ %arg2, %entry ], [ %arg, %Latch ]
[all …]
/external/llvm/lib/Transforms/Utils/
DLoopUnrollRuntime.cpp66 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog() local
67 assert(Latch && "Loop must have a latch"); in ConnectProlog()
68 BasicBlock *PrologLatch = cast<BasicBlock>(VMap[Latch]); in ConnectProlog()
75 for (BasicBlock *Succ : successors(Latch)) { in ConnectProlog()
94 Value *V = PN->getIncomingValueForBlock(Latch); in ConnectProlog()
156 BasicBlock *Latch = L->getLoopLatch(); in ConnectEpilog() local
157 assert(Latch && "Loop must have a latch"); in ConnectEpilog()
158 BasicBlock *EpilogLatch = cast<BasicBlock>(VMap[Latch]); in ConnectEpilog()
198 Value *V = PN->getIncomingValueForBlock(Latch); in ConnectEpilog()
222 for (BasicBlock *Succ : successors(Latch)) { in ConnectEpilog()
[all …]
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Utils/
DLoopUnrollRuntime.cpp84 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog() local
85 assert(Latch && "Loop must have a latch"); in ConnectProlog()
86 BasicBlock *PrologLatch = cast<BasicBlock>(VMap[Latch]); in ConnectProlog()
93 for (BasicBlock *Succ : successors(Latch)) { in ConnectProlog()
115 Value *V = PN.getIncomingValueForBlock(Latch); in ConnectProlog()
188 BasicBlock *Latch = L->getLoopLatch(); in ConnectEpilog() local
189 assert(Latch && "Loop must have a latch"); in ConnectEpilog()
190 BasicBlock *EpilogLatch = cast<BasicBlock>(VMap[Latch]); in ConnectEpilog()
226 Value *V = PN.getIncomingValueForBlock(Latch); in ConnectEpilog()
250 for (BasicBlock *Succ : successors(Latch)) { in ConnectEpilog()
[all …]
DLoopUnrollPeel.cpp89 const BasicBlock *Latch = L->getLoopLatch(); in canPeel() local
90 const BranchInst *T = dyn_cast<BranchInst>(Latch->getTerminator()); in canPeel()
91 return T && T->isConditional() && L->isLoopExiting(Latch) && in canPeel()
497 BasicBlock *Latch = L->getLoopLatch(); in cloneLoopBlocks() local
539 BasicBlock *NewLatch = cast<BasicBlock>(VMap[Latch]); in cloneLoopBlocks()
562 Value *LatchVal = NewPHI->getIncomingValueForBlock(Latch); in cloneLoopBlocks()
611 BasicBlock *Latch = L->getLoopLatch(); in peelLoop() local
640 DT->getNode(Edge.second)->getIDom()->getBlock(), Latch); in peelLoop()
708 cast<BranchInst>(cast<BasicBlock>(Latch)->getTerminator()); in peelLoop()
756 Value *NewVal = PHI->getIncomingValueForBlock(Latch); in peelLoop()
DLoopRotationUtils.cpp605 BasicBlock *Latch = L->getLoopLatch(); in simplifyLoopLatch() local
606 if (!Latch || Latch->hasAddressTaken()) in simplifyLoopLatch()
609 BranchInst *Jmp = dyn_cast<BranchInst>(Latch->getTerminator()); in simplifyLoopLatch()
613 BasicBlock *LastExit = Latch->getSinglePredecessor(); in simplifyLoopLatch()
621 if (!shouldSpeculateInstrs(Latch->begin(), Jmp->getIterator(), L)) in simplifyLoopLatch()
624 LLVM_DEBUG(dbgs() << "Folding loop latch " << Latch->getName() << " into " in simplifyLoopLatch()
628 MergeBlockIntoPredecessor(Latch, &DTU, LI, MSSAU, nullptr, in simplifyLoopLatch()
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Scalar/
DLoopFuse.cpp145 BasicBlock *Latch; member
170 Latch(L->getLoopLatch()), L(L), Valid(true), in FusionCandidate()
214 return Preheader && Header && ExitingBlock && ExitBlock && Latch && L && in isValid()
227 assert(Latch == L->getLoopLatch() && "Latch is out of sync"); in verify()
274 << "\tLatch: " << (Latch ? Latch->getName() : "nullptr") << "\n" in dump()
295 if (!Latch) in isEligibleForFusion()
1113 BranchInst *FCLatchBranch = dyn_cast<BranchInst>(FC.Latch->getTerminator()); in simplifyLatchBranch()
1126 moveInstsBottomUp(*FC0.Latch, *FC1.Latch, DT, PDT, DI); in mergeLatch()
1127 if (BasicBlock *Succ = FC0.Latch->getUniqueSuccessor()) { in mergeLatch()
1189 if (FC0.ExitingBlock != FC0.Latch) in performFusion()
[all …]
/external/llvm/lib/Transforms/Scalar/
DLoopRotation.cpp554 BasicBlock *Latch = L->getLoopLatch(); in simplifyLoopLatch() local
555 if (!Latch || Latch->hasAddressTaken()) in simplifyLoopLatch()
558 BranchInst *Jmp = dyn_cast<BranchInst>(Latch->getTerminator()); in simplifyLoopLatch()
562 BasicBlock *LastExit = Latch->getSinglePredecessor(); in simplifyLoopLatch()
570 if (!shouldSpeculateInstrs(Latch->begin(), Jmp->getIterator(), L)) in simplifyLoopLatch()
573 DEBUG(dbgs() << "Folding loop latch " << Latch->getName() << " into " in simplifyLoopLatch()
577 LastExit->getInstList().splice(BI->getIterator(), Latch->getInstList(), in simplifyLoopLatch()
578 Latch->begin(), Jmp->getIterator()); in simplifyLoopLatch()
580 unsigned FallThruPath = BI->getSuccessor(0) == Latch ? 0 : 1; in simplifyLoopLatch()
586 Latch->replaceSuccessorsPhiUsesWith(LastExit); in simplifyLoopLatch()
[all …]
DInductiveRangeCheckElimination.cpp414 BasicBlock *Latch; member
428 : Tag(""), Header(nullptr), Latch(nullptr), LatchBr(nullptr), in LoopStructure()
436 Result.Latch = cast<BasicBlock>(Map(Latch)); in map()
627 BasicBlock *Latch = L.getLoopLatch(); in parseLoopStructure() local
628 if (!L.isLoopExiting(Latch)) { in parseLoopStructure()
640 BranchInst *LatchBr = dyn_cast<BranchInst>(Latch->getTerminator()); in parseLoopStructure()
662 const SCEV *LatchCount = SE.getExitCount(&L, Latch); in parseLoopStructure()
814 Result.Latch = Latch; in parseLoopStructure()
1023 auto BBInsertLocation = std::next(Function::iterator(LS.Latch)); in changeIterationSpaceEnd()
1079 NewPHI->addIncoming(PN->getIncomingValueForBlock(LS.Latch), in changeIterationSpaceEnd()
[all …]
/external/llvm-project/llvm/lib/Transforms/Scalar/
DLoopFuse.cpp157 BasicBlock *Latch; member
189 Latch(L->getLoopLatch()), L(L), Valid(true), in FusionCandidate()
234 return Preheader && Header && ExitingBlock && ExitBlock && Latch && L && in isValid()
247 assert(Latch == L->getLoopLatch() && "Latch is out of sync"); in verify()
269 Latch = L->getLoopLatch(); in updateAfterPeeling()
307 << "\tLatch: " << (Latch ? Latch->getName() : "nullptr") << "\n" in dump()
328 if (!Latch) in isEligibleForFusion()
1262 BranchInst *FCLatchBranch = dyn_cast<BranchInst>(FC.Latch->getTerminator()); in simplifyLatchBranch()
1276 moveInstructionsToTheBeginning(*FC0.Latch, *FC1.Latch, DT, PDT, DI); in mergeLatch()
1277 if (BasicBlock *Succ = FC0.Latch->getUniqueSuccessor()) { in mergeLatch()
[all …]
/external/rust/crates/rayon-core/src/
Dlatch.rs33 pub(super) trait Latch { interface
187 impl<'r> Latch for SpinLatch<'r> {
253 impl Latch for LockLatch {
331 impl<'a, L> Latch for &'a L impl
333 L: Latch,
Djob.rs1 use crate::latch::Latch;
69 L: Latch + Sync,
80 L: Latch + Sync,
107 L: Latch + Sync,
/external/llvm/lib/Target/Hexagon/
DHexagonHardwareLoops.cpp373 if (MachineBasicBlock *Latch = L->getLoopLatch()) { in getExitingBlock() local
374 if (L->isLoopExiting(Latch)) in getExitingBlock()
375 return Latch; in getExitingBlock()
389 MachineBasicBlock *Latch = L->getLoopLatch(); in findInductionRegister() local
391 if (!Header || !Preheader || !Latch || !ExitingBlock) in findInductionRegister()
415 if (Phi->getOperand(i+1).getMBB() != Latch) in findInductionRegister()
573 MachineBasicBlock *Latch = L->getLoopLatch(); in getLoopTripCount() local
578 else if (MBB == Latch) in getLoopTripCount()
595 if (ExitingBlock != Latch && (TB == Latch || FB == Latch)) { in getLoopTripCount()
598 bool NotAnalyzed = TII->analyzeBranch(*Latch, LTB, LFB, LCond, false); in getLoopTripCount()
[all …]
/external/perfetto/test/trace_processor/graphics/
Dgraphics_frame_events.out10 8,"Buffer: 1 layer1",0,"Latch",11,"layer1"
14 11,"Buffer: 2 layer2",0,"Latch",12,"layer2"
34 61,"Buffer: 2 layer2",0,"Latch",24,"layer2"
/external/llvm-project/llvm/lib/Target/Hexagon/
DHexagonHardwareLoops.cpp409 MachineBasicBlock *Latch = L->getLoopLatch(); in findInductionRegister() local
411 if (!Header || !Preheader || !Latch || !ExitingBlock) in findInductionRegister()
436 if (Phi->getOperand(i+1).getMBB() != Latch) in findInductionRegister()
606 MachineBasicBlock *Latch = L->getLoopLatch(); in getLoopTripCount() local
611 else if (MBB == Latch) in getLoopTripCount()
628 if (ExitingBlock != Latch && (TB == Latch || FB == Latch)) { in getLoopTripCount()
631 bool NotAnalyzed = TII->analyzeBranch(*Latch, LTB, LFB, LCond, false); in getLoopTripCount()
634 if (TB == Latch) in getLoopTripCount()
1609 MachineBasicBlock *Latch = L->getLoopLatch(); in fixupInductionVariable() local
1612 if (!(Header && Latch && ExitingBlock)) in fixupInductionVariable()
[all …]
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Target/Hexagon/
DHexagonHardwareLoops.cpp409 MachineBasicBlock *Latch = L->getLoopLatch(); in findInductionRegister() local
411 if (!Header || !Preheader || !Latch || !ExitingBlock) in findInductionRegister()
436 if (Phi->getOperand(i+1).getMBB() != Latch) in findInductionRegister()
606 MachineBasicBlock *Latch = L->getLoopLatch(); in getLoopTripCount() local
611 else if (MBB == Latch) in getLoopTripCount()
628 if (ExitingBlock != Latch && (TB == Latch || FB == Latch)) { in getLoopTripCount()
631 bool NotAnalyzed = TII->analyzeBranch(*Latch, LTB, LFB, LCond, false); in getLoopTripCount()
634 if (TB == Latch) in getLoopTripCount()
1609 MachineBasicBlock *Latch = L->getLoopLatch(); in fixupInductionVariable() local
1612 if (!(Header && Latch && ExitingBlock)) in fixupInductionVariable()
[all …]
/external/llvm-project/llvm/lib/CodeGen/
DMachineLoopInfo.cpp89 if (MachineBasicBlock *Latch = getLoopLatch()) { in findLoopControlBlock() local
90 if (isLoopExiting(Latch)) in findLoopControlBlock()
91 return Latch; in findLoopControlBlock()
/external/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/
DMachineLoopInfo.cpp89 if (MachineBasicBlock *Latch = getLoopLatch()) { in findLoopControlBlock() local
90 if (isLoopExiting(Latch)) in findLoopControlBlock()
91 return Latch; in findLoopControlBlock()
/external/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/
DParallel.h40 class Latch {
46 explicit Latch(uint32_t Count = 0) : Count(Count) {} in Count()
47 ~Latch() { sync(); } in ~Latch()
67 Latch L;
/external/llvm-project/llvm/include/llvm/Analysis/
DLoopInfoImpl.h130 const BlockT *Latch = getLoopLatch(); in getUniqueNonLatchExitBlocks() local
131 assert(Latch && "Latch block must exists"); in getUniqueNonLatchExitBlocks()
133 [Latch](const BlockT *BB) { return BB != Latch; }); in getUniqueNonLatchExitBlocks()
218 BlockT *Latch = nullptr; in getLoopLatch() local
221 if (Latch) in getLoopLatch()
223 Latch = Pred; in getLoopLatch()
227 return Latch; in getLoopLatch()

1234