• Home
  • Raw
  • Download

Lines Matching refs:SE

48     ScalarEvolution  *SE;  member in __anon76bce2250111::SimplifyIndvar
56 SimplifyIndvar(Loop *Loop, ScalarEvolution *SE, LPPassManager *LPM, in SimplifyIndvar() argument
60 SE(SE), in SimplifyIndvar()
114 assert(SE->isSCEVable(IVSrc->getType()) && "Expect SCEVable IV operand"); in foldIVUser()
126 FoldedExpr = SE->getUDivExpr(SE->getSCEV(IVSrc), SE->getSCEV(D)); in foldIVUser()
129 if (!SE->isSCEVable(UseInst->getType())) in foldIVUser()
133 if (SE->getSCEV(UseInst) != FoldedExpr) in foldIVUser()
140 assert(SE->getSCEV(UseInst) == FoldedExpr && "bad SCEV with folded oper"); in foldIVUser()
162 const SCEV *S = SE->getSCEV(ICmp->getOperand(IVOperIdx)); in eliminateIVComparison()
163 const SCEV *X = SE->getSCEV(ICmp->getOperand(1 - IVOperIdx)); in eliminateIVComparison()
167 S = SE->getSCEVAtScope(S, ICmpLoop); in eliminateIVComparison()
168 X = SE->getSCEVAtScope(X, ICmpLoop); in eliminateIVComparison()
172 if (SE->isKnownPredicate(Pred, S, X)) in eliminateIVComparison()
174 else if (SE->isKnownPredicate(ICmpInst::getInversePredicate(Pred), S, X)) in eliminateIVComparison()
196 const SCEV *S = SE->getSCEV(Rem->getOperand(0)); in eliminateIVRemainder()
197 const SCEV *X = SE->getSCEV(Rem->getOperand(1)); in eliminateIVRemainder()
201 S = SE->getSCEVAtScope(S, ICmpLoop); in eliminateIVRemainder()
202 X = SE->getSCEVAtScope(X, ICmpLoop); in eliminateIVRemainder()
205 if ((!IsSigned || SE->isKnownNonNegative(S)) && in eliminateIVRemainder()
206 SE->isKnownPredicate(IsSigned ? ICmpInst::ICMP_SLT : ICmpInst::ICMP_ULT, in eliminateIVRemainder()
212 SE->getMinusSCEV(S, SE->getConstant(S->getType(), 1)); in eliminateIVRemainder()
213 if (IsSigned && !SE->isKnownNonNegative(LessOne)) in eliminateIVRemainder()
216 if (!SE->isKnownPredicate(IsSigned ? in eliminateIVRemainder()
254 if (!SE->isSCEVable(UseInst->getType()) || in eliminateIVUser()
256 (SE->getSCEV(UseInst) != SE->getSCEV(IVOperand))) in eliminateIVUser()
294 static bool isSimpleIVUser(Instruction *I, const Loop *L, ScalarEvolution *SE) { in isSimpleIVUser() argument
295 if (!SE->isSCEVable(I->getType())) in isSimpleIVUser()
299 const SCEV *S = SE->getSCEV(I); in isSimpleIVUser()
322 if (!SE->isSCEVable(CurrIV->getType())) in simplifyUsers()
363 if (isSimpleIVUser(UseOper.first, L, SE)) { in simplifyUsers()
375 bool simplifyUsersOfIV(PHINode *CurrIV, ScalarEvolution *SE, LPPassManager *LPM, in simplifyUsersOfIV() argument
379 SimplifyIndvar SIV(LI->getLoopFor(CurrIV->getParent()), SE, LPM, Dead); in simplifyUsersOfIV()
386 bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, LPPassManager *LPM, in simplifyLoopIVs() argument
390 Changed |= simplifyUsersOfIV(cast<PHINode>(I), SE, LPM, Dead); in simplifyLoopIVs()