Lines Matching refs:TheLoop

162 static void collectCastsToIgnore(Loop *TheLoop, Instruction *Exit,  in collectCastsToIgnore()  argument
186 if (TheLoop->contains(I) && !Visited.count(I)) in collectCastsToIgnore()
192 Loop *TheLoop, bool HasFunNoNaNAttr, in AddReductionVar() argument
201 if (Phi->getParent() != TheLoop->getHeader()) in AddReductionVar()
206 Value *RdxStart = Phi->getIncomingValueForBlock(TheLoop->getLoopPreheader()); in AddReductionVar()
338 if (!TheLoop->contains(Parent)) { in AddReductionVar()
434 collectCastsToIgnore(TheLoop, ExitInstruction, RecurrenceType, CastInsts); in AddReductionVar()
606 bool RecurrenceDescriptor::isReductionPHI(PHINode *Phi, Loop *TheLoop, in isReductionPHI() argument
611 BasicBlock *Header = TheLoop->getHeader(); in isReductionPHI()
616 if (AddReductionVar(Phi, RK_IntegerAdd, TheLoop, HasFunNoNaNAttr, RedDes, DB, in isReductionPHI()
621 if (AddReductionVar(Phi, RK_IntegerMult, TheLoop, HasFunNoNaNAttr, RedDes, DB, in isReductionPHI()
626 if (AddReductionVar(Phi, RK_IntegerOr, TheLoop, HasFunNoNaNAttr, RedDes, DB, in isReductionPHI()
631 if (AddReductionVar(Phi, RK_IntegerAnd, TheLoop, HasFunNoNaNAttr, RedDes, DB, in isReductionPHI()
636 if (AddReductionVar(Phi, RK_IntegerXor, TheLoop, HasFunNoNaNAttr, RedDes, DB, in isReductionPHI()
641 if (AddReductionVar(Phi, RK_IntegerMinMax, TheLoop, HasFunNoNaNAttr, RedDes, in isReductionPHI()
646 if (AddReductionVar(Phi, RK_FloatMult, TheLoop, HasFunNoNaNAttr, RedDes, DB, in isReductionPHI()
651 if (AddReductionVar(Phi, RK_FloatAdd, TheLoop, HasFunNoNaNAttr, RedDes, DB, in isReductionPHI()
656 if (AddReductionVar(Phi, RK_FloatMinMax, TheLoop, HasFunNoNaNAttr, RedDes, DB, in isReductionPHI()
667 PHINode *Phi, Loop *TheLoop, in isFirstOrderRecurrence() argument
671 if (Phi->getParent() != TheLoop->getHeader() || in isFirstOrderRecurrence()
677 auto *Preheader = TheLoop->getLoopPreheader(); in isFirstOrderRecurrence()
678 auto *Latch = TheLoop->getLoopLatch(); in isFirstOrderRecurrence()
690 if (!Previous || !TheLoop->contains(Previous) || isa<PHINode>(Previous) || in isFirstOrderRecurrence()
822 bool InductionDescriptor::isFPInductionPHI(PHINode *Phi, const Loop *TheLoop, in isFPInductionPHI() argument
829 if (TheLoop->getHeader() != Phi->getParent()) in isFPInductionPHI()
837 if (TheLoop->contains(Phi->getIncomingBlock(0))) { in isFPInductionPHI()
841 assert(TheLoop->contains(Phi->getIncomingBlock(1)) && in isFPInductionPHI()
866 if (TheLoop->contains(I)) in isFPInductionPHI()
980 bool InductionDescriptor::isInductionPHI(PHINode *Phi, const Loop *TheLoop, in isInductionPHI() argument
994 return isFPInductionPHI(Phi, TheLoop, PSE.getSE(), D); in isInductionPHI()
1018 return isInductionPHI(Phi, TheLoop, PSE.getSE(), D, AR, &Casts); in isInductionPHI()
1021 return isInductionPHI(Phi, TheLoop, PSE.getSE(), D, AR); in isInductionPHI()
1025 PHINode *Phi, const Loop *TheLoop, ScalarEvolution *SE, in isInductionPHI() argument
1042 if (AR->getLoop() != TheLoop) { in isInductionPHI()
1056 if (!ConstStep && !SE->isLoopInvariant(Step, TheLoop)) in isInductionPHI()