[llvm] [memprof] Add YAML read/write support to llvm-profdata (PR #118915)

Teresa Johnson via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 6 08:19:10 PST 2024


================
@@ -723,6 +723,35 @@ loadInput(const WeightedFile &Input, SymbolRemapper *Remapper,
     return;
   }
 
+  using ::llvm::memprof::YAMLMemProfReader;
+  if (YAMLMemProfReader::hasFormat(Input.Filename)) {
+    auto ReaderOrErr = YAMLMemProfReader::create(Input.Filename);
+    if (!ReaderOrErr) {
+      exitWithError(ReaderOrErr.takeError(), Input.Filename);
+    }
+    std::unique_ptr<YAMLMemProfReader> Reader = std::move(ReaderOrErr.get());
+    // Check if the profile types can be merged, e.g. clang frontend profiles
+    // should not be merged with memprof profiles.
+    if (Error E = WC->Writer.mergeProfileKind(Reader->getProfileKind())) {
+      consumeError(std::move(E));
+      WC->Errors.emplace_back(
+          make_error<StringError>(
+              "Cannot merge MemProf profile with Clang generated profile.",
----------------
teresajohnson wrote:

Do we know for sure that this is a Clang generated profile? Couldn't it be an LLVM IR PGO profile? Or something else?

https://github.com/llvm/llvm-project/pull/118915


More information about the llvm-commits mailing list