From ccd682c69543bfdb0db692daf54cdd2cb14aa487 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Tue, 11 Sep 2012 23:32:17 +0000 Subject: 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 --- llvm/utils/TableGen/CodeGenRegisters.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'llvm/utils/TableGen/CodeGenRegisters.cpp') 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) -- cgit v1.2.3