diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2012-02-29 21:57:08 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2012-02-29 21:57:08 +0000 |
commit | c80c3fd5a7a75a33e0e740ebd3ff3d9b3054ec1f (patch) | |
tree | acf2565c44f4492168a54631d30492fcd8269ac7 /llvm/utils/TableGen/CodeGenTarget.cpp | |
parent | bc34a59d8f8df7f8b71ed37b5d5b88c825bc5503 (diff) | |
download | llvm-c80c3fd5a7a75a33e0e740ebd3ff3d9b3054ec1f.zip llvm-c80c3fd5a7a75a33e0e740ebd3ff3d9b3054ec1f.tar.gz llvm-c80c3fd5a7a75a33e0e740ebd3ff3d9b3054ec1f.tar.bz2 |
Emit the SubRegTable with the smallest possible integer type.
Doesn't help ARM with its massive register set, but halves the size on x86 and all other targets.
llvm-svn: 151760
Diffstat (limited to 'llvm/utils/TableGen/CodeGenTarget.cpp')
-rw-r--r-- | llvm/utils/TableGen/CodeGenTarget.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenTarget.cpp b/llvm/utils/TableGen/CodeGenTarget.cpp index cf67935..1eb1a54 100644 --- a/llvm/utils/TableGen/CodeGenTarget.cpp +++ b/llvm/utils/TableGen/CodeGenTarget.cpp @@ -108,6 +108,14 @@ std::string llvm::getQualifiedName(const Record *R) { return Namespace + "::" + R->getName(); } +const char *llvm::getMinimalTypeForRange(uint64_t Range) { + assert(Range < 0xFFFFFFFFULL && "Enum too large"); + if (Range > 0xFFFF) + return "uint32_t"; + if (Range > 0xFF) + return "uint16_t"; + return "uint8_t"; +} /// getTarget - Return the current instance of the Target class. /// |