reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

include/llvm/IR/ConstantRange.h
  159   const APInt &getLower() const { return Lower; }
  165   uint32_t getBitWidth() const { return Lower.getBitWidth(); }
  208     if (Upper == Lower + 1)
  209       return &Lower;
  216     if (Lower == Upper + 1)
  250     return Lower == CR.Lower && Upper == CR.Upper;
  250     return Lower == CR.Lower && Upper == CR.Upper;
lib/IR/ConstantRange.cpp
   44       Upper(Lower) {}
   47     : Lower(std::move(V)), Upper(Lower + 1) {}
   51   assert(Lower.getBitWidth() == Upper.getBitWidth() &&
   53   assert((Lower != Upper || (Lower.isMaxValue() || Lower.isMinValue())) &&
   53   assert((Lower != Upper || (Lower.isMaxValue() || Lower.isMinValue())) &&
   53   assert((Lower != Upper || (Lower.isMaxValue() || Lower.isMinValue())) &&
  305   return Lower == Upper && Lower.isMaxValue();
  305   return Lower == Upper && Lower.isMaxValue();
  309   return Lower == Upper && Lower.isMinValue();
  309   return Lower == Upper && Lower.isMinValue();
  313   return Lower.ugt(Upper) && !Upper.isNullValue();
  317   return Lower.ugt(Upper);
  321   return Lower.sgt(Upper) && !Upper.isMinSignedValue();
  325   return Lower.sgt(Upper);
  335   return (Upper - Lower).ult(Other.Upper - Other.Lower);
  335   return (Upper - Lower).ult(Other.Upper - Other.Lower);
  346   return (Upper - Lower).ugt(MaxSize);
  361   return !isSignWrappedSet() && Lower.isNonNegative();
  389   if (Lower == Upper)
  393     return Lower.ule(V) && V.ult(Upper);
  394   return Lower.ule(V) || V.ult(Upper);
  405     return Lower.ule(Other.getLower()) && Other.getUpper().ule(Upper);
  410            Lower.ule(Other.getLower());
  412   return Other.getUpper().ule(Upper) && Lower.ule(Other.getLower());
  418   if (Lower == Upper)
  420   return ConstantRange(Lower - Val, Upper - Val);
  460     if (Lower.ult(CR.Lower)) {
  460     if (Lower.ult(CR.Lower)) {
  463       if (Upper.ule(CR.Lower))
  469         return ConstantRange(CR.Lower, Upper);
  482     if (Lower.ult(CR.Upper))
  483       return ConstantRange(Lower, CR.Upper);
  491     if (CR.Lower.ult(Upper)) {
  499       if (CR.Upper.ule(Lower))
  500         return ConstantRange(CR.Lower, Upper);
  506     if (CR.Lower.ult(Lower)) {
  506     if (CR.Lower.ult(Lower)) {
  509       if (CR.Upper.ule(Lower))
  514       return ConstantRange(Lower, CR.Upper);
  525     if (CR.Lower.ult(Upper))
  530     if (CR.Lower.ult(Lower))
  530     if (CR.Lower.ult(Lower))
  531       return ConstantRange(Lower, CR.Upper);
  537   if (CR.Upper.ule(Lower)) {
  540     if (CR.Lower.ult(Lower))
  540     if (CR.Lower.ult(Lower))
  545     return ConstantRange(CR.Lower, Upper);
  570     if (CR.Upper.ult(Lower) || Upper.ult(CR.Lower))
  570     if (CR.Upper.ult(Lower) || Upper.ult(CR.Lower))
  572           ConstantRange(Lower, CR.Upper), ConstantRange(CR.Lower, Upper), Type);
  572           ConstantRange(Lower, CR.Upper), ConstantRange(CR.Lower, Upper), Type);
  574     APInt L = CR.Lower.ult(Lower) ? CR.Lower : Lower;
  574     APInt L = CR.Lower.ult(Lower) ? CR.Lower : Lower;
  574     APInt L = CR.Lower.ult(Lower) ? CR.Lower : Lower;
  574     APInt L = CR.Lower.ult(Lower) ? CR.Lower : Lower;
  586     if (CR.Upper.ule(Upper) || CR.Lower.uge(Lower))
  586     if (CR.Upper.ule(Upper) || CR.Lower.uge(Lower))
  591     if (CR.Lower.ule(Upper) && Lower.ule(CR.Upper))
  591     if (CR.Lower.ule(Upper) && Lower.ule(CR.Upper))
  599     if (Upper.ult(CR.Lower) && CR.Upper.ult(Lower))
  599     if (Upper.ult(CR.Lower) && CR.Upper.ult(Lower))
  601           ConstantRange(Lower, CR.Upper), ConstantRange(CR.Lower, Upper), Type);
  601           ConstantRange(Lower, CR.Upper), ConstantRange(CR.Lower, Upper), Type);
  605     if (Upper.ult(CR.Lower) && Lower.ule(CR.Upper))
  605     if (Upper.ult(CR.Lower) && Lower.ule(CR.Upper))
  606       return ConstantRange(CR.Lower, Upper);
  610     assert(CR.Lower.ule(Upper) && CR.Upper.ult(Lower) &&
  610     assert(CR.Lower.ule(Upper) && CR.Upper.ult(Lower) &&
  612     return ConstantRange(Lower, CR.Upper);
  617   if (CR.Lower.ule(Upper) || Lower.ule(CR.Upper))
  617   if (CR.Lower.ule(Upper) || Lower.ule(CR.Upper))
  620   APInt L = CR.Lower.ult(Lower) ? CR.Lower : Lower;
  620   APInt L = CR.Lower.ult(Lower) ? CR.Lower : Lower;
  620   APInt L = CR.Lower.ult(Lower) ? CR.Lower : Lower;
  620   APInt L = CR.Lower.ult(Lower) ? CR.Lower : Lower;
  678       LowerExt = Lower.zext(DstTySize);
  683   return ConstantRange(Lower.zext(DstTySize), Upper.zext(DstTySize));
  694     return ConstantRange(Lower.sext(DstTySize), Upper.zext(DstTySize));
  701   return ConstantRange(Lower.sext(DstTySize), Upper.sext(DstTySize));
  711   APInt LowerDiv(Lower), UpperDiv(Upper);
 1060     PosRes = ConstantRange(PosL.Lower.sdiv(PosR.Upper - 1),
 1061                            (PosL.Upper - 1).sdiv(PosR.Lower) + 1);
 1070     APInt Lo = (NegL.Upper - 1).sdiv(NegR.Lower);
 1071     if (NegL.Lower.isMinSignedValue() && NegR.Upper.isNullValue()) {
 1074       if (!NegR.Lower.isAllOnesValue()) {
 1076         if (RHS.Lower.isAllOnesValue())
 1084             ConstantRange(Lo, NegL.Lower.sdiv(AdjNegRUpper - 1) + 1));
 1093           AdjNegLLower = Lower;
 1096           AdjNegLLower = NegL.Lower + 1;
 1104           ConstantRange(std::move(Lo), NegL.Lower.sdiv(NegR.Upper - 1) + 1));
 1112                            PosL.Lower.sdiv(NegR.Lower) + 1);
 1112                            PosL.Lower.sdiv(NegR.Lower) + 1);
 1117         ConstantRange(NegL.Lower.sdiv(PosR.Lower),
 1117         ConstantRange(NegL.Lower.sdiv(PosR.Lower),
 1333   return ConstantRange(Upper, Lower);
 1343     if (Upper.isStrictlyPositive() || !Lower.isStrictlyPositive())
 1346       Lo = APIntOps::umin(Lower, -Upper + 1);
 1485     OS << "[" << Lower << "," << Upper << ")";