[llvm] d8873df - [AsmPrint] Dump raw frequencies in `-mbb-profile-dump` (#66818)

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 19 14:37:10 PDT 2023


Author: Mircea Trofin
Date: 2023-09-19T14:37:06-07:00
New Revision: d8873df4dc74cdcbbfd3334657daf9fedfaab951

URL: https://github.com/llvm/llvm-project/commit/d8873df4dc74cdcbbfd3334657daf9fedfaab951
DIFF: https://github.com/llvm/llvm-project/commit/d8873df4dc74cdcbbfd3334657daf9fedfaab951.diff

LOG: [AsmPrint] Dump raw frequencies in `-mbb-profile-dump` (#66818)

We were losing the function entry count, which is useful to check profile quality. For the original cases where we want
entrypoint-relative MBB frequencies, the user would just need to divide these values by the entrypoint (first MBB, with ID=0) value.

Added: 
    

Modified: 
    llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    llvm/test/CodeGen/MLRegAlloc/bb-profile-dump.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index 2ce08a2ff43955b..0c4ea1b3d9f04d9 100644
--- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -1940,7 +1940,7 @@ void AsmPrinter::emitFunctionBody() {
     for (const auto &MBB : *MF) {
       *MBBProfileDumpFileOutput.get()
           << MF->getName() << "," << MBB.getBBID() << ","
-          << MBFI.getBlockFreqRelativeToEntryBlock(&MBB) << "\n";
+          << MBFI.getBlockFreq(&MBB).getFrequency() << "\n";
     }
   }
 }

diff  --git a/llvm/test/CodeGen/MLRegAlloc/bb-profile-dump.ll b/llvm/test/CodeGen/MLRegAlloc/bb-profile-dump.ll
index e0ac148456cacbb..934c281219d4ae7 100644
--- a/llvm/test/CodeGen/MLRegAlloc/bb-profile-dump.ll
+++ b/llvm/test/CodeGen/MLRegAlloc/bb-profile-dump.ll
@@ -12,6 +12,8 @@ define i64 @f2(i64 %a, i64 %b) {
     ret i64 %sum
 }
 
+; CHECK: f2,0,8
+
 define i64 @f1() {
     %sum = call i64 @f2(i64 2, i64 2)
     %isEqual = icmp eq i64 %sum, 4
@@ -22,10 +24,9 @@ ifNotEqual:
     ret i64 %sum
 }
 
-; CHECK: f2,0,1.000000e+00
-; CHECK-NEXT: f1,0,1.000000e+00
-; CHECK-NEXT: f1,1,5.000000e-01
-; CHECK-NEXT: f1,2,1.000000e+00
+; CHECK-NEXT: f1,0,16
+; CHECK-NEXT: f1,1,8
+; CHECK-NEXT: f1,2,16
 
 ; Check that if we pass -mbb-profile-dump but don't set -basic-block-sections,
 ; we get an appropriate error message


        


More information about the llvm-commits mailing list