Home | History | Annotate | Download | only in Analysis

Lines Matching defs:AddRec

810   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Src);
811 if (!AddRec)
813 const SCEV *Start = AddRec->getStart();
814 const SCEV *Step = AddRec->getStepRecurrence(*SE);
817 Loops.set(mapSrcLoop(AddRec->getLoop()));
828 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Dst);
829 if (!AddRec)
831 const SCEV *Start = AddRec->getStart();
832 const SCEV *Step = AddRec->getStepRecurrence(*SE);
835 Loops.set(mapDstLoop(AddRec->getLoop()));
2092 llvm_unreachable("SIV test expected at least one AddRec");
2162 llvm_unreachable("RDIV expected at least one AddRec");
2232 while (const SCEVAddRecExpr *AddRec =
2234 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2244 Coefficients = AddRec->getStart();
2253 while (const SCEVAddRecExpr *AddRec =
2255 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2265 Coefficients = AddRec->getStart();
2325 while (const SCEVAddRecExpr *AddRec =
2327 Coefficients = AddRec->getStart();
2328 const Loop *CurLoop = AddRec->getLoop();
2330 const SCEV *SrcCoeff = AddRec->getStepRecurrence(*SE);
2334 AddRec = cast<SCEVAddRecExpr>(Inner);
2335 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2336 if (CurLoop == AddRec->getLoop())
2348 Inner = AddRec->getStart();
2352 AddRec = cast<SCEVAddRecExpr>(Inner);
2353 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2354 if (CurLoop == AddRec->getLoop())
2366 Inner = AddRec->getStart();
2834 while (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Subscript)) {
2835 const Loop *L = AddRec->getLoop();
2837 CI[K].Coeff = AddRec->getStepRecurrence(*SE);
2841 Subscript = AddRec->getStart();
2908 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);
2909 if (!AddRec)
2911 if (AddRec->getLoop() == TargetLoop)
2912 return AddRec->getStepRecurrence(*SE);
2913 return findCoefficient(AddRec->getStart(), TargetLoop);
2924 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);
2925 if (!AddRec)
2927 if (AddRec->getLoop() == TargetLoop)
2928 return AddRec->getStart();
2929 return SE->getAddRecExpr(zeroCoefficient(AddRec->getStart(), TargetLoop),
2930 AddRec->getStepRecurrence(*SE),
2931 AddRec->getLoop(),
2932 AddRec->getNoWrapFlags());
2944 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);
2945 if (!AddRec) // create a new addRec
2950 if (AddRec->getLoop() == TargetLoop) {
2951 const SCEV *Sum = SE->getAddExpr(AddRec->getStepRecurrence(*SE), Value);
2953 return AddRec->getStart();
2954 return SE->getAddRecExpr(AddRec->getStart(),
2956 AddRec->getLoop(),
2957 AddRec->getNoWrapFlags());
2959 if (SE->isLoopInvariant(AddRec, TargetLoop))
2960 return SE->getAddRecExpr(AddRec,
2964 return SE->getAddRecExpr(addToCoefficient(AddRec->getStart(),
2966 AddRec->getStepRecurrence(*SE),
2967 AddRec->getLoop(),
2968 AddRec->getNoWrapFlags());