Home | History | Annotate | Download | only in Analysis

Lines Matching full:constantrange

73 #include "llvm/IR/ConstantRange.h"
1434 ConstantRange CR = getUnsignedRange(X);
1620 ConstantRange CR = getSignedRange(X);
1969 ConstantRange::makeNoWrapRegion(Instruction::Add, C, OBO::NoSignedWrap);
1975 ConstantRange::makeNoWrapRegion(Instruction::Add, C,
4185 static Optional<ConstantRange> GetRangeFromMetadata(Value *V) {
4197 ConstantRange
4200 DenseMap<const SCEV *, ConstantRange> &Cache =
4205 DenseMap<const SCEV *, ConstantRange>::iterator I = Cache.find(S);
4210 return setRange(C, SignHint, ConstantRange(C->getAPInt()));
4213 ConstantRange ConservativeResult(BitWidth, /*isFullSet=*/true);
4221 ConstantRange(APInt::getMinValue(BitWidth),
4224 ConservativeResult = ConstantRange(
4230 ConstantRange X = getRange(Add->getOperand(0), SignHint);
4237 ConstantRange X = getRange(Mul->getOperand(0), SignHint);
4244 ConstantRange X = getRange(SMax->getOperand(0), SignHint);
4251 ConstantRange X = getRange(UMax->getOperand(0), SignHint);
4258 ConstantRange X = getRange(UDiv->getLHS(), SignHint);
4259 ConstantRange Y = getRange(UDiv->getRHS(), SignHint);
4265 ConstantRange X = getRange(ZExt->getOperand(), SignHint);
4271 ConstantRange X = getRange(SExt->getOperand(), SignHint);
4277 ConstantRange X = getRange(Trunc->getOperand(), SignHint);
4289 ConstantRange(C->getAPInt(), APInt(BitWidth, 0)));
4302 ConstantRange(APInt(BitWidth, 0),
4306 ConstantRange(APInt::getSignedMinValue(BitWidth),
4317 // Check for overflow. This must be done with ConstantRange arithmetic
4322 ConstantRange MaxBECountRange = getUnsignedRange(MaxBECount);
4323 ConstantRange ZExtMaxBECountRange =
4328 ConstantRange StepSRange = getSignedRange(Step);
4329 ConstantRange SExtStepSRange = StepSRange.sextOrTrunc(BitWidth * 2 + 1);
4331 ConstantRange StartURange = getUnsignedRange(Start);
4332 ConstantRange EndURange =
4336 ConstantRange ZExtStartURange =
4338 ConstantRange ZExtEndURange = EndURange.zextOrTrunc(BitWidth * 2 + 1);
4348 ConservativeResult.intersectWith(ConstantRange(Min, Max + 1));
4351 ConstantRange StartSRange = getSignedRange(Start);
4352 ConstantRange EndSRange =
4355 // Check for signed overflow. This must be done with ConstantRange
4358 ConstantRange SExtStartSRange =
4360 ConstantRange SExtEndSRange = EndSRange.sextOrTrunc(BitWidth * 2 + 1);
4370 ConservativeResult.intersectWith(ConstantRange(Min, Max + 1));
4380 Optional<ConstantRange> MDRange = GetRangeFromMetadata(U->getValue());
4394 ConservativeResult.intersectWith(ConstantRange(Ones, ~Zeros + 1));
4401 ConstantRange(APInt::getSignedMinValue(BitWidth).ashr(NS - 1),
5484 ConstantRange CompRange(
6636 ConstantRange CR = getUnsignedRange(Start);
7273 ConstantRange LHSRange = getSignedRange(LHS);
7274 ConstantRange RHSRange = getSignedRange(RHS);
7284 ConstantRange LHSRange = getSignedRange(LHS);
7285 ConstantRange RHSRange = getSignedRange(RHS);
7295 ConstantRange LHSRange = getUnsignedRange(LHS);
7296 ConstantRange RHSRange = getUnsignedRange(RHS);
7306 ConstantRange LHSRange = getUnsignedRange(LHS);
7307 ConstantRange RHSRange = getUnsignedRange(RHS);
8105 ConstantRange FoundLHSRange =
8106 ConstantRange::makeAllowedICmpRegion(Pred, ConstFoundRHS);
8111 ConstantRange LHSRange = FoundLHSRange.add(ConstantRange(Addend));
8116 ConstantRange SatisfyingLHSRange =
8117 ConstantRange::makeSatisfyingICmpRegion(Pred, ConstRHS);
8366 const SCEV *SCEVAddRecExpr::getNumIterationsInRange(ConstantRange Range,