From: Benjamin Kramer Date: Thu, 9 Feb 2012 12:35:37 +0000 (+0000) Subject: Store just the SimpleValueType in the generated VT tables for each register class... X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2c6ae095b8a944c8355377498b9ad11bb94af2d5;p=oota-llvm.git Store just the SimpleValueType in the generated VT tables for each register class, eliminating static ctors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150173 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Target/TargetRegisterInfo.h b/include/llvm/Target/TargetRegisterInfo.h index 449f3d12259..18f6fc3a26e 100644 --- a/include/llvm/Target/TargetRegisterInfo.h +++ b/include/llvm/Target/TargetRegisterInfo.h @@ -36,7 +36,7 @@ class TargetRegisterClass { public: typedef const unsigned* iterator; typedef const unsigned* const_iterator; - typedef const EVT* vt_iterator; + typedef const MVT::SimpleValueType* vt_iterator; typedef const TargetRegisterClass* const * sc_iterator; private: virtual void anchor(); @@ -46,7 +46,8 @@ private: const sc_iterator SuperClasses; const sc_iterator SuperRegClasses; public: - TargetRegisterClass(const MCRegisterClass *MC, const EVT *vts, + TargetRegisterClass(const MCRegisterClass *MC, + const MVT::SimpleValueType *vts, const unsigned *subcm, const TargetRegisterClass * const *supcs, const TargetRegisterClass * const *superregcs) @@ -110,7 +111,7 @@ public: /// bool hasType(EVT vt) const { for(int i = 0; VTs[i] != MVT::Other; ++i) - if (VTs[i] == vt) + if (EVT(VTs[i]) == vt) return true; return false; } diff --git a/utils/TableGen/RegisterInfoEmitter.cpp b/utils/TableGen/RegisterInfoEmitter.cpp index cfac70172d4..2ce70541348 100644 --- a/utils/TableGen/RegisterInfoEmitter.cpp +++ b/utils/TableGen/RegisterInfoEmitter.cpp @@ -521,7 +521,7 @@ RegisterInfoEmitter::runTargetDesc(raw_ostream &OS, CodeGenTarget &Target, // Emit the register list now. OS << " // " << Name << " Register Class Value Types...\n" - << " static const EVT " << Name + << " static const MVT::SimpleValueType " << Name << "[] = {\n "; for (unsigned i = 0, e = RC.VTs.size(); i != e; ++i) OS << getEnumName(RC.VTs[i]) << ", ";