aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2008-06-06 12:49:32 +0000
committerDuncan Sands <baldrick@free.fr>2008-06-06 12:49:32 +0000
commit3b3adbb7456411957681e590b29697b3af307dd1 (patch)
treee3ddd8b907f36c0dfbe60429dc33b3b619f24fb1 /include
parent83ec4b6711980242ef3c55a4fa36b2d7a39c1bfb (diff)
downloadexternal_llvm-3b3adbb7456411957681e590b29697b3af307dd1.zip
external_llvm-3b3adbb7456411957681e590b29697b3af307dd1.tar.gz
external_llvm-3b3adbb7456411957681e590b29697b3af307dd1.tar.bz2
Tighten up the abstraction slightly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52045 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/CodeGen/ValueTypes.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/include/llvm/CodeGen/ValueTypes.h b/include/llvm/CodeGen/ValueTypes.h
index 1469f81..16df853 100644
--- a/include/llvm/CodeGen/ValueTypes.h
+++ b/include/llvm/CodeGen/ValueTypes.h
@@ -25,6 +25,7 @@ namespace llvm {
class Type;
struct MVT { // MVT = Machine Value Type
+ public:
enum SimpleValueType {
// If you change this numbering, you must change the values in
@@ -107,6 +108,8 @@ namespace llvm {
/// | | Vector element |
///
+ private:
+
static const int SimpleTypeBits = 8;
static const int PrecisionBits = 8;
static const int VectorBits = 32 - SimpleTypeBits - PrecisionBits;
@@ -125,6 +128,8 @@ namespace llvm {
uint32_t V;
+ public:
+
MVT() {}
MVT(SimpleValueType S) { V = S; }
inline bool operator== (const MVT VT) const { return V == VT.V; }
@@ -194,9 +199,8 @@ namespace llvm {
if (NumElements == 2) return v2f64;
break;
}
- // Set the length with the top bit forced to zero (needed by the verifier).
MVT Result;
- Result.V = VT.V | (((NumElements + 1) << (33 - VectorBits)) >> 1);
+ Result.V = VT.V | ((NumElements + 1) << (32 - VectorBits));
assert(Result.getVectorElementType() == VT &&
"Bad vector element type!");
assert(Result.getVectorNumElements() == NumElements &&
@@ -406,6 +410,9 @@ namespace llvm {
/// This returns all pointers as iPTR. If HandleUnknown is true, unknown
/// types are returned as Other, otherwise they are invalid.
static MVT getMVT(const Type *Ty, bool HandleUnknown = false);
+
+ /// getRawBits - Represent the type as a bunch of bits.
+ uint32_t getRawBits() const { return V; }
};
} // End llvm namespace