summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2012-03-01 17:30:35 +0000
committerJim Grosbach <grosbach@apple.com>2012-03-01 17:30:35 +0000
commit194f3fa9eadc7dfe9f1750c16e1c2a8ebe11c88c (patch)
tree7cae3c194a7719ef4767351b64027420a0ac03a6
parent1e33b461b4f6700721e14376c372edd132d29b11 (diff)
downloadllvm-194f3fa9eadc7dfe9f1750c16e1c2a8ebe11c88c.tar.gz
llvm-194f3fa9eadc7dfe9f1750c16e1c2a8ebe11c88c.tar.bz2
llvm-194f3fa9eadc7dfe9f1750c16e1c2a8ebe11c88c.tar.xz
Revert "Emit the SubRegTable with the smallest possible integer type."
This reverts commit 151760. We want to move getSubReg() from TargetRegisterInfo into MCRegisterInfo, but to do that, the type of the lookup table needs to be the same for all targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151814 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--utils/TableGen/AsmMatcherEmitter.cpp9
-rw-r--r--utils/TableGen/CodeGenTarget.cpp8
-rw-r--r--utils/TableGen/CodeGenTarget.h4
-rw-r--r--utils/TableGen/RegisterInfoEmitter.cpp4
4 files changed, 11 insertions, 14 deletions
diff --git a/utils/TableGen/AsmMatcherEmitter.cpp b/utils/TableGen/AsmMatcherEmitter.cpp
index 88e787cfd2..80467ff3dc 100644
--- a/utils/TableGen/AsmMatcherEmitter.cpp
+++ b/utils/TableGen/AsmMatcherEmitter.cpp
@@ -2008,6 +2008,15 @@ static bool EmitMnemonicAliases(raw_ostream &OS, const AsmMatcherInfo &Info) {
return true;
}
+static const char *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";
+}
+
static void EmitCustomOperandParsing(raw_ostream &OS, CodeGenTarget &Target,
const AsmMatcherInfo &Info, StringRef ClassName) {
// Emit the static custom operand parsing table;
diff --git a/utils/TableGen/CodeGenTarget.cpp b/utils/TableGen/CodeGenTarget.cpp
index 1eb1a54e56..cf6793570a 100644
--- a/utils/TableGen/CodeGenTarget.cpp
+++ b/utils/TableGen/CodeGenTarget.cpp
@@ -108,14 +108,6 @@ 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.
///
diff --git a/utils/TableGen/CodeGenTarget.h b/utils/TableGen/CodeGenTarget.h
index a0df08bf95..85463da597 100644
--- a/utils/TableGen/CodeGenTarget.h
+++ b/utils/TableGen/CodeGenTarget.h
@@ -58,10 +58,6 @@ std::string getEnumName(MVT::SimpleValueType T);
/// namespace qualifier if the record contains one.
std::string getQualifiedName(const Record *R);
-/// getMinimalTypeForRange - Helper method to get the minimum data type required
-/// to represent Range.
-const char *getMinimalTypeForRange(uint64_t Range);
-
/// CodeGenTarget - This class corresponds to the Target class in the .td files.
///
class CodeGenTarget {
diff --git a/utils/TableGen/RegisterInfoEmitter.cpp b/utils/TableGen/RegisterInfoEmitter.cpp
index 949213b0a1..7171e50dc3 100644
--- a/utils/TableGen/RegisterInfoEmitter.cpp
+++ b/utils/TableGen/RegisterInfoEmitter.cpp
@@ -733,8 +733,8 @@ RegisterInfoEmitter::runTargetDesc(raw_ostream &OS, CodeGenTarget &Target,
// Emit the data table for getSubReg().
if (SubRegIndices.size()) {
- OS << "static const " << getMinimalTypeForRange(Regs.size()) << ' '
- << TargetName << "SubRegTable[][" << SubRegIndices.size() << "] = {\n";
+ OS << "static const unsigned short " << TargetName << "SubRegTable[]["
+ << SubRegIndices.size() << "] = {\n";
for (unsigned i = 0, e = Regs.size(); i != e; ++i) {
const CodeGenRegister::SubRegMap &SRM = Regs[i]->getSubRegs();
OS << " /* " << Regs[i]->TheDef->getName() << " */\n";