Home | History | Annotate | Download | only in Analysis

Lines Matching defs:AddRec

805   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Src);
806 if (!AddRec)
808 const SCEV *Start = AddRec->getStart();
809 const SCEV *Step = AddRec->getStepRecurrence(*SE);
812 Loops.set(mapSrcLoop(AddRec->getLoop()));
823 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Dst);
824 if (!AddRec)
826 const SCEV *Start = AddRec->getStart();
827 const SCEV *Step = AddRec->getStepRecurrence(*SE);
830 Loops.set(mapDstLoop(AddRec->getLoop()));
2087 llvm_unreachable("SIV test expected at least one AddRec");
2157 llvm_unreachable("RDIV expected at least one AddRec");
2227 while (const SCEVAddRecExpr *AddRec =
2229 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2239 Coefficients = AddRec->getStart();
2248 while (const SCEVAddRecExpr *AddRec =
2250 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2260 Coefficients = AddRec->getStart();
2320 while (const SCEVAddRecExpr *AddRec =
2322 Coefficients = AddRec->getStart();
2323 const Loop *CurLoop = AddRec->getLoop();
2325 const SCEV *SrcCoeff = AddRec->getStepRecurrence(*SE);
2329 AddRec = cast<SCEVAddRecExpr>(Inner);
2330 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2331 if (CurLoop == AddRec->getLoop())
2343 Inner = AddRec->getStart();
2347 AddRec = cast<SCEVAddRecExpr>(Inner);
2348 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2349 if (CurLoop == AddRec->getLoop())
2361 Inner = AddRec->getStart();
2829 while (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Subscript)) {
2830 const Loop *L = AddRec->getLoop();
2832 CI[K].Coeff = AddRec->getStepRecurrence(*SE);
2836 Subscript = AddRec->getStart();
2903 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);
2904 if (!AddRec)
2906 if (AddRec->getLoop() == TargetLoop)
2907 return AddRec->getStepRecurrence(*SE);
2908 return findCoefficient(AddRec->getStart(), TargetLoop);
2919 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);
2920 if (!AddRec)
2922 if (AddRec->getLoop() == TargetLoop)
2923 return AddRec->getStart();
2924 return SE->getAddRecExpr(zeroCoefficient(AddRec->getStart(), TargetLoop),
2925 AddRec->getStepRecurrence(*SE),
2926 AddRec->getLoop(),
2927 AddRec->getNoWrapFlags());
2939 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);
2940 if (!AddRec) // create a new addRec
2945 if (AddRec->getLoop() == TargetLoop) {
2946 const SCEV *Sum = SE->getAddExpr(AddRec->getStepRecurrence(*SE), Value);
2948 return AddRec->getStart();
2949 return SE->getAddRecExpr(AddRec->getStart(),
2951 AddRec->getLoop(),
2952 AddRec->getNoWrapFlags());
2954 if (SE->isLoopInvariant(AddRec, TargetLoop))
2955 return SE->getAddRecExpr(AddRec,
2959 return SE->getAddRecExpr(addToCoefficient(AddRec->getStart(),
2961 AddRec->getStepRecurrence(*SE),
2962 AddRec->getLoop(),
2963 AddRec->getNoWrapFlags());