| //===- 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 |