summaryrefslogtreecommitdiffstats
path: root/llvm/utils
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2010-05-25 17:21:04 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2010-05-25 17:21:04 +0000
commit3b59e0601ef499acbe3cbfb8e0e25e2d435679bc (patch)
tree6e87ed2e93aaf365a8332c7870aac26f06b366c3 /llvm/utils
parent31b8a9d83f9ee1d1cad7fefa27c993db7a5418cb (diff)
downloadbcm5719-llvm-3b59e0601ef499acbe3cbfb8e0e25e2d435679bc.tar.gz
bcm5719-llvm-3b59e0601ef499acbe3cbfb8e0e25e2d435679bc.zip
Ignore NumberHack and give each SubRegIndex instance a unique enum value instead.
This passes lit tests, but I'll give it a go through the buildbots to smoke out any remaining places that depend on the old SubRegIndex numbering. Then I'll remove NumberHack entirely. llvm-svn: 104615
Diffstat (limited to 'llvm/utils')
-rw-r--r--llvm/utils/TableGen/CodeGenTarget.h6
-rw-r--r--llvm/utils/TableGen/RegisterInfoEmitter.cpp3
2 files changed, 6 insertions, 3 deletions
diff --git a/llvm/utils/TableGen/CodeGenTarget.h b/llvm/utils/TableGen/CodeGenTarget.h
index 5b2587f3b7f..6b06b66c29b 100644
--- a/llvm/utils/TableGen/CodeGenTarget.h
+++ b/llvm/utils/TableGen/CodeGenTarget.h
@@ -107,7 +107,11 @@ public:
// Map a SubRegIndex Record to its number.
unsigned getSubRegIndexNo(Record *idx) const {
- return idx->getValueAsInt("NumberHack");
+ if (SubRegIndices.empty()) ReadSubRegIndices();
+ std::vector<Record*>::const_iterator i =
+ std::find(SubRegIndices.begin(), SubRegIndices.end(), idx);
+ assert(i != SubRegIndices.end() && "Not a SubRegIndex");
+ return (i - SubRegIndices.begin()) + 1;
}
const std::vector<CodeGenRegisterClass> &getRegisterClasses() const {
diff --git a/llvm/utils/TableGen/RegisterInfoEmitter.cpp b/llvm/utils/TableGen/RegisterInfoEmitter.cpp
index 85daa15f374..28429faefa2 100644
--- a/llvm/utils/TableGen/RegisterInfoEmitter.cpp
+++ b/llvm/utils/TableGen/RegisterInfoEmitter.cpp
@@ -52,8 +52,7 @@ void RegisterInfoEmitter::runEnums(raw_ostream &OS) {
OS << "namespace " << Namespace << " {\n";
OS << "enum {\n NoSubRegister,\n";
for (unsigned i = 0, e = SubRegIndices.size(); i != e; ++i)
- OS << " " << SubRegIndices[i]->getName() << " = "
- << SubRegIndices[i]->getValueAsInt("NumberHack") << ",\n";
+ OS << " " << SubRegIndices[i]->getName() << ",\t// " << i+1 << "\n";
OS << " NUM_TARGET_SUBREGS = " << SubRegIndices.size()+1 << "\n";
OS << "};\n";
if (!Namespace.empty())
OpenPOWER on IntegriCloud