From: Chris Lattner Date: Fri, 19 Aug 2005 18:45:20 +0000 (+0000) Subject: Read the namespace field from register classes X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=c67c18fd2378fd2394c42f12b67897e7eba02d5c;p=oota-llvm.git Read the namespace field from register classes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22918 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/TableGen/CodeGenRegisters.h b/utils/TableGen/CodeGenRegisters.h index 2cd312941b8..bf0187a1e65 100644 --- a/utils/TableGen/CodeGenRegisters.h +++ b/utils/TableGen/CodeGenRegisters.h @@ -32,6 +32,7 @@ namespace llvm { struct CodeGenRegisterClass { Record *TheDef; + std::string Namespace; std::vector Elements; unsigned SpillSize; unsigned SpillAlignment; diff --git a/utils/TableGen/CodeGenTarget.cpp b/utils/TableGen/CodeGenTarget.cpp index 1f698c16d24..ffc51947385 100644 --- a/utils/TableGen/CodeGenTarget.cpp +++ b/utils/TableGen/CodeGenTarget.cpp @@ -143,6 +143,13 @@ void CodeGenTarget::ReadRegisterClasses() const { } CodeGenRegisterClass::CodeGenRegisterClass(Record *R) : TheDef(R) { + // Rename anonymous register classes. + if (R->getName().size() > 9 && R->getName()[9] == '.') { + static unsigned AnonCounter = 0; + R->setName("AnonRegClass_"+utostr(AnonCounter++)); + } + + Namespace = R->getValueAsString("Namespace"); SpillSize = R->getValueAsInt("Size"); SpillAlignment = R->getValueAsInt("Alignment");