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