aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-02-09 12:35:37 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-02-09 12:35:37 +0000
commit2c6ae095b8a944c8355377498b9ad11bb94af2d5 (patch)
tree4be438a1a3d237e012f309771ef894a9196480f7
parent133f9d989485376ce8ad0d6c61ba12e913fa6366 (diff)
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
-rw-r--r--include/llvm/Target/TargetRegisterInfo.h7
-rw-r--r--utils/TableGen/RegisterInfoEmitter.cpp2
2 files changed, 5 insertions, 4 deletions
diff --git a/include/llvm/Target/TargetRegisterInfo.h b/include/llvm/Target/TargetRegisterInfo.h
index 449f3d1225..18f6fc3a26 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 cfac70172d..2ce7054134 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]) << ", ";