Lines Matching full:latch
111 /// Returns estimate for max latch taken count of the loop of the narrowest
112 /// available type. If the latch block has such estimate, it is returned.
114 /// type than latch check itself), which is still better than no estimate.
133 BasicBlock *Latch = L.getLoopLatch();
134 assert(Latch && "Simplified loops only have one latch!");
136 if (Latch->getTerminator()->getMetadata(ClonedLoopTag)) {
141 if (!L.isLoopExiting(Latch)) {
142 FailureReason = "no loop latch";
153 BranchInst *LatchBr = dyn_cast<BranchInst>(Latch->getTerminator());
155 FailureReason = "latch terminator not conditional branch";
163 FailureReason = "latch terminator branch not conditional on integral icmp";
169 FailureReason = "could not compute latch count";
311 FailureReason = "unsigned latch conditions are explicitly prohibited";
376 FailureReason = "unsigned latch conditions are explicitly prohibited";
415 Result.Latch = Latch;
522 // We start with a loop with a single latch:
541 // | latch >----------/
576 // | latch >------+ | | |
595 BasicBlock *BBInsertLocation = LS.Latch->getNextNode();
656 NewPHI->addIncoming(PN.getIncomingValueForBlock(LS.Latch),
666 // The latch exit now has a branch from `RRI.ExitSelector' instead of
667 // `LS.Latch'. The PHI nodes need to be updated to reflect that.
668 LS.LatchExit->replacePhiUsesWith(LS.Latch, RRI.ExitSelector);
891 /// - Max latch taken count of the loop is limited.