[llvm-commits] CVS: llvm/include/llvm/Support/ConstantRange.h
Chris Lattner
lattner at cs.uiuc.edu
Mon Mar 29 18:21:01 PST 2004
Changes in directory llvm/include/llvm/Support:
ConstantRange.h updated: 1.6 -> 1.7
---
Log message:
Add some new methods
---
Diffs of the changes: (+25 -0)
Index: llvm/include/llvm/Support/ConstantRange.h
diff -u llvm/include/llvm/Support/ConstantRange.h:1.6 llvm/include/llvm/Support/ConstantRange.h:1.7
--- llvm/include/llvm/Support/ConstantRange.h:1.6 Mon Mar 29 14:42:38 2004
+++ llvm/include/llvm/Support/ConstantRange.h Mon Mar 29 18:20:08 2004
@@ -30,6 +30,7 @@
namespace llvm {
class Constant;
class ConstantIntegral;
+class ConstantInt;
class Type;
class ConstantRange {
@@ -39,6 +40,10 @@
///
ConstantRange(const Type *Ty, bool isFullSet = true);
+ /// Initialize a range to hold the single specified value.
+ ///
+ ConstantRange(Constant *Value);
+
/// Initialize a range of values explicitly... this will assert out if
/// Lower==Upper and Lower != Min or Max for its type, if the two constants
/// have different types, or if the constant are not integral values.
@@ -74,6 +79,10 @@
/// for example: [100, 8)
///
bool isWrappedSet() const;
+
+ /// contains - Return true if the specified value is in the set.
+ ///
+ bool contains(ConstantInt *Val) const;
/// getSingleElement - If this set contains a single element, return it,
/// otherwise return null.
@@ -97,6 +106,10 @@
return !operator==(CR);
}
+ /// subtract - Subtract the specified constant from the endpoints of this
+ /// constant range.
+ ConstantRange subtract(ConstantInt *CI) const;
+
/// intersect - Return the range that results from the intersection of this
/// range with another range. The resultant range is pruned as much as
/// possible, but there may be cases where elements are included that are in
@@ -112,6 +125,18 @@
/// set before.
///
ConstantRange unionWith(const ConstantRange &CR) const;
+
+ /// zeroExtend - Return a new range in the specified integer type, which must
+ /// be strictly larger than the current type. The returned range will
+ /// correspond to the possible range of values if the source range had been
+ /// zero extended.
+ ConstantRange zeroExtend(const Type *Ty) const;
+
+ /// truncate - Return a new range in the specified integer type, which must be
+ /// strictly smaller than the current type. The returned range will
+ /// correspond to the possible range of values if the source range had been
+ /// truncated to the specified type.
+ ConstantRange truncate(const Type *Ty) const;
/// print - Print out the bounds to a stream...
///
More information about the llvm-commits
mailing list