Lines Matching refs:SE

125   ScalarEvolution &SE;  member in SCEVValidator
129 SCEVValidator(const Region *R, Loop *Scope, ScalarEvolution &SE, in SCEVValidator() argument
131 : R(R), Scope(Scope), SE(SE), ILS(ILS) {} in SCEVValidator()
226 ValidatorResult Recurrence = visit(Expr->getStepRecurrence(SE)); in visitAddRecExpr()
263 const SCEV *ZeroStartExpr = SE.getAddRecExpr( in visitAddRecExpr()
264 SE.getConstant(Expr->getStart()->getType(), 0), in visitAddRecExpr()
265 Expr->getStepRecurrence(SE), Expr->getLoop(), Expr->getNoWrapFlags()); in visitAddRecExpr()
408 auto *Dividend = SE.getSCEV(SDiv->getOperand(0)); in visitSDivInstruction()
409 auto *Divisor = SE.getSCEV(SDiv->getOperand(1)); in visitSDivInstruction()
423 auto *DividendSCEV = SE.getSCEV(Dividend); in visitSRemInstruction()
443 return visit(SE.getSCEVAtScope(I->getOperand(0), Scope)); in visitUnknown()
543 ScalarEvolution &SE; member in SCEVFindValues
547 SCEVFindValues(ScalarEvolution &SE, SetVector<Value *> &Values) in SCEVFindValues() argument
548 : SE(SE), Values(Values) {} in SCEVFindValues()
561 auto *Dividend = SE.getSCEV(Inst->getOperand(1)); in follow()
565 auto *Divisor = SE.getSCEV(Inst->getOperand(0)); in follow()
566 SCEVFindValues FindValues(SE, Values); in follow()
576 void polly::findValues(const SCEV *Expr, ScalarEvolution &SE, in findValues() argument
578 SCEVFindValues FindValues(SE, Values); in findValues()
593 ScalarEvolution &SE, InvariantLoadsSetTy *ILS) { in isAffineExpr() argument
597 SCEVValidator Validator(R, Scope, SE, ILS); in isAffineExpr()
617 ScalarEvolution &SE, ParameterSetTy &Params) { in isAffineExpr() argument
618 auto *E = SE.getSCEV(V); in isAffineExpr()
622 SCEVValidator Validator(R, Scope, SE, nullptr); in isAffineExpr()
634 ScalarEvolution &SE, ParameterSetTy &Params, in isAffineConstraint() argument
637 return isAffineConstraint(ICmp->getOperand(0), R, Scope, SE, Params, in isAffineConstraint()
639 isAffineConstraint(ICmp->getOperand(1), R, Scope, SE, Params, true); in isAffineConstraint()
643 return isAffineConstraint(BinOp->getOperand(0), R, Scope, SE, Params, in isAffineConstraint()
645 isAffineConstraint(BinOp->getOperand(1), R, Scope, SE, Params, in isAffineConstraint()
653 return ::isAffineExpr(V, R, Scope, SE, Params); in isAffineConstraint()
658 ScalarEvolution &SE) { in getParamsInAffineExpr() argument
663 SCEVValidator Validator(R, Scope, SE, &ILS); in getParamsInAffineExpr()
671 polly::extractConstantFactor(const SCEV *S, ScalarEvolution &SE) { in extractConstantFactor() argument
672 auto *ConstPart = cast<SCEVConstant>(SE.getConstant(S->getType(), 1)); in extractConstantFactor()
675 return std::make_pair(Constant, SE.getConstant(S->getType(), 1)); in extractConstantFactor()
681 auto StepPair = extractConstantFactor(AddRec->getStepRecurrence(SE), SE); in extractConstantFactor()
683 SE.getAddRecExpr(StartExpr, StepPair.second, AddRec->getLoop(), in extractConstantFactor()
692 auto Op0Pair = extractConstantFactor(Add->getOperand(0), SE); in extractConstantFactor()
694 if (SE.isKnownNegative(Factor)) { in extractConstantFactor()
695 Factor = cast<SCEVConstant>(SE.getNegativeSCEV(Factor)); in extractConstantFactor()
696 LeftOvers.push_back(SE.getNegativeSCEV(Op0Pair.second)); in extractConstantFactor()
702 auto OpUPair = extractConstantFactor(Add->getOperand(u), SE); in extractConstantFactor()
706 else if (Factor == SE.getNegativeSCEV(OpUPair.first)) in extractConstantFactor()
707 LeftOvers.push_back(SE.getNegativeSCEV(OpUPair.second)); in extractConstantFactor()
712 auto *NewAdd = SE.getAddExpr(LeftOvers, Add->getNoWrapFlags()); in extractConstantFactor()
723 ConstPart = cast<SCEVConstant>(SE.getMulExpr(ConstPart, Op)); in extractConstantFactor()
727 return std::make_pair(ConstPart, SE.getMulExpr(LeftOvers)); in extractConstantFactor()
731 ScalarEvolution &SE, in tryForwardThroughPHI() argument
751 return SE.getSCEV(Final); in tryForwardThroughPHI()