From bee9e35ba25c0f1c4fba7e4b01fef29dbfd859f3 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Mon, 6 Jul 2009 23:44:32 +0000 Subject: [PATCH] Add new ValueType for metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74882 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/ValueTypes.h | 3 +++ include/llvm/CodeGen/ValueTypes.td | 4 +++- utils/TableGen/CodeGenTarget.cpp | 1 + utils/TableGen/IntrinsicEmitter.cpp | 2 ++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/llvm/CodeGen/ValueTypes.h b/include/llvm/CodeGen/ValueTypes.h index e661c58940e..f7e28bebfd6 100644 --- a/include/llvm/CodeGen/ValueTypes.h +++ b/include/llvm/CodeGen/ValueTypes.h @@ -83,6 +83,9 @@ namespace llvm { // This value must be a multiple of 32. MAX_ALLOWED_VALUETYPE = 64, + // Metadata - This is MDNode or MDString. + Metadata = 251, + // iPTRAny - An int value the size of the pointer of the current // target to any address space. This must only be used internal to // tblgen. Other than for overloading, we treat iPTRAny the same as iPTR. diff --git a/include/llvm/CodeGen/ValueTypes.td b/include/llvm/CodeGen/ValueTypes.td index 7f6728bb678..76829344d24 100644 --- a/include/llvm/CodeGen/ValueTypes.td +++ b/include/llvm/CodeGen/ValueTypes.td @@ -57,7 +57,9 @@ def v4f32 : ValueType<128, 32>; // 4 x f32 vector value def v8f32 : ValueType<256, 33>; // 8 x f32 vector value def v2f64 : ValueType<128, 34>; // 2 x f64 vector value def v4f64 : ValueType<256, 35>; // 4 x f64 vector value - + +def MetadataVT: ValueType<0, 251>; // Metadata + // Pseudo valuetype mapped to the current pointer size to any address space. // Should only be used in TableGen. def iPTRAny : ValueType<0, 252>; diff --git a/utils/TableGen/CodeGenTarget.cpp b/utils/TableGen/CodeGenTarget.cpp index c17cd0eef2d..c449660c429 100644 --- a/utils/TableGen/CodeGenTarget.cpp +++ b/utils/TableGen/CodeGenTarget.cpp @@ -118,6 +118,7 @@ std::string llvm::getEnumName(MVT::SimpleValueType T) { case MVT::v4f64: return "MVT::v4f64"; case MVT::v3i32: return "MVT::v3i32"; case MVT::v3f32: return "MVT::v3f32"; + case MVT::Metadata: return "MVT::Metadata"; case MVT::iPTR: return "MVT::iPTR"; case MVT::iPTRAny: return "MVT::iPTRAny"; default: assert(0 && "ILLEGAL VALUE TYPE!"); return ""; diff --git a/utils/TableGen/IntrinsicEmitter.cpp b/utils/TableGen/IntrinsicEmitter.cpp index 36768316bc0..f4157bb4609 100644 --- a/utils/TableGen/IntrinsicEmitter.cpp +++ b/utils/TableGen/IntrinsicEmitter.cpp @@ -159,6 +159,8 @@ static void EmitTypeForValueType(raw_ostream &OS, MVT::SimpleValueType VT) { OS << "Type::PPC_FP128Ty"; } else if (VT == MVT::isVoid) { OS << "Type::VoidTy"; + } else if (VT == MVT::Metadata) { + OS << "Type::MetadataTy"; } else { assert(false && "Unsupported ValueType!"); } -- 2.34.1