Lines Matching refs:PSE

90 const SCEV *llvm::replaceSymbolicStrideSCEV(PredicatedScalarEvolution &PSE,
93 const SCEV *OrigSCEV = PSE.getSCEV(Ptr);
110 ScalarEvolution *SE = PSE.getSE();
115 PSE.addPredicate(*SE->getEqualPredicate(U, CT));
116 auto *Expr = PSE.getSCEV(Ptr);
130 PredicatedScalarEvolution &PSE) {
132 const SCEV *Sc = replaceSymbolicStrideSCEV(PSE, Strides, Ptr);
135 ScalarEvolution *SE = PSE.getSE();
428 PredicatedScalarEvolution &PSE)
430 PSE(PSE) {}
517 PredicatedScalarEvolution &PSE;
523 static bool hasComputableBounds(PredicatedScalarEvolution &PSE,
526 const SCEV *PtrScev = replaceSymbolicStrideSCEV(PSE, Strides, Ptr);
569 if (hasComputableBounds(PSE, StridesMap, Ptr, TheLoop) &&
573 isStridedPtr(PSE, Ptr, TheLoop, StridesMap) == 1)) {
587 RtCheck.insert(TheLoop, Ptr, IsWrite, DepId, ASId, StridesMap, PSE);
822 int llvm::isStridedPtr(PredicatedScalarEvolution &PSE, Value *Ptr,
835 const SCEV *PtrScev = replaceSymbolicStrideSCEV(PSE, StridesMap, Ptr);
858 bool IsNoWrapAddRec = isNoWrapAddRec(Ptr, AR, PSE.getSE(), Lp);
867 const SCEV *Step = AR->getStepRecurrence(*PSE.getSE());
1050 const SCEV *AScev = replaceSymbolicStrideSCEV(PSE, Strides, APtr);
1051 const SCEV *BScev = replaceSymbolicStrideSCEV(PSE, Strides, BPtr);
1053 int StrideAPtr = isStridedPtr(PSE, APtr, InnermostLoop, Strides);
1054 int StrideBPtr = isStridedPtr(PSE, BPtr, InnermostLoop, Strides);
1071 const SCEV *Dist = PSE.getSE()->getMinusSCEV(Sink, Src);
1347 const SCEV *ExitCount = PSE.getSE()->getBackedgeTakenCount(TheLoop);
1348 if (ExitCount == PSE.getSE()->getCouldNotCompute()) {
1451 AA, LI, DependentAccesses, PSE);
1502 if (Seen.insert(Ptr).second || !isStridedPtr(PSE, Ptr, TheLoop, Strides)) {
1532 Accesses.canCheckPtrAtRT(PtrRtChecking, PSE.getSE(), TheLoop, Strides);
1559 auto *SE = PSE.getSE();
1602 return (PSE.getSE()->isLoopInvariant(PSE.getSE()->getSCEV(V), TheLoop));
1683 auto *SE = PSE.getSE();
1753 : PSE(*SE), PtrRtChecking(SE), DepChecker(PSE, L), TheLoop(L), DL(DL),
1790 PSE.getUnionPredicate().print(OS, Depth);