Add an extra operand to LABEL nodes which distinguishes between debug, EH, or misc...
[oota-llvm.git] / include / llvm / Type.h
index bd264a0ea0fca2e00356e732d0a3eaceccd44b1b..db177994aeef28415c84d464e21d82e6c964b569 100644 (file)
@@ -2,8 +2,8 @@
 //
 //                     The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
 
@@ -80,11 +80,10 @@ public:
     IntegerTyID,     ///<  7: Arbitrary bit width integers
     FunctionTyID,    ///<  8: Functions
     StructTyID,      ///<  9: Structures
-    PackedStructTyID,///< 10: Packed Structure. This is for bitcode only
-    ArrayTyID,       ///< 11: Arrays
-    PointerTyID,     ///< 12: Pointers
-    OpaqueTyID,      ///< 13: Opaque: type with unknown structure
-    VectorTyID,      ///< 14: SIMD 'packed' format, or other vector type
+    ArrayTyID,       ///< 10: Arrays
+    PointerTyID,     ///< 11: Pointers
+    OpaqueTyID,      ///< 12: Opaque: type with unknown structure
+    VectorTyID,      ///< 13: SIMD 'packed' format, or other vector type
 
     NumTypeIDs,                         // Must remain as last defined ID
     LastPrimitiveTyID = LabelTyID,
@@ -180,6 +179,11 @@ public:
   ///
   bool isInteger() const { return ID == IntegerTyID; } 
 
+  /// isIntOrIntVector - Return true if this is an integer type or a vector of
+  /// integer types.
+  ///
+  bool isIntOrIntVector() const;
+  
   /// isFloatingPoint - Return true if this is one of the two floating point
   /// types
   bool isFloatingPoint() const { return ID == FloatTyID || ID == DoubleTyID ||
@@ -225,8 +229,7 @@ public:
       return true;
     // If it is not something that can have a size (e.g. a function or label),
     // it doesn't have a size.
-    if (ID != StructTyID && ID != ArrayTyID && ID != VectorTyID &&
-        ID != PackedStructTyID)
+    if (ID != StructTyID && ID != ArrayTyID && ID != VectorTyID)
       return false;
     // If it is something that can have a size and it's concrete, it definitely
     // has a size, otherwise we have to try harder to decide.
@@ -240,7 +243,7 @@ public:
   ///
   unsigned getPrimitiveSizeInBits() const;
 
-  /// getForwaredType - Return the type that this type has been resolved to if
+  /// getForwardedType - Return the type that this type has been resolved to if
   /// it has been resolved to anything.  This is used to implement the
   /// union-find algorithm for type resolution, and shouldn't be used by general
   /// purpose clients.