summaryrefslogtreecommitdiff
path: root/utils/TableGen
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-08-26 06:49:06 +0000
committerChris Lattner <sabre@nondot.org>2008-08-26 06:49:06 +0000
commit943c0e6fba6d1c4ba9f719639909e224f31e81f1 (patch)
tree8e3d7d73efd33f8c28d95c62cac688af20a27b71 /utils/TableGen
parent690d80eefeb522c8697ef39d9e6d19b0be276f0e (diff)
downloadllvm-943c0e6fba6d1c4ba9f719639909e224f31e81f1.tar.gz
llvm-943c0e6fba6d1c4ba9f719639909e224f31e81f1.tar.bz2
llvm-943c0e6fba6d1c4ba9f719639909e224f31e81f1.tar.xz
stablize SubRegsSet printing, part of PR2590
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55360 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen')
-rw-r--r--utils/TableGen/RegisterInfoEmitter.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/utils/TableGen/RegisterInfoEmitter.cpp b/utils/TableGen/RegisterInfoEmitter.cpp
index 7517c5eee5..b4b52f3f76 100644
--- a/utils/TableGen/RegisterInfoEmitter.cpp
+++ b/utils/TableGen/RegisterInfoEmitter.cpp
@@ -114,7 +114,8 @@ bool isSubRegisterClass(const CodeGenRegisterClass &RC,
}
static void addSuperReg(Record *R, Record *S,
- std::map<Record*, std::set<Record*> > &SubRegs,
+ std::map<Record*, std::set<Record*>,
+ LessRecord> &SubRegs,
std::map<Record*, std::set<Record*> > &SuperRegs,
std::map<Record*, std::set<Record*> > &Aliases) {
if (R == S) {
@@ -135,7 +136,8 @@ static void addSuperReg(Record *R, Record *S,
}
static void addSubSuperReg(Record *R, Record *S,
- std::map<Record*, std::set<Record*> > &SubRegs,
+ std::map<Record*, std::set<Record*>,
+ LessRecord> &SubRegs,
std::map<Record*, std::set<Record*> > &SuperRegs,
std::map<Record*, std::set<Record*> > &Aliases) {
if (R == S) {
@@ -158,10 +160,10 @@ static void addSubSuperReg(Record *R, Record *S,
class RegisterSorter {
private:
- std::map<Record*, std::set<Record*> > &RegisterSubRegs;
+ std::map<Record*, std::set<Record*>, LessRecord> &RegisterSubRegs;
public:
- RegisterSorter(std::map<Record*, std::set<Record*> > &RS)
+ RegisterSorter(std::map<Record*, std::set<Record*>, LessRecord> &RS)
: RegisterSubRegs(RS) {};
bool operator()(Record *RegA, Record *RegB) {
@@ -418,7 +420,7 @@ void RegisterInfoEmitter::run(std::ostream &OS) {
OS << " };\n";
// Emit register sub-registers / super-registers, aliases...
- std::map<Record*, std::set<Record*> > RegisterSubRegs;
+ std::map<Record*, std::set<Record*>, LessRecord> RegisterSubRegs;
std::map<Record*, std::set<Record*> > RegisterSuperRegs;
std::map<Record*, std::set<Record*> > RegisterAliases;
std::map<Record*, std::vector<std::pair<int, Record*> > > SubRegVectors;
@@ -563,7 +565,7 @@ void RegisterInfoEmitter::run(std::ostream &OS) {
OS << " const unsigned Empty_SubRegsSet[] = { 0 };\n";
// Loop over all of the registers which have sub-registers, emitting the
// sub-registers list to memory.
- for (std::map<Record*, std::set<Record*> >::iterator
+ for (std::map<Record*, std::set<Record*>, LessRecord>::iterator
I = RegisterSubRegs.begin(), E = RegisterSubRegs.end(); I != E; ++I) {
OS << " const unsigned " << I->first->getName() << "_SubRegsSet[] = { ";
std::vector<Record*> SubRegsVector;