diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2013-03-20 19:25:58 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2013-03-20 19:25:58 +0000 |
commit | da384eebe50b27ccb9208cef0b6ff6ccfbb22c8a (patch) | |
tree | eb50f0af6bf67d3cc995e869d6c553e11ebb199f /lld/lib/ReaderWriter/ELF/File.h | |
parent | 602ffc13b883d3307cd0189face01559f46a6380 (diff) | |
download | bcm5719-llvm-da384eebe50b27ccb9208cef0b6ff6ccfbb22c8a.tar.gz bcm5719-llvm-da384eebe50b27ccb9208cef0b6ff6ccfbb22c8a.zip |
[ELF][Reader][Perf] Only do loookup once.
llvm-svn: 177563
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/File.h')
-rw-r--r-- | lld/lib/ReaderWriter/ELF/File.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lld/lib/ReaderWriter/ELF/File.h b/lld/lib/ReaderWriter/ELF/File.h index d011c603124..15cb9a4fc20 100644 --- a/lld/lib/ReaderWriter/ELF/File.h +++ b/lld/lib/ReaderWriter/ELF/File.h @@ -516,7 +516,8 @@ public: int64_t relocAddend = relHandler.relocAddend(*ri); uint64_t addend = ri->addend() + relocAddend; const MergeSectionKey ms(shdr, addend); - if (_mergedSectionMap.find(ms) == _mergedSectionMap.end()) { + auto msec = _mergedSectionMap.find(ms); + if (msec == _mergedSectionMap.end()) { if (Symbol->getType() != llvm::ELF::STT_SECTION) addend = Symbol->st_value + addend; MergeAtomsIter mai = findMergeAtom(shdr, addend); @@ -529,7 +530,7 @@ public: llvm_unreachable("unable to find a merge atom"); } // find else - ri->setTarget(_mergedSectionMap[ms]); + ri->setTarget(msec->second); } else ri->setTarget(findAtom(Symbol)); } |