summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/CodeGenRegisters.cpp
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2012-09-11 23:32:17 +0000
committerOwen Anderson <resistor@mac.com>2012-09-11 23:32:17 +0000
commitccd682c69543bfdb0db692daf54cdd2cb14aa487 (patch)
treeb8b58b55b3c659c9dd6616b7411e1af3b81ec973 /llvm/utils/TableGen/CodeGenRegisters.cpp
parente65effe3824970e93ec675f59862e47187a46f53 (diff)
downloadbcm5719-llvm-ccd682c69543bfdb0db692daf54cdd2cb14aa487.tar.gz
bcm5719-llvm-ccd682c69543bfdb0db692daf54cdd2cb14aa487.zip
Compute a map from register names to registers, rather than scanning the list of registers every time we want to look up a register by name.
llvm-svn: 163659
Diffstat (limited to 'llvm/utils/TableGen/CodeGenRegisters.cpp')
-rw-r--r--llvm/utils/TableGen/CodeGenRegisters.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenRegisters.cpp b/llvm/utils/TableGen/CodeGenRegisters.cpp
index 931807ae44b..f195b4e3fa9 100644
--- a/llvm/utils/TableGen/CodeGenRegisters.cpp
+++ b/llvm/utils/TableGen/CodeGenRegisters.cpp
@@ -993,6 +993,12 @@ CodeGenRegBank::CodeGenRegBank(RecordKeeper &Records) {
for (unsigned i = 0, e = Registers.size(); i != e; ++i)
Registers[i]->buildObjectGraph(*this);
+ // Compute register name map.
+ for (unsigned i = 0, e = Registers.size(); i != e; ++i)
+ RegistersByName.GetOrCreateValue(
+ Registers[i]->TheDef->getValueAsString("AsmName"),
+ Registers[i]);
+
// Precompute all sub-register maps.
// This will create Composite entries for all inferred sub-register indices.
for (unsigned i = 0, e = Registers.size(); i != e; ++i)
OpenPOWER on IntegriCloud