Store CodeGenRegisters as pointers so they won't be reallocated.

Reuse the CodeGenRegBank DenseMap in a few places that would build their
own or use linear search.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133333 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jakob Stoklund Olesen
2011-06-18 04:26:06 +00:00
parent 54c47c1ce9
commit abdbc84b4e
9 changed files with 50 additions and 71 deletions
+4 -6
View File
@@ -167,12 +167,10 @@ CodeGenRegBank &CodeGenTarget::getRegBank() const {
/// getRegisterByName - If there is a register with the specific AsmName,
/// return it.
const CodeGenRegister *CodeGenTarget::getRegisterByName(StringRef Name) const {
const std::vector<CodeGenRegister> &Regs = getRegBank().getRegisters();
for (unsigned i = 0, e = Regs.size(); i != e; ++i) {
const CodeGenRegister &Reg = Regs[i];
if (Reg.TheDef->getValueAsString("AsmName") == Name)
return &Reg;
}
const std::vector<CodeGenRegister*> &Regs = getRegBank().getRegisters();
for (unsigned i = 0, e = Regs.size(); i != e; ++i)
if (Regs[i]->TheDef->getValueAsString("AsmName") == Name)
return Regs[i];
return 0;
}