diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-06-18 04:26:06 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-06-18 04:26:06 +0000 |
commit | abdbc84b4ed4276ed3def50f554e3ba156325717 (patch) | |
tree | 0a8118fb468d1b1082af23704e254bf94de424c6 /utils/TableGen/CodeGenTarget.cpp | |
parent | 54c47c1ce94b9e549ef768e80fd004788d13ce85 (diff) | |
download | external_llvm-abdbc84b4ed4276ed3def50f554e3ba156325717.zip external_llvm-abdbc84b4ed4276ed3def50f554e3ba156325717.tar.gz external_llvm-abdbc84b4ed4276ed3def50f554e3ba156325717.tar.bz2 |
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
Diffstat (limited to 'utils/TableGen/CodeGenTarget.cpp')
-rw-r--r-- | utils/TableGen/CodeGenTarget.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/utils/TableGen/CodeGenTarget.cpp b/utils/TableGen/CodeGenTarget.cpp index 4ce8022..5b0b315 100644 --- a/utils/TableGen/CodeGenTarget.cpp +++ b/utils/TableGen/CodeGenTarget.cpp @@ -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; } |