Lines Matching defs:RRI
593 RewrittenRangeInfo RRI;
596 RRI.ExitSelector = BasicBlock::Create(Ctx, Twine(LS.Tag) + ".exit.selector",
598 RRI.PseudoExit = BasicBlock::Create(Ctx, Twine(LS.Tag) + ".pseudo.exit", &F,
622 B.CreateCondBr(EnterLoopCond, LS.Header, RRI.PseudoExit);
625 LS.LatchBr->setSuccessor(LS.LatchBrExitIdx, RRI.ExitSelector);
636 B.SetInsertPoint(RRI.ExitSelector);
643 B.CreateCondBr(IterationsLeft, RRI.PseudoExit, LS.LatchExit);
646 BranchInst::Create(ContinuationBlock, RRI.PseudoExit);
648 // We emit PHI nodes into `RRI.PseudoExit' that compute the "latest" value of
657 RRI.ExitSelector);
658 RRI.PHIValuesAtPseudoExit.push_back(NewPHI);
661 RRI.IndVarEnd = PHINode::Create(IndVarBase->getType(), 2, "indvar.end",
663 RRI.IndVarEnd->addIncoming(IndVarStart, Preheader);
664 RRI.IndVarEnd->addIncoming(IndVarBase, RRI.ExitSelector);
666 // The latch exit now has a branch from `RRI.ExitSelector' instead of
668 LS.LatchExit->replacePhiUsesWith(LS.Latch, RRI.ExitSelector);
670 return RRI;
675 const LoopConstrainer::RewrittenRangeInfo &RRI) const {
679 RRI.PHIValuesAtPseudoExit[PHIIndex++]);
681 LS.IndVarStart = RRI.IndVarEnd;