summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/File.h
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2013-03-20 19:25:58 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2013-03-20 19:25:58 +0000
commitda384eebe50b27ccb9208cef0b6ff6ccfbb22c8a (patch)
treeeb50f0af6bf67d3cc995e869d6c553e11ebb199f /lld/lib/ReaderWriter/ELF/File.h
parent602ffc13b883d3307cd0189face01559f46a6380 (diff)
downloadbcm5719-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.h5
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));
}
OpenPOWER on IntegriCloud