Home | History | Annotate | Download | only in Analysis

Lines Matching refs:Scale

174 /// Returns the scale and offset values as APInts and return V as a Value*, and
182 const Value *V, APInt &Scale, APInt &Offset, unsigned &ZExtBits,
189 Scale = 1;
201 assert(Scale == 0 && "Constant values don't have a scale");
208 // If we've been called recursively then Offset and Scale will be wider
217 Scale = 1;
225 Scale = 1;
231 V = GetLinearExpression(BOp->getOperand(0), Scale, Offset, ZExtBits,
236 V = GetLinearExpression(BOp->getOperand(0), Scale, Offset, ZExtBits,
241 V = GetLinearExpression(BOp->getOperand(0), Scale, Offset, ZExtBits,
244 Scale *= RHS;
247 V = GetLinearExpression(BOp->getOperand(0), Scale, Offset, ZExtBits,
250 Scale <<= RHS.getLimitedValue();
274 GetLinearExpression(CastOp, Scale, Offset, ZExtBits, SExtBits, DL,
292 Scale = 1;
305 Scale = 1;
317 Scale = 1;
325 /// The scaled symbolic offsets (represented by pairs of a Value* and a scale
412 uint64_t Scale = DL.getTypeAllocSize(*GTI);
428 // The GEP index scale ("Scale") scales C1*V+C2, yielding (C1*V+C2)*Scale.
429 // This gives us an aggregate computation of (C1*Scale)*V + C2*Scale.
430 BaseOffs += IndexOffset.getSExtValue() * Scale;
431 Scale *= IndexScale.getSExtValue();
434 // scale into it. For example, we want to handle:
440 Scale += VarIndices[i].Scale;
446 // Make sure that we have a scale that makes sense for this target's
449 Scale <<= ShiftBits;
450 Scale = (int64_t)Scale >> ShiftBits;
453 if (Scale) {
455 static_cast<int64_t>(Scale)};
1069 // don't need std::abs here (even if the scale's negative) as we'll
1071 Modulo |= (uint64_t)GEP1VariableIndices[i].Scale;
1092 int64_t Scale = GEP1VariableIndices[i].Scale;
1094 (SignKnownZero && Scale >= 0) || (SignKnownOne && Scale < 0);
1479 int64_t Scale = Src[i].Scale;
1488 // If we found it, subtract off Scale V's from the entry in Dest. If it
1490 if (Dest[j].Scale != Scale)
1491 Dest[j].Scale -= Scale;
1494 Scale = 0;
1499 if (Scale) {
1500 VariableGEPIndex Entry = {V, ZExtBits, SExtBits, -Scale};
1517 Var0.Scale != -Var1.Scale)
1549 uint64_t MinDiffBytes = MinDiff.getZExtValue() * std::abs(Var0.Scale);