/external/llvm-project/llvm/unittests/Transforms/Vectorize/ |
D | VPlanDominatorTreeTest.cpp | 53 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 …]
|
D | VPlanLoopInfoTest.cpp | 55 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/ |
D | MatrixUtils.cpp | 32 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()
|
D | LoopUnrollRuntime.cpp | 85 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 …]
|
D | LoopRotationUtils.cpp | 216 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()
|
D | LoopPeel.cpp | 101 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/ |
D | profitability.ll | 24 ; 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/ |
D | LoopUnrollRuntime.cpp | 66 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/ |
D | LoopUnrollRuntime.cpp | 84 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 …]
|
D | LoopUnrollPeel.cpp | 89 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()
|
D | LoopRotationUtils.cpp | 605 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/ |
D | LoopFuse.cpp | 145 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/ |
D | LoopRotation.cpp | 554 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 …]
|
D | InductiveRangeCheckElimination.cpp | 414 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/ |
D | LoopFuse.cpp | 157 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/ |
D | latch.rs | 33 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,
|
D | job.rs | 1 use crate::latch::Latch; 69 L: Latch + Sync, 80 L: Latch + Sync, 107 L: Latch + Sync,
|
/external/llvm/lib/Target/Hexagon/ |
D | HexagonHardwareLoops.cpp | 373 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/ |
D | graphics_frame_events.out | 10 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/ |
D | HexagonHardwareLoops.cpp | 409 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/ |
D | HexagonHardwareLoops.cpp | 409 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/ |
D | MachineLoopInfo.cpp | 89 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/ |
D | MachineLoopInfo.cpp | 89 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/ |
D | Parallel.h | 40 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/ |
D | LoopInfoImpl.h | 130 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()
|