summaryrefslogtreecommitdiffstats
path: root/lld/lib/Core/Resolver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib/Core/Resolver.cpp')
-rw-r--r--lld/lib/Core/Resolver.cpp8
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()
OpenPOWER on IntegriCloud