Skip to content

Commit

Permalink
[Support] Move ItaniumManglingCanonicalizer and SymbolRemappingReader…
Browse files Browse the repository at this point in the history
… from Support to ProfileData

As mentioned on https://discourse.llvm.org/t/issues-in-llvm-tblgen-high-parallelized-build/68037, ItaniumManglingCanonicalizer is often slow to build, resulting in a bottleneck for distributed builds while waiting for LLVMSupport to complete.

SymbolRemappingReader is the only current user of ItaniumManglingCanonicalizer, and this is only used by ProfileData and llvm-cxxmap - so I propose we move both files into the ProfileData library.

Differential Revision: https://reviews.llvm.org/D143318
  • Loading branch information
RKSimon committed Feb 6, 2023
1 parent 6ab9f1e commit 6c8fe96
Show file tree
Hide file tree
Showing 21 changed files with 30 additions and 27 deletions.
6 changes: 3 additions & 3 deletions clang/docs/tools/clang-formatted-files.txt
Expand Up @@ -5444,8 +5444,10 @@ llvm/include/llvm/Passes/StandardInstrumentations.h
llvm/include/llvm/ProfileData/GCOV.h
llvm/include/llvm/ProfileData/InstrProfCorrelator.h
llvm/include/llvm/ProfileData/InstrProfWriter.h
llvm/include/llvm/ProfileData/ItaniumManglingCanonicalizer.h
llvm/include/llvm/ProfileData/ProfileCommon.h
llvm/include/llvm/ProfileData/RawMemProfReader.h
llvm/include/llvm/ProfileData/SymbolRemappingReader.h
llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
llvm/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h
llvm/include/llvm/Remarks/BitstreamRemarkContainer.h
Expand Down Expand Up @@ -5496,7 +5498,6 @@ llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h
llvm/include/llvm/Support/HashBuilder.h
llvm/include/llvm/Support/InitLLVM.h
llvm/include/llvm/Support/InstructionCost.h
llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h
llvm/include/llvm/Support/MD5.h
llvm/include/llvm/Support/MemAlloc.h
llvm/include/llvm/Support/MemoryBufferRef.h
Expand All @@ -5518,7 +5519,6 @@ llvm/include/llvm/Support/SMLoc.h
llvm/include/llvm/Support/SMTAPI.h
llvm/include/llvm/Support/SourceMgr.h
llvm/include/llvm/Support/SuffixTree.h
llvm/include/llvm/Support/SymbolRemappingReader.h
llvm/include/llvm/Support/SystemUtils.h
llvm/include/llvm/TargetParser/TargetParser.h
llvm/include/llvm/Support/TrailingObjects.h
Expand Down Expand Up @@ -7325,6 +7325,7 @@ llvm/unittests/Passes/TestPlugin.cpp
llvm/unittests/Passes/TestPlugin.h
llvm/unittests/ProfileData/InstrProfDataTest.cpp
llvm/unittests/ProfileData/MemProfTest.cpp
llvm/unittests/ProfileData/SymbolRemappingReaderTest.cpp
llvm/unittests/Remarks/BitstreamRemarksFormatTest.cpp
llvm/unittests/Remarks/BitstreamRemarksParsingTest.cpp
llvm/unittests/Remarks/RemarksLinkingTest.cpp
Expand Down Expand Up @@ -7357,7 +7358,6 @@ llvm/unittests/Support/ScaledNumberTest.cpp
llvm/unittests/Support/ScopedPrinterTest.cpp
llvm/unittests/Support/SHA256.cpp
llvm/unittests/Support/SuffixTreeTest.cpp
llvm/unittests/Support/SymbolRemappingReaderTest.cpp
llvm/unittests/Support/TarWriterTest.cpp
llvm/unittests/Support/ToolOutputFileTest.cpp
llvm/unittests/Support/TypeTraitsTest.cpp
Expand Down
Expand Up @@ -11,8 +11,8 @@
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_SUPPORT_ITANIUMMANGLINGCANONICALIZER_H
#define LLVM_SUPPORT_ITANIUMMANGLINGCANONICALIZER_H
#ifndef LLVM_PROFILEDATA_ITANIUMMANGLINGCANONICALIZER_H
#define LLVM_PROFILEDATA_ITANIUMMANGLINGCANONICALIZER_H

#include <cstdint>

Expand Down Expand Up @@ -90,4 +90,4 @@ class ItaniumManglingCanonicalizer {
};
} // namespace llvm

