From 28044088391ab708b5162cd2368a9a1c3cd9e7b5 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Wed, 21 May 2008 23:35:53 +0000 Subject: [PATCH] Add a Type::isSingleValueType method. This will be used by code 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. llvm-svn: 51396 --- include/llvm/Type.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/include/llvm/Type.h b/include/llvm/Type.h index d2e94a43c58..493c8345334 100644 --- a/include/llvm/Type.h +++ b/include/llvm/Type.h @@ -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; }