diff options
author | Rui Ueyama <ruiu@google.com> | 2016-02-28 21:22:44 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2016-02-28 21:22:44 +0000 |
commit | 8cca07eacf7f1f9f87f2108850abee9eade18f28 (patch) | |
tree | 5fa67494fe79df3ddba77a069adbf77a2ef60a7d /lld/lib/Core/Resolver.cpp | |
parent | 701c3250e57a428ca3b0d6fca7760f5810230e89 (diff) | |
download | bcm5719-llvm-8cca07eacf7f1f9f87f2108850abee9eade18f28.tar.gz bcm5719-llvm-8cca07eacf7f1f9f87f2108850abee9eade18f28.zip |
Remove dead code for ELF.
The preload feature was buggy that we had disabled it even for ELF.
llvm-svn: 262194
Diffstat (limited to 'lld/lib/Core/Resolver.cpp')
-rw-r--r-- | lld/lib/Core/Resolver.cpp | 35 |
1 files changed, 1 insertions, 34 deletions
diff --git a/lld/lib/Core/Resolver.cpp b/lld/lib/Core/Resolver.cpp index de98fb83412..98d2c71023f 100644 --- a/lld/lib/Core/Resolver.cpp +++ b/lld/lib/Core/Resolver.cpp @@ -36,10 +36,8 @@ ErrorOr<bool> Resolver::handleFile(File &file) { for (const DefinedAtom *atom : file.defined()) doDefinedAtom(*atom); for (const UndefinedAtom *atom : file.undefined()) { - if (doUndefinedAtom(*atom)) { + if (doUndefinedAtom(*atom)) undefAdded = true; - maybePreloadArchiveMember(atom->name()); - } } for (const SharedLibraryAtom *atom : file.sharedLibrary()) doSharedLibraryAtom(*atom); @@ -98,7 +96,6 @@ ErrorOr<bool> Resolver::handleArchiveFile(File &file) { bool dataSymbolOnly)->ErrorOr<bool> { if (File *member = archiveFile->find(undefName, dataSymbolOnly)) { member->setOrdinal(_ctx.getNextOrdinalAndIncrement()); - updatePreloadArchiveMap(); return handleFile(*member); } return false; @@ -207,17 +204,6 @@ void Resolver::addAtoms(const std::vector<const DefinedAtom *> &newAtoms) { doDefinedAtom(*newAtom); } -// Instantiate an archive file member if there's a file containing a -// defined symbol for a given symbol name. Instantiation is done in a -// different worker thread and has no visible side effect. -void Resolver::maybePreloadArchiveMember(StringRef sym) { - auto it = _archiveMap.find(sym); - if (it == _archiveMap.end()) - return; - ArchiveLibraryFile *archive = it->second; - archive->preload(_ctx.getTaskGroup(), sym); -} - // Returns true if at least one of N previous files has created an // undefined symbol. bool Resolver::undefinesAdded(int begin, int end) { @@ -248,23 +234,6 @@ File *Resolver::getFile(int &index) { return cast<FileNode>(inputs[index++].get())->getFile(); } -// Update a map of Symbol -> ArchiveFile. The map is used for speculative -// file loading. -void Resolver::updatePreloadArchiveMap() { - std::vector<std::unique_ptr<Node>> &nodes = _ctx.getNodes(); - for (int i = nodes.size() - 1; i >= 0; --i) { - auto *fnode = dyn_cast<FileNode>(nodes[i].get()); - if (!fnode) - continue; - auto *archive = dyn_cast<ArchiveLibraryFile>(fnode->getFile()); - if (!archive || _archiveSeen.count(archive)) - continue; - _archiveSeen.insert(archive); - for (StringRef sym : archive->getDefinedSymbols()) - _archiveMap[sym] = archive; - } -} - // Keep adding atoms until _ctx.getNextFile() returns an error. This // function is where undefined atoms are resolved. bool Resolver::resolveUndefines() { @@ -287,7 +256,6 @@ bool Resolver::resolveUndefines() { } DEBUG_WITH_TYPE("resolver", llvm::dbgs() << "Loaded file: " << file->path() << "\n"); - updatePreloadArchiveMap(); switch (file->kind()) { case File::kindErrorObject: case File::kindNormalizedObject: @@ -503,7 +471,6 @@ void Resolver::removeCoalescedAwayAtoms() { bool Resolver::resolve() { DEBUG_WITH_TYPE("resolver", llvm::dbgs() << "******** Resolving atom references:\n"); - updatePreloadArchiveMap(); if (!resolveUndefines()) return false; updateReferences(); |