Lines Matching refs:SE
51 ScalarEvolution &SE; member
54 SCEVCollectStrides(ScalarEvolution &SE, SmallVectorImpl<const SCEV *> &S) in SCEVCollectStrides()
55 : SE(SE), Strides(S) {} in SCEVCollectStrides()
59 Strides.push_back(AR->getStepRecurrence(SE)); in follow()
126 ScalarEvolution &SE; member
129 ScalarEvolution &SE) in SCEVCollectAddRecMultiplies()
130 : Terms(T), SE(SE) {} in SCEVCollectAddRecMultiplies()
155 Terms.push_back(SE.getMulExpr(Operands)); in follow()
173 void llvm::collectParametricTerms(ScalarEvolution &SE, const SCEV *Expr, in collectParametricTerms() argument
176 SCEVCollectStrides StrideCollector(SE, Strides); in collectParametricTerms()
196 SCEVCollectAddRecMultiplies MulCollector(Terms, SE); in collectParametricTerms()
200 static bool findArrayDimensionsRec(ScalarEvolution &SE, in findArrayDimensionsRec() argument
214 Step = SE.getMulExpr(Qs); in findArrayDimensionsRec()
224 SCEVDivision::divide(SE, Term, Step, &Q, &R); in findArrayDimensionsRec()
237 if (!findArrayDimensionsRec(SE, Terms, Sizes)) in findArrayDimensionsRec()
260 static const SCEV *removeConstantFactors(ScalarEvolution &SE, const SCEV *T) { in removeConstantFactors() argument
273 return SE.getMulExpr(Factors); in removeConstantFactors()
279 void llvm::findArrayDimensions(ScalarEvolution &SE, in findArrayDimensions() argument
310 SCEVDivision::divide(SE, Term, ElementSize, &Q, &R); in findArrayDimensions()
319 if (const SCEV *NewT = removeConstantFactors(SE, T)) in findArrayDimensions()
328 if (NewTerms.empty() || !findArrayDimensionsRec(SE, NewTerms, Sizes)) { in findArrayDimensions()
343 void llvm::computeAccessFunctions(ScalarEvolution &SE, const SCEV *Expr, in computeAccessFunctions() argument
358 SCEVDivision::divide(SE, Res, Sizes[i], &Q, &R); in computeAccessFunctions()
450 void llvm::delinearize(ScalarEvolution &SE, const SCEV *Expr, in delinearize() argument
456 collectParametricTerms(SE, Expr, Terms); in delinearize()
462 findArrayDimensions(SE, Terms, Sizes, ElementSize); in delinearize()
468 computeAccessFunctions(SE, Expr, Subscripts, Sizes); in delinearize()
486 bool llvm::getIndexExpressionsFromGEP(ScalarEvolution &SE, in getIndexExpressionsFromGEP() argument
496 const SCEV *Expr = SE.getSCEV(GEP->getOperand(i)); in getIndexExpressionsFromGEP()
525 ScalarEvolution *SE, Instruction *Inst, const SCEV *AccessFn, in tryDelinearizeFixedSizeImpl() argument
534 getIndexExpressionsFromGEP(*SE, SrcGEP, Subscripts, Sizes); in tryDelinearizeFixedSizeImpl()
549 dyn_cast<SCEVUnknown>(SE->getPointerBase(AccessFn)); in tryDelinearizeFixedSizeImpl()
569 ScalarEvolution *SE; member in __anona8bc22150611::Delinearization
583 ScalarEvolution *SE) { in printDelinearization() argument
595 const SCEV *AccessFn = SE->getSCEVAtScope(getPointerOperand(&Inst), L); in printDelinearization()
598 dyn_cast<SCEVUnknown>(SE->getPointerBase(AccessFn)); in printDelinearization()
602 AccessFn = SE->getMinusSCEV(AccessFn, BasePointer); in printDelinearization()
610 delinearize(*SE, AccessFn, Subscripts, Sizes, SE->getElementSize(&Inst)); in printDelinearization()
642 SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE(); in runOnFunction()
648 printDelinearization(O, F, LI, SE); in print()