aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/Type.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/Type.h')
-rw-r--r--include/llvm/Type.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/include/llvm/Type.h b/include/llvm/Type.h
index d2e94a43c5..493c834533 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;
}