diff options
author | Yaron Keren <yaron.keren@gmail.com> | 2013-10-19 09:04:26 +0000 |
---|---|---|
committer | Yaron Keren <yaron.keren@gmail.com> | 2013-10-19 09:04:26 +0000 |
commit | c98028896ddea90e959bc79f4e9b5fca56a86c5a (patch) | |
tree | 4a685c25030a16054b8d51e697ad5196f4153bf3 /llvm/lib/ExecutionEngine | |
parent | fb95582bf14683378ae508b86d665ca5d70b39a4 (diff) | |
download | bcm5719-llvm-c98028896ddea90e959bc79f4e9b5fca56a86c5a.tar.gz bcm5719-llvm-c98028896ddea90e959bc79f4e9b5fca56a86c5a.zip |
Avoid duplicate search by reusing the iterator.
llvm-svn: 193034
Diffstat (limited to 'llvm/lib/ExecutionEngine')
-rw-r--r-- | llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h | 10 |
2 files changed, 7 insertions, 5 deletions
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp index febc81cde0b..07de4ba8cd5 100644 --- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp +++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp @@ -503,7 +503,7 @@ void RuntimeDyldImpl::resolveExternalSymbols() { } else { // We found the symbol in our global table. It was probably in a // Module that we loaded previously. - SymbolLoc SymLoc = GlobalSymbolTable.lookup(Name); + SymbolLoc SymLoc = Loc->second; Addr = getSectionLoadAddress(SymLoc.first) + SymLoc.second; } diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h index 0628fa71802..465d05bf2c6 100644 --- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h +++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h @@ -308,18 +308,20 @@ public: void *getSymbolAddress(StringRef Name) { // FIXME: Just look up as a function for now. Overly simple of course. // Work in progress. - if (GlobalSymbolTable.find(Name) == GlobalSymbolTable.end()) + SymbolTableMap::const_iterator pos = GlobalSymbolTable.find(Name); + if (pos == GlobalSymbolTable.end()) return 0; - SymbolLoc Loc = GlobalSymbolTable.lookup(Name); + SymbolLoc Loc = pos->second; return getSectionAddress(Loc.first) + Loc.second; } uint64_t getSymbolLoadAddress(StringRef Name) { // FIXME: Just look up as a function for now. Overly simple of course. // Work in progress. - if (GlobalSymbolTable.find(Name) == GlobalSymbolTable.end()) + SymbolTableMap::const_iterator pos = GlobalSymbolTable.find(Name); + if (pos == GlobalSymbolTable.end()) return 0; - SymbolLoc Loc = GlobalSymbolTable.lookup(Name); + SymbolLoc Loc = pos->second; return getSectionLoadAddress(Loc.first) + Loc.second; } |