Lines Matching defs:Ops

209 /// unnecessary; in its place, just signed-divide Ops[i] by the scale and
309 static void SimplifyAddOperands(SmallVectorImpl<const SCEV *> &Ops,
313 for (unsigned i = Ops.size(); i > 0 && isa<SCEVAddRecExpr>(Ops[i-1]); --i)
315 // Group Ops into non-addrecs and addrecs.
316 SmallVector<const SCEV *, 8> NoAddRecs(Ops.begin(), Ops.end() - NumAddRecs);
317 SmallVector<const SCEV *, 8> AddRecs(Ops.end() - NumAddRecs, Ops.end());
324 Ops.clear();
326 Ops.append(Add->op_begin(), Add->op_end());
328 Ops.push_back(Sum);
330 Ops.append(AddRecs.begin(), AddRecs.end());
338 static void SplitAddRecs(SmallVectorImpl<const SCEV *> &Ops,
343 for (unsigned i = 0, e = Ops.size(); i != e; ++i)
344 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Ops[i])) {
354 Ops[i] = Zero;
355 Ops.append(Add->op_begin(), Add->op_end());
358 Ops[i] = Start;
363 Ops.append(AddRecs.begin(), AddRecs.end());
365 SimplifyAddOperands(Ops, Ty, SE);
403 SmallVector<const SCEV *, 8> Ops(op_begin, op_end);
408 SplitAddRecs(Ops, Ty, SE);
423 for (unsigned i = 0, e = Ops.size(); i != e; ++i) {
424 const SCEV *Op = Ops[i];
435 NewOps.push_back(Ops[i]);
438 // If we made any changes, update Ops.
440 Ops = NewOps;
441 SimplifyAddOperands(Ops, Ty, SE);
463 if (Ops.empty()) break;
464 if (const SCEVConstant *C = dyn_cast<SCEVConstant>(Ops[0]))
473 Ops[0] =
482 for (unsigned i = 0, e = Ops.size(); i != e; ++i)
483 if (const SCEVUnknown *U = dyn_cast<SCEVUnknown>(Ops[i])) {
490 Ops[i] = SE.getConstant(Ty, 0);
525 Value *Idx = expandCodeFor(SE.getAddExpr(Ops), Ty);
610 Ops.push_back(SE.getUnknown(GEP));
617 return expand(SE.getAddExpr(Ops));