Lines Matching defs:SE

49   ScalarEvolution &SE;
52 SCEVCollectStrides(ScalarEvolution &SE, SmallVectorImpl<const SCEV *> &S)
53 : SE(SE), Strides(S) {}
57 Strides.push_back(AR->getStepRecurrence(SE));
124 ScalarEvolution &SE;
127 ScalarEvolution &SE)
128 : Terms(T), SE(SE) {}
153 Terms.push_back(SE.getMulExpr(Operands));
171 void llvm::collectParametricTerms(ScalarEvolution &SE, const SCEV *Expr,
174 SCEVCollectStrides StrideCollector(SE, Strides);
194 SCEVCollectAddRecMultiplies MulCollector(Terms, SE);
198 static bool findArrayDimensionsRec(ScalarEvolution &SE,
212 Step = SE.getMulExpr(Qs);
222 SCEVDivision::divide(SE, Term, Step, &Q, &R);
235 if (!findArrayDimensionsRec(SE, Terms, Sizes))
258 static const SCEV *removeConstantFactors(ScalarEvolution &SE, const SCEV *T) {
271 return SE.getMulExpr(Factors);
277 void llvm::findArrayDimensions(ScalarEvolution &SE,
308 SCEVDivision::divide(SE, Term, ElementSize, &Q, &R);
317 if (const SCEV *NewT = removeConstantFactors(SE, T))
326 if (NewTerms.empty() || !findArrayDimensionsRec(SE, NewTerms, Sizes)) {
341 void llvm::computeAccessFunctions(ScalarEvolution &SE, const SCEV *Expr,
356 SCEVDivision::divide(SE, Res, Sizes[i], &Q, &R);
448 void llvm::delinearize(ScalarEvolution &SE, const SCEV *Expr,
454 collectParametricTerms(SE, Expr, Terms);
460 findArrayDimensions(SE, Terms, Sizes, ElementSize);
466 computeAccessFunctions(SE, Expr, Subscripts, Sizes);
484 bool llvm::getIndexExpressionsFromGEP(ScalarEvolution &SE,
494 const SCEV *Expr = SE.getSCEV(GEP->getOperand(i));
523 ScalarEvolution *SE, Instruction *Inst, const SCEV *AccessFn,
532 getIndexExpressionsFromGEP(*SE, SrcGEP, Subscripts, Sizes);
547 dyn_cast<SCEVUnknown>(SE->getPointerBase(AccessFn));
563 ScalarEvolution *SE) {
575 const SCEV *AccessFn = SE->getSCEVAtScope(getPointerOperand(&Inst), L);
578 dyn_cast<SCEVUnknown>(SE->getPointerBase(AccessFn));
582 AccessFn = SE->getMinusSCEV(AccessFn, BasePointer);
590 delinearize(*SE, AccessFn, Subscripts, Sizes, SE->getElementSize(&Inst));