Changes in directory llvm/include/llvm:
Constants.h updated: 1.103 -> 1.104 --- Log message: For PR950: http://llvm.org/PR950 : Remove the getMaxValue and getMinValue functions from ConstantIntegral. They don't make sense for a signless type. Also, for isMaxValue and isMinValue, have the caller provided the signedness rather than obtaining it from the constant's type. --- Diffs of the changes: (+8 -16) Constants.h | 24 ++++++++---------------- 1 files changed, 8 insertions(+), 16 deletions(-) Index: llvm/include/llvm/Constants.h diff -u llvm/include/llvm/Constants.h:1.103 llvm/include/llvm/Constants.h:1.104 --- llvm/include/llvm/Constants.h:1.103 Tue Dec 5 13:14:13 2006 +++ llvm/include/llvm/Constants.h Wed Dec 6 14:30:17 2006 @@ -75,14 +75,14 @@ /// constant's type. /// @returns true if the constant's value is maximal. /// @brief Determine if the value is maximal. - virtual bool isMaxValue() const = 0; + virtual bool isMaxValue(bool isSigned) const = 0; /// This function is implemented by subclasses and will return true iff this /// constant represents the smallest value that may be represented by this /// constant's type. /// @returns true if the constant's value is minimal /// @brief Determine if the value is minimal. - virtual bool isMinValue() const = 0; + virtual bool isMinValue(bool isSigned) const = 0; /// This function is implemented by subclasses and will return true iff every /// bit in this constant is set to true. @@ -90,14 +90,6 @@ /// @brief Determine if the value is all ones. virtual bool isAllOnesValue() const = 0; - /// @returns the largest value for an integer constant of the given type - /// @brief Get the maximal value - static ConstantIntegral *getMaxValue(const Type *Ty); - - /// @returns the smallest value for an integer constant of the given type - /// @brief Get the minimal value - static ConstantIntegral *getMinValue(const Type *Ty); - /// @returns the value for an integer constant of the given type that has all /// its bits set to true. /// @brief Get the all ones value @@ -147,8 +139,8 @@ /// @see ConstantIntegral for details /// @brief Implement overrides virtual bool isNullValue() const { return getValue() == false; } - virtual bool isMaxValue() const { return getValue() == true; } - virtual bool isMinValue() const { return getValue() == false; } + virtual bool isMaxValue(bool isSigned) const { return getValue() == true; } + virtual bool isMinValue(bool isSigned) const { return getValue() == false; } virtual bool isAllOnesValue() const { return getValue() == true; } /// @brief Methods to support type inquiry through isa, cast, and dyn_cast: @@ -208,8 +200,8 @@ /// by this type. /// @see ConstantIntegeral /// @brief Override implementation - virtual bool isMaxValue() const { - if (getType()->isSigned()) { + virtual bool isMaxValue(bool isSigned) const { + if (isSigned) { int64_t V = getSExtValue(); if (V < 0) return false; // Be careful about wrap-around on 'long's ++V; @@ -222,8 +214,8 @@ /// this type. /// @see ConstantIntegral /// @brief Override implementation - virtual bool isMinValue() const { - if (getType()->isSigned()) { + virtual bool isMinValue(bool isSigned) const { + if (isSigned) { int64_t V = getSExtValue(); if (V > 0) return false; // Be careful about wrap-around on 'long's --V; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits