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

Reply via email to