forked from OSchip/llvm-project
41 lines
1.8 KiB
C++
41 lines
1.8 KiB
C++
//===- COFFContext.cpp ----------------------------------------------------===//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Description
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "COFFLinkerContext.h"
|
|
#include "lld/Common/Memory.h"
|
|
#include "llvm/DebugInfo/CodeView/TypeHashing.h"
|
|
|
|
namespace lld {
|
|
namespace coff {
|
|
|
|
COFFLinkerContext::COFFLinkerContext()
|
|
: symtab(*this), rootTimer("Total Linking Time"),
|
|
inputFileTimer("Input File Reading", rootTimer),
|
|
ltoTimer("LTO", rootTimer), gcTimer("GC", rootTimer),
|
|
icfTimer("ICF", rootTimer), codeLayoutTimer("Code Layout", rootTimer),
|
|
outputCommitTimer("Commit Output File", rootTimer),
|
|
totalMapTimer("MAP Emission (Cumulative)", rootTimer),
|
|
symbolGatherTimer("Gather Symbols", totalMapTimer),
|
|
symbolStringsTimer("Build Symbol Strings", totalMapTimer),
|
|
writeTimer("Write to File", totalMapTimer),
|
|
totalPdbLinkTimer("PDB Emission (Cumulative)", rootTimer),
|
|
addObjectsTimer("Add Objects", totalPdbLinkTimer),
|
|
typeMergingTimer("Type Merging", addObjectsTimer),
|
|
loadGHashTimer("Global Type Hashing", addObjectsTimer),
|
|
mergeGHashTimer("GHash Type Merging", addObjectsTimer),
|
|
symbolMergingTimer("Symbol Merging", addObjectsTimer),
|
|
publicsLayoutTimer("Publics Stream Layout", totalPdbLinkTimer),
|
|
tpiStreamLayoutTimer("TPI Stream Layout", totalPdbLinkTimer),
|
|
diskCommitTimer("Commit to Disk", totalPdbLinkTimer) {}
|
|
|
|
} // namespace coff
|
|
} // namespace lld
|