diff options
author | Chris Lattner <sabre@nondot.org> | 2008-08-26 06:49:06 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-08-26 06:49:06 +0000 |
commit | 943c0e6fba6d1c4ba9f719639909e224f31e81f1 (patch) | |
tree | 8e3d7d73efd33f8c28d95c62cac688af20a27b71 /utils/TableGen | |
parent | 690d80eefeb522c8697ef39d9e6d19b0be276f0e (diff) | |
download | llvm-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.cpp | 14 |
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; |