[PATCH] D147366: [MLGO] Change MBB Profile Dump from using MBB numbers to MBB IDs
Aiden Grossman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 14 00:04:32 PDT 2023
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
aidengrossman marked an inline comment as done.
Closed by commit rG35714e3a9c6a: [MLGO] Change MBB Profile Dump from using MBB numbers to MBB IDs (authored by aidengrossman).
Changed prior to commit:
https://reviews.llvm.org/D147366?vs=511625&id=513453#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D147366/new/
https://reviews.llvm.org/D147366
Files:
llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
llvm/test/CodeGen/MLRegalloc/bb-profile-dump.ll
Index: llvm/test/CodeGen/MLRegalloc/bb-profile-dump.ll
===================================================================
--- llvm/test/CodeGen/MLRegalloc/bb-profile-dump.ll
+++ llvm/test/CodeGen/MLRegalloc/bb-profile-dump.ll
@@ -3,11 +3,13 @@
; Check that the basic block profile dump outputs data and in the correct
; format.
;
-; RUN: llc -mtriple=x86_64-linux-unknown -o /dev/null -mbb-profile-dump=- %s | FileCheck %s
+; RUN: llc -mtriple=x86_64-linux-unknown -o /dev/null -basic-block-sections=labels -mbb-profile-dump=- %s | FileCheck %s
; bb profile dump is not supported on NVPTX
; UNSUPPORTED: target=nvptx{{.*}}
+; Check that given a simple case, we can return the default MBFI
+
define i64 @f2(i64 %a, i64 %b) {
%sum = add i64 %a, %b
ret i64 %sum
@@ -27,3 +29,11 @@
; CHECK-NEXT: f1,0,1.000000e+00
; CHECK-NEXT: f1,1,5.000000e-01
; CHECK-NEXT: f1,2,1.000000e+00
+
+; Check that if we pass -mbb-profile-dump but don't set -basic-block-sections,
+; we get an appropriate error message
+
+; RUN: not llc -mtriple=x86_64-linux-unknown -o /dev/null -mbb-profile-dump=- %s 2>&1 | FileCheck --check-prefix=NO-SECTIONS %s
+
+; NO-SECTIONS: <unknown>:0: error: Unable to find BB labels for MBB profile dump. -mbb-profile-dump must be called with -basic-block-sections=labels
+
Index: llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
===================================================================
--- llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -133,7 +133,7 @@
"mbb-profile-dump", cl::Hidden,
cl::desc("Basic block profile dump for external cost modelling. If "
"matching up BBs with afterwards, the compilation must be "
- "performed with -fbasic-block-sections=labels. Enabling this "
+ "performed with -basic-block-sections=labels. Enabling this "
"flag during in-process ThinLTO is not supported."));
const char DWARFGroupName[] = "dwarf";
@@ -1924,14 +1924,19 @@
OutStreamer->addBlankLine();
- // Output MBB numbers, function names, and frequencies if the flag to dump
+ // Output MBB ids, function names, and frequencies if the flag to dump
// MBB profile information has been set
if (MBBProfileDumpFileOutput) {
+ if (!MF->hasBBLabels())
+ MF->getContext().reportError(
+ SMLoc(),
+ "Unable to find BB labels for MBB profile dump. -mbb-profile-dump "
+ "must be called with -basic-block-sections=labels");
MachineBlockFrequencyInfo &MBFI =
getAnalysis<LazyMachineBlockFrequencyInfoPass>().getBFI();
for (const auto &MBB : *MF) {
*MBBProfileDumpFileOutput.get()
- << MF->getName() << "," << MBB.getNumber() << ","
+ << MF->getName() << "," << MBB.getBBID() << ","
<< MBFI.getBlockFreqRelativeToEntryBlock(&MBB) << "\n";
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D147366.513453.patch
Type: text/x-patch
Size: 2883 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230414/2b654e49/attachment.bin>
More information about the llvm-commits
mailing list