[lld] r231551 - Resolver: Reduce number of SymbolTable::isDefined function calls.
Rui Ueyama
ruiu at google.com
Fri Mar 6 19:55:32 PST 2015
Author: ruiu
Date: Fri Mar 6 21:55:32 2015
New Revision: 231551
URL: http://llvm.org/viewvc/llvm-project?rev=231551&view=rev
Log:
Resolver: Reduce number of SymbolTable::isDefined function calls.
If an undefined symbol is added to the symbol table by the previous
call of SymbolTable::add, SymbolTable::isDefined will always return
false for the same symbol.
Modified:
lld/trunk/lib/Core/Resolver.cpp
Modified: lld/trunk/lib/Core/Resolver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/Resolver.cpp?rev=231551&r1=231550&r2=231551&view=diff
==============================================================================
--- lld/trunk/lib/Core/Resolver.cpp (original)
+++ lld/trunk/lib/Core/Resolver.cpp Fri Mar 6 21:55:32 2015
@@ -125,7 +125,7 @@ bool Resolver::doUndefinedAtom(const Und
// If the undefined symbol has an alternative name, try to resolve the
// symbol with the name to give it a second chance. This feature is used
// for COFF "weak external" symbol.
- if (!_symbolTable.isDefined(atom.name())) {
+ if (newUndefAdded || !_symbolTable.isDefined(atom.name())) {
if (const UndefinedAtom *fallbackAtom = atom.fallback()) {
doUndefinedAtom(*fallbackAtom);
_symbolTable.addReplacement(&atom, fallbackAtom);
More information about the llvm-commits
mailing list