[llvm] [llvm-profdata] Fix detailed summary format on Windows (PR #124169)

Ellis Hoag via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 23 10:20:01 PST 2025


https://github.com/ellishg created https://github.com/llvm/llvm-project/pull/124169

The detailed summary format was changed in https://github.com/llvm/llvm-project/pull/105915 which broke `llvm/test/tools/llvm-profdata/general.proftext` (XFAILed in https://github.com/llvm/llvm-project/pull/124165). Apparently the behavior of `%lu` is different between Linux and Windows, so I reverted back to using `<<` style formats.

>From b4aefdeffa7ea98d78d93d92f5411369e8452652 Mon Sep 17 00:00:00 2001
From: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Date: Thu, 23 Jan 2025 10:17:14 -0800
Subject: [PATCH] [llvm-profdata] Fix detailed summary format on Windows

---
 llvm/lib/IR/ProfileSummary.cpp                 | 11 ++++++-----
 llvm/test/tools/llvm-profdata/general.proftext |  2 --
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/llvm/lib/IR/ProfileSummary.cpp b/llvm/lib/IR/ProfileSummary.cpp
index 59f29e5982dfb0..12ae81ca8d5f3f 100644
--- a/llvm/lib/IR/ProfileSummary.cpp
+++ b/llvm/lib/IR/ProfileSummary.cpp
@@ -259,10 +259,11 @@ void ProfileSummary::printSummary(raw_ostream &OS) const {
 void ProfileSummary::printDetailedSummary(raw_ostream &OS) const {
   OS << "Detailed summary:\n";
   for (const auto &Entry : DetailedSummary) {
-    OS << format("%lu blocks (%.2f%%) with count >= %lu account for %0.6g%% of "
-                 "the total counts.\n",
-                 Entry.NumCounts,
-                 NumCounts ? (100.f * Entry.NumCounts / NumCounts) : 0,
-                 Entry.MinCount, 100.f * Entry.Cutoff / Scale);
+    OS << Entry.NumCounts << " blocks "
+       << format("(%.2f%%)",
+                 NumCounts ? (100.f * Entry.NumCounts / NumCounts) : 0)
+       << " with count >= " << Entry.MinCount << " account for "
+       << format("%0.6g", 100.f * Entry.Cutoff / Scale)
+       << "% of the total counts.\n";
   }
 }
diff --git a/llvm/test/tools/llvm-profdata/general.proftext b/llvm/test/tools/llvm-profdata/general.proftext
index ca532f9a37116d..89762f2540f6a6 100644
--- a/llvm/test/tools/llvm-profdata/general.proftext
+++ b/llvm/test/tools/llvm-profdata/general.proftext
@@ -1,5 +1,3 @@
-# FIXME: Somehow this is failing on windows after https://github.com/llvm/llvm-project/pull/105915
-# XFAIL: system-windows
 # RUN: llvm-profdata merge -sparse=true %s -o %t.profdata
 
 # RUN: llvm-profdata merge -sparse=false %s -o %t.profdata.dense



More information about the llvm-commits mailing list