aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/CodeGenTarget.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-02-29 21:57:08 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-02-29 21:57:08 +0000
commitc80c3fd5a7a75a33e0e740ebd3ff3d9b3054ec1f (patch)
treeacf2565c44f4492168a54631d30492fcd8269ac7 /llvm/utils/TableGen/CodeGenTarget.cpp
parentbc34a59d8f8df7f8b71ed37b5d5b88c825bc5503 (diff)
downloadllvm-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.cpp8
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.
///