RKSimon created this revision. RKSimon added reviewers: rsmith, chapuni, MaskRay, kristina, erik.pilkington. Herald added subscribers: wenlei, hiraditya. Herald added a project: All. RKSimon requested review of this revision. Herald added projects: clang, LLVM. Herald added a subscriber: cfe-commits.
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. An alternative would be to begin a LLVMSymbol library but I don't think we have a strong enough need for that yet. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D143318 Files: clang/docs/tools/clang-formatted-files.txt llvm/include/llvm/ProfileData/ItaniumManglingCanonicalizer.h llvm/include/llvm/ProfileData/SampleProfReader.h llvm/include/llvm/ProfileData/SymbolRemappingReader.h llvm/lib/ProfileData/CMakeLists.txt llvm/lib/ProfileData/InstrProfReader.cpp llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp llvm/lib/ProfileData/SymbolRemappingReader.cpp llvm/lib/Support/CMakeLists.txt llvm/tools/llvm-cxxmap/CMakeLists.txt llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp llvm/unittests/ProfileData/CMakeLists.txt llvm/unittests/ProfileData/ItaniumManglingCanonicalizerTest.cpp llvm/unittests/ProfileData/SymbolRemappingReaderTest.cpp llvm/unittests/Support/CMakeLists.txt llvm/utils/gn/secondary/llvm/lib/ProfileData/BUILD.gn llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn llvm/utils/gn/secondary/llvm/tools/llvm-cxxmap/BUILD.gn llvm/utils/gn/secondary/llvm/unittests/ProfileData/BUILD.gn llvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn
Index: llvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn =================================================================== --- llvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn +++ llvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn @@ -49,7 +49,6 @@ "HashBuilderTest.cpp", "IndexedAccessorTest.cpp", "InstructionCostTest.cpp", - "ItaniumManglingCanonicalizerTest.cpp", "JSONTest.cpp", "KnownBitsTest.cpp", "LEB128Test.cpp", @@ -79,7 +78,6 @@ "SpecialCaseListTest.cpp", "SuffixTreeTest.cpp", "SwapByteOrderTest.cpp", - "SymbolRemappingReaderTest.cpp", "TarWriterTest.cpp", "TaskQueueTest.cpp", "ThreadPool.cpp", Index: llvm/utils/gn/secondary/llvm/unittests/ProfileData/BUILD.gn =================================================================== --- llvm/utils/gn/secondary/llvm/unittests/ProfileData/BUILD.gn +++ llvm/utils/gn/secondary/llvm/unittests/ProfileData/BUILD.gn @@ -11,7 +11,9 @@ "CoverageMappingTest.cpp", "InstrProfDataTest.cpp", "InstrProfTest.cpp", + "ItaniumManglingCanonicalizerTest.cpp", "MemProfTest.cpp", "SampleProfTest.cpp", + "SymbolRemappingReaderTest.cpp", ] } Index: llvm/utils/gn/secondary/llvm/tools/llvm-cxxmap/BUILD.gn =================================================================== --- llvm/utils/gn/secondary/llvm/tools/llvm-cxxmap/BUILD.gn +++ 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", ] Index: llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn =================================================================== --- llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn +++ llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn @@ -89,7 +89,6 @@ "InstructionCost.cpp", "IntEqClasses.cpp", "IntervalMap.cpp", - "ItaniumManglingCanonicalizer.cpp", "JSON.cpp", "KnownBits.cpp", "LEB128.cpp", @@ -133,7 +132,6 @@ "StringRef.cpp", "StringSaver.cpp", "SuffixTree.cpp", - "SymbolRemappingReader.cpp", "SystemUtils.cpp", "TarWriter.cpp", "ThreadPool.cpp", Index: llvm/utils/gn/secondary/llvm/lib/ProfileData/BUILD.gn =================================================================== --- llvm/utils/gn/secondary/llvm/lib/ProfileData/BUILD.gn +++ llvm/utils/gn/secondary/llvm/lib/ProfileData/BUILD.gn @@ -14,11 +14,13 @@ "InstrProfCorrelator.cpp", "InstrProfReader.cpp", "InstrProfWriter.cpp", + "ItaniumManglingCanonicalizer.cpp", "MemProf.cpp", "ProfileSummaryBuilder.cpp", "RawMemProfReader.cpp", "SampleProf.cpp", "SampleProfReader.cpp", "SampleProfWriter.cpp", + "SymbolRemappingReader.cpp", ] } Index: llvm/unittests/Support/CMakeLists.txt =================================================================== --- llvm/unittests/Support/CMakeLists.txt +++ llvm/unittests/Support/CMakeLists.txt @@ -46,7 +46,6 @@ HashBuilderTest.cpp IndexedAccessorTest.cpp InstructionCostTest.cpp - ItaniumManglingCanonicalizerTest.cpp JSONTest.cpp KnownBitsTest.cpp LEB128Test.cpp @@ -76,7 +75,6 @@ SpecialCaseListTest.cpp SuffixTreeTest.cpp SwapByteOrderTest.cpp - SymbolRemappingReaderTest.cpp TarWriterTest.cpp TaskQueueTest.cpp ThreadPool.cpp Index: llvm/unittests/ProfileData/SymbolRemappingReaderTest.cpp =================================================================== --- llvm/unittests/ProfileData/SymbolRemappingReaderTest.cpp +++ llvm/unittests/ProfileData/SymbolRemappingReaderTest.cpp @@ -6,7 +6,7 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Support/SymbolRemappingReader.h" +#include "llvm/ProfileData/SymbolRemappingReader.h" #include "llvm/Support/MemoryBuffer.h" #include "gtest/gtest.h" Index: llvm/unittests/ProfileData/ItaniumManglingCanonicalizerTest.cpp =================================================================== --- llvm/unittests/ProfileData/ItaniumManglingCanonicalizerTest.cpp +++ llvm/unittests/ProfileData/ItaniumManglingCanonicalizerTest.cpp @@ -6,9 +6,9 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Support/ItaniumManglingCanonicalizer.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/StringRef.h" +#include "llvm/ProfileData/ItaniumManglingCanonicalizer.h" #include "gtest/gtest.h" #include <cstdlib> Index: llvm/unittests/ProfileData/CMakeLists.txt =================================================================== --- llvm/unittests/ProfileData/CMakeLists.txt +++ llvm/unittests/ProfileData/CMakeLists.txt @@ -10,8 +10,10 @@ CoverageMappingTest.cpp InstrProfDataTest.cpp InstrProfTest.cpp - SampleProfTest.cpp + ItaniumManglingCanonicalizerTest.cpp MemProfTest.cpp + SampleProfTest.cpp + SymbolRemappingReaderTest.cpp ) target_link_libraries(ProfileDataTests PRIVATE LLVMTestingSupport) Index: llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp =================================================================== --- llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp +++ llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp @@ -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" Index: llvm/tools/llvm-cxxmap/CMakeLists.txt =================================================================== --- llvm/tools/llvm-cxxmap/CMakeLists.txt +++ llvm/tools/llvm-cxxmap/CMakeLists.txt @@ -1,6 +1,7 @@ set(LLVM_LINK_COMPONENTS Core Support + ProfileData ) add_llvm_tool(llvm-cxxmap Index: llvm/lib/Support/CMakeLists.txt =================================================================== --- llvm/lib/Support/CMakeLists.txt +++ llvm/lib/Support/CMakeLists.txt @@ -175,7 +175,6 @@ InstructionCost.cpp IntEqClasses.cpp IntervalMap.cpp - ItaniumManglingCanonicalizer.cpp JSON.cpp KnownBits.cpp LEB128.cpp @@ -218,7 +217,6 @@ StringSaver.cpp StringRef.cpp SuffixTree.cpp - SymbolRemappingReader.cpp SystemUtils.cpp TarWriter.cpp ThreadPool.cpp Index: llvm/lib/ProfileData/SymbolRemappingReader.cpp =================================================================== --- llvm/lib/ProfileData/SymbolRemappingReader.cpp +++ llvm/lib/ProfileData/SymbolRemappingReader.cpp @@ -11,9 +11,9 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Support/SymbolRemappingReader.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/ADT/Twine.h" +#include "llvm/ProfileData/SymbolRemappingReader.h" #include "llvm/Support/LineIterator.h" #include "llvm/Support/MemoryBuffer.h" Index: llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp =================================================================== --- llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp +++ llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp @@ -6,11 +6,11 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Support/ItaniumManglingCanonicalizer.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/FoldingSet.h" #include "llvm/ADT/StringRef.h" #include "llvm/Demangle/ItaniumDemangle.h" +#include "llvm/ProfileData/ItaniumManglingCanonicalizer.h" #include "llvm/Support/Allocator.h" using namespace llvm; Index: llvm/lib/ProfileData/InstrProfReader.cpp =================================================================== --- llvm/lib/ProfileData/InstrProfReader.cpp +++ llvm/lib/ProfileData/InstrProfReader.cpp @@ -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> Index: llvm/lib/ProfileData/CMakeLists.txt =================================================================== --- llvm/lib/ProfileData/CMakeLists.txt +++ llvm/lib/ProfileData/CMakeLists.txt @@ -4,12 +4,14 @@ 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 Index: llvm/include/llvm/ProfileData/SymbolRemappingReader.h =================================================================== --- llvm/include/llvm/ProfileData/SymbolRemappingReader.h +++ llvm/include/llvm/ProfileData/SymbolRemappingReader.h @@ -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 { @@ -130,4 +130,4 @@ } // end namespace llvm -#endif // LLVM_SUPPORT_SYMBOLREMAPPINGREADER_H +#endif // LLVM_PROFILEDATA_SYMBOLREMAPPINGREADER_H Index: llvm/include/llvm/ProfileData/SampleProfReader.h =================================================================== --- llvm/include/llvm/ProfileData/SampleProfReader.h +++ llvm/include/llvm/ProfileData/SampleProfReader.h @@ -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> Index: llvm/include/llvm/ProfileData/ItaniumManglingCanonicalizer.h =================================================================== --- llvm/include/llvm/ProfileData/ItaniumManglingCanonicalizer.h +++ llvm/include/llvm/ProfileData/ItaniumManglingCanonicalizer.h @@ -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> @@ -90,4 +90,4 @@ }; } // namespace llvm -#endif // LLVM_SUPPORT_ITANIUMMANGLINGCANONICALIZER_H +#endif // LLVM_PROFILEDATA_ITANIUMMANGLINGCANONICALIZER_H Index: clang/docs/tools/clang-formatted-files.txt =================================================================== --- clang/docs/tools/clang-formatted-files.txt +++ clang/docs/tools/clang-formatted-files.txt @@ -5444,8 +5444,10 @@ 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 @@ -5496,7 +5498,6 @@ 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 @@ -5518,7 +5519,6 @@ 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 @@ -7325,6 +7325,7 @@ 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 @@ -7357,7 +7358,6 @@ 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
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits