diff options
| author | Michael J. Spencer <bigcheesegs@gmail.com> | 2013-05-28 18:55:39 +0000 |
|---|---|---|
| committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2013-05-28 18:55:39 +0000 |
| commit | bd66d04f347afd3b89a6bbc54129a2c76bd7e757 (patch) | |
| tree | ed910d5aceb4fd7edc511585e62c4b9834a355de /lld/lib/Core/Resolver.cpp | |
| parent | 1ec31065e83f582a0890208f7fa82098324733ce (diff) | |
| download | bcm5719-llvm-bd66d04f347afd3b89a6bbc54129a2c76bd7e757.tar.gz bcm5719-llvm-bd66d04f347afd3b89a6bbc54129a2c76bd7e757.zip | |
Instrument things.
llvm-svn: 182789
Diffstat (limited to 'lld/lib/Core/Resolver.cpp')
| -rw-r--r-- | lld/lib/Core/Resolver.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lld/lib/Core/Resolver.cpp b/lld/lib/Core/Resolver.cpp index ccbecd7b3de..e95aa9cc767 100644 --- a/lld/lib/Core/Resolver.cpp +++ b/lld/lib/Core/Resolver.cpp @@ -10,6 +10,7 @@ #include "lld/Core/Atom.h" #include "lld/Core/File.h" #include "lld/Core/InputFiles.h" +#include "lld/Core/Instrumentation.h" #include "lld/Core/LLVM.h" #include "lld/Core/Resolver.h" #include "lld/Core/SymbolTable.h" @@ -71,6 +72,7 @@ private: // add all atoms from all initial .o files void Resolver::buildInitialAtomList() { + ScopedTask task(getDefaultDomain(), "buildInitialAtomList"); DEBUG_WITH_TYPE("resolver", llvm::dbgs() << "Resolver initial atom list:\n"); // each input files contributes initial atoms @@ -184,6 +186,7 @@ void Resolver::addAtoms(const std::vector<const DefinedAtom*>& newAtoms) { // ask symbol table if any definitionUndefined atoms still exist // if so, keep searching libraries until no more atoms being added void Resolver::resolveUndefines() { + ScopedTask task(getDefaultDomain(), "resolveUndefines"); const bool searchArchives = _targetInfo.searchArchivesToOverrideTentativeDefinitions(); const bool searchSharedLibs = @@ -234,6 +237,7 @@ void Resolver::resolveUndefines() { // switch all references to undefined or coalesced away atoms // to the new defined atom void Resolver::updateReferences() { + ScopedTask task(getDefaultDomain(), "updateReferences"); for(const Atom *atom : _atoms) { if (const DefinedAtom* defAtom = dyn_cast<DefinedAtom>(atom)) { for (const Reference *ref : *defAtom) { @@ -267,6 +271,7 @@ void Resolver::markLive(const Atom &atom) { // remove all atoms not actually used void Resolver::deadStripOptimize() { + ScopedTask task(getDefaultDomain(), "deadStripOptimize"); // only do this optimization with -dead_strip if (!_targetInfo.deadStrip()) return; @@ -354,6 +359,7 @@ bool Resolver::checkUndefines(bool final) { // remove from _atoms all coaleseced away atoms void Resolver::removeCoalescedAwayAtoms() { + ScopedTask task(getDefaultDomain(), "removeCoalescedAwayAtoms"); _atoms.erase(std::remove_if(_atoms.begin(), _atoms.end(), AtomCoalescedAway(_symbolTable)), _atoms.end()); } @@ -361,6 +367,7 @@ void Resolver::removeCoalescedAwayAtoms() { // check for interactions between symbols defined in this linkage unit // and same symbol name in linked dynamic shared libraries void Resolver::checkDylibSymbolCollisions() { + ScopedTask task(getDefaultDomain(), "checkDylibSymbolCollisions"); for ( const Atom *atom : _atoms ) { const DefinedAtom* defAtom = dyn_cast<DefinedAtom>(atom); if (defAtom == nullptr) @@ -420,6 +427,7 @@ MutableFile::DefinedAtomRange Resolver::MergedFile::definedAtoms() { void Resolver::MergedFile::addAtoms(std::vector<const Atom*>& all) { + ScopedTask task(getDefaultDomain(), "addAtoms"); DEBUG_WITH_TYPE("resolver", llvm::dbgs() << "Resolver final atom list:\n"); for ( const Atom *atom : all ) { DEBUG_WITH_TYPE("resolver", llvm::dbgs() |