#endif // LLVM_SUPPORT_ITANIUMMANGLINGCANONICALIZER_H
#endif // LLVM_PROFILEDATA_ITANIUMMANGLINGCANONICALIZER_H
2 changes: 1 addition & 1 deletion llvm/include/llvm/ProfileData/SampleProfReader.h
Expand Up @@ -232,11 +232,11 @@
#include "llvm/IR/ProfileSummary.h"
#include "llvm/ProfileData/GCOV.h"
#include "llvm/ProfileData/SampleProf.h"
#include "llvm/ProfileData/SymbolRemappingReader.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Discriminator.h"
#include "llvm/Support/ErrorOr.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/SymbolRemappingReader.h"
#include <cstdint>
#include <list>
#include <memory>
Expand Down
Expand Up @@ -56,12 +56,12 @@
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_SUPPORT_SYMBOLREMAPPINGREADER_H
#define LLVM_SUPPORT_SYMBOLREMAPPINGREADER_H
#ifndef LLVM_PROFILEDATA_SYMBOLREMAPPINGREADER_H
#define LLVM_PROFILEDATA_SYMBOLREMAPPINGREADER_H

#include "llvm/ADT/StringRef.h"
#include "llvm/ProfileData/ItaniumManglingCanonicalizer.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ItaniumManglingCanonicalizer.h"

namespace llvm {

Expand Down Expand Up @@ -130,4 +130,4 @@ class SymbolRemappingReader {

} // end namespace llvm

#endif // LLVM_SUPPORT_SYMBOLREMAPPINGREADER_H
#endif // LLVM_PROFILEDATA_SYMBOLREMAPPINGREADER_H
4 changes: 3 additions & 1 deletion llvm/lib/ProfileData/CMakeLists.txt
Expand Up @@ -4,12 +4,14 @@ add_llvm_component_library(LLVMProfileData
InstrProfCorrelator.cpp
InstrProfReader.cpp
InstrProfWriter.cpp
ItaniumManglingCanonicalizer.cpp
MemProf.cpp
ProfileSummaryBuilder.cpp
RawMemProfReader.cpp
SampleProf.cpp
SampleProfReader.cpp
SampleProfWriter.cpp
RawMemProfReader.cpp
SymbolRemappingReader.cpp

ADDITIONAL_HEADER_DIRS
${LLVM_MAIN_INCLUDE_DIR}/llvm/ProfileData
Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/ProfileData/InstrProfReader.cpp
Expand Up @@ -20,12 +20,12 @@
#include "llvm/ProfileData/InstrProf.h"
#include "llvm/ProfileData/MemProf.h"
#include "llvm/ProfileData/ProfileCommon.h"
#include "llvm/ProfileData/SymbolRemappingReader.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ErrorOr.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/SwapByteOrder.h"
#include "llvm/Support/SymbolRemappingReader.h"
#include "llvm/Support/VirtualFileSystem.h"
#include <algorithm>
#include <cstddef>
Expand Down
Expand Up @@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//

#include "llvm/Support/ItaniumManglingCanonicalizer.h"
#include "llvm/ProfileData/ItaniumManglingCanonicalizer.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/StringRef.h"
Expand Down
Expand Up @@ -11,7 +11,7 @@
//
//===----------------------------------------------------------------------===//

#include "llvm/Support/SymbolRemappingReader.h"
#include "llvm/ProfileData/SymbolRemappingReader.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Support/LineIterator.h"
Expand Down
2 changes: 0 additions & 2 deletions llvm/lib/Support/CMakeLists.txt
Expand Up @@ -175,7 +175,6 @@ add_llvm_component_library(LLVMSupport
InstructionCost.cpp
IntEqClasses.cpp
IntervalMap.cpp
ItaniumManglingCanonicalizer.cpp
JSON.cpp
KnownBits.cpp
LEB128.cpp
Expand Down Expand Up @@ -218,7 +217,6 @@ add_llvm_component_library(LLVMSupport
StringSaver.cpp
StringRef.cpp
SuffixTree.cpp
SymbolRemappingReader.cpp
SystemUtils.cpp
TarWriter.cpp
ThreadPool.cpp
Expand Down
1 change: 1 addition & 0 deletions llvm/tools/llvm-cxxmap/CMakeLists.txt
@@ -1,6 +1,7 @@
set(LLVM_LINK_COMPONENTS
Core
Support
ProfileData
)

add_llvm_tool(llvm-cxxmap
Expand Down
2 changes: 1 addition & 1 deletion llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp
Expand Up @@ -14,12 +14,12 @@
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ProfileData/SymbolRemappingReader.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/InitLLVM.h"
#include "llvm/Support/LineIterator.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/SymbolRemappingReader.h"
#include "llvm/Support/WithColor.h"
#include "llvm/Support/raw_ostream.h"

Expand Down
4 changes: 3 additions & 1 deletion llvm/unittests/ProfileData/CMakeLists.txt
Expand Up @@ -10,8 +10,10 @@ add_llvm_unittest(ProfileDataTests
CoverageMappingTest.cpp
InstrProfDataTest.cpp
InstrProfTest.cpp
SampleProfTest.cpp
ItaniumManglingCanonicalizerTest.cpp
MemProfTest.cpp
SampleProfTest.cpp
SymbolRemappingReaderTest.cpp
)

target_link_libraries(ProfileDataTests PRIVATE LLVMTestingSupport)
Expand Up @@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//

#include "llvm/Support/ItaniumManglingCanonicalizer.h"
#include "llvm/ProfileData/ItaniumManglingCanonicalizer.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "gtest/gtest.h"
Expand Down
Expand Up @@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//

#include "llvm/Support/SymbolRemappingReader.h"
#include "llvm/ProfileData/SymbolRemappingReader.h"
#include "llvm/Support/MemoryBuffer.h"
#include "gtest/gtest.h"

Expand Down
2 changes: 0 additions & 2 deletions llvm/unittests/Support/CMakeLists.txt
Expand Up @@ -46,7 +46,6 @@ add_llvm_unittest(SupportTests
HashBuilderTest.cpp
IndexedAccessorTest.cpp
InstructionCostTest.cpp
ItaniumManglingCanonicalizerTest.cpp
JSONTest.cpp
KnownBitsTest.cpp
LEB128Test.cpp
Expand Down Expand Up @@ -76,7 +75,6 @@ add_llvm_unittest(SupportTests
SpecialCaseListTest.cpp
SuffixTreeTest.cpp
SwapByteOrderTest.cpp
SymbolRemappingReaderTest.cpp
TarWriterTest.cpp
TaskQueueTest.cpp
ThreadPool.cpp
Expand Down
2 changes: 2 additions & 0 deletions llvm/utils/gn/secondary/llvm/lib/ProfileData/BUILD.gn
Expand Up @@ -14,11 +14,13 @@ static_library("ProfileData") {
"InstrProfCorrelator.cpp",
"InstrProfReader.cpp",
"InstrProfWriter.cpp",
"ItaniumManglingCanonicalizer.cpp",
"MemProf.cpp",
"ProfileSummaryBuilder.cpp",
"RawMemProfReader.cpp",
"SampleProf.cpp",
"SampleProfReader.cpp",
"SampleProfWriter.cpp",
"SymbolRemappingReader.cpp",
]
}
2 changes: 0 additions & 2 deletions llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
Expand Up @@ -89,7 +89,6 @@ static_library("Support") {
"InstructionCost.cpp",
"IntEqClasses.cpp",
"IntervalMap.cpp",
"ItaniumManglingCanonicalizer.cpp",
"JSON.cpp",
"KnownBits.cpp",
"LEB128.cpp",
Expand Down Expand Up @@ -133,7 +132,6 @@ static_library("Support") {
"StringRef.cpp",
"StringSaver.cpp",
"SuffixTree.cpp",
"SymbolRemappingReader.cpp",
"SystemUtils.cpp",
"TarWriter.cpp",
"ThreadPool.cpp",
Expand Down
1 change: 1 addition & 0 deletions llvm/utils/gn/secondary/llvm/tools/llvm-cxxmap/BUILD.gn
@@ -1,6 +1,7 @@
executable("llvm-cxxmap") {
deps = [
"//llvm/lib/IR",
"//llvm/lib/ProfileData",
"//llvm/lib/Support",
"//llvm/lib/Target:TargetsToBuild",
]
Expand Down
2 changes: 2 additions & 0 deletions llvm/utils/gn/secondary/llvm/unittests/ProfileData/BUILD.gn
Expand Up @@ -11,7 +11,9 @@ unittest("ProfileDataTests") {
"CoverageMappingTest.cpp",
"InstrProfDataTest.cpp",
"InstrProfTest.cpp",
"ItaniumManglingCanonicalizerTest.cpp",
"MemProfTest.cpp",
"SampleProfTest.cpp",
"SymbolRemappingReaderTest.cpp",
]
}
2 changes: 0 additions & 2 deletions llvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn
Expand Up @@ -49,7 +49,6 @@ unittest("SupportTests") {
"HashBuilderTest.cpp",
"IndexedAccessorTest.cpp",
"InstructionCostTest.cpp",
"ItaniumManglingCanonicalizerTest.cpp",
"JSONTest.cpp",
"KnownBitsTest.cpp",
"LEB128Test.cpp",
Expand Down Expand Up @@ -79,7 +78,6 @@ unittest("SupportTests") {
"SpecialCaseListTest.cpp",
"SuffixTreeTest.cpp",
"SwapByteOrderTest.cpp",
"SymbolRemappingReaderTest.cpp",
"TarWriterTest.cpp",
"TaskQueueTest.cpp",
"ThreadPool.cpp",
Expand Down
1 change: 1 addition & 0 deletions utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Expand Up @@ -3188,6 +3188,7 @@ cc_binary(
copts = llvm_copts,
stamp = 0,
deps = [
":ProfileData",
":Support",
],
)
Expand Down

0 comments on commit 6c8fe96

Please sign in to comment.