Add a Type::isSingleValueType method. This will be used by code
authorDan Gohman <gohman@apple.com>
Wed, 21 May 2008 23:35:53 +0000 (23:35 +0000)
committerDan Gohman <gohman@apple.com>
Wed, 21 May 2008 23:35:53 +0000 (23:35 +0000)
that currently uses Type::isFirstClassType and depends on it
returning false for struct or array types.

This commit doesn't change the behavior of Type::isFirstClassType.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51396 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Type.h

index d2e94a43c586177f53d49d41668455ef5feafc8d..493c8345334bfaff9ae78cb7f49fa78760e1c512 100644 (file)
@@ -212,9 +212,19 @@ public:
   inline bool isPrimitiveType() const { return ID <= LastPrimitiveTyID; }
   inline bool isDerivedType()   const { return ID >= FirstDerivedTyID; }
 
-  /// isFirstClassType - Return true if the value is holdable in a register.
+  /// isFirstClassType - Return true if the type is "first class", meaning it
+  /// is a valid type for a Value.
   ///
   inline bool isFirstClassType() const {
+    // Coming soon: first-class struct and array types...
+    return isSingleValueType();
+  }
+
+  /// isSingleValueType - Return true if the type is a valid type for a
+  /// virtual register in codegen.  This includes all first-class types
+  /// except struct and array types.
+  ///
+  inline bool isSingleValueType() const {
     return (ID != VoidTyID && ID <= LastPrimitiveTyID) ||
             ID == IntegerTyID || ID == PointerTyID || ID == VectorTyID;
   }