reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
3412 if (Operands.size() == 1) return Operands[0]; 3412 if (Operands.size() == 1) return Operands[0]; 3414 Type *ETy = getEffectiveSCEVType(Operands[0]->getType()); 3415 for (unsigned i = 1, e = Operands.size(); i != e; ++i) 3416 assert(getEffectiveSCEVType(Operands[i]->getType()) == ETy && 3418 for (unsigned i = 0, e = Operands.size(); i != e; ++i) 3419 assert(isLoopInvariant(Operands[i], L) && 3423 if (Operands.back()->isZero()) { 3424 Operands.pop_back(); 3425 return getAddRecExpr(Operands, L, SCEV::FlagAnyWrap); // {X,+,0} --> X 3434 Flags = StrengthenNoWrapFlags(this, scAddRecExpr, Operands, Flags); 3437 if (const SCEVAddRecExpr *NestedAR = dyn_cast<SCEVAddRecExpr>(Operands[0])) { 3445 Operands[0] = NestedAR->getStart(); 3450 Operands, [&](const SCEV *Op) { return isLoopInvariant(Op, L); }); 3460 NestedOperands[0] = getAddRecExpr(Operands, L, OuterFlags); 3476 Operands[0] = NestedAR; 3482 return getOrCreateAddRecExpr(Operands, L, Flags);