[llvm] [BOLT] fix print-mem-data not working (PR #156332)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 1 07:19:08 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-bolt
Author: Haibo Jiang (Jianghibo)
<details>
<summary>Changes</summary>
This option `print-mem-data` is currently not working, use this fix to restore its functionality.
---
Full diff: https://github.com/llvm/llvm-project/pull/156332.diff
3 Files Affected:
- (modified) bolt/include/bolt/Core/MCPlusBuilder.h (+1-1)
- (modified) bolt/lib/Core/BinaryContext.cpp (+1-1)
- (modified) bolt/lib/Core/MCPlusBuilder.cpp (+5-2)
``````````diff
diff --git a/bolt/include/bolt/Core/MCPlusBuilder.h b/bolt/include/bolt/Core/MCPlusBuilder.h
index ae04891e791f9..2bcddc82648b6 100644
--- a/bolt/include/bolt/Core/MCPlusBuilder.h
+++ b/bolt/include/bolt/Core/MCPlusBuilder.h
@@ -2190,7 +2190,7 @@ class MCPlusBuilder {
}
/// Print each annotation attached to \p Inst.
- void printAnnotations(const MCInst &Inst, raw_ostream &OS) const;
+ void printAnnotations(const MCInst &Inst, raw_ostream &OS, bool PrintMemData = false) const;
/// Remove annotation with a given \p Index.
///
diff --git a/bolt/lib/Core/BinaryContext.cpp b/bolt/lib/Core/BinaryContext.cpp
index dd0d041692484..e937751450ea8 100644
--- a/bolt/lib/Core/BinaryContext.cpp
+++ b/bolt/lib/Core/BinaryContext.cpp
@@ -2027,7 +2027,7 @@ void BinaryContext::printInstruction(raw_ostream &OS, const MCInst &Instruction,
if (MCSymbol *Label = MIB->getInstLabel(Instruction))
OS << " # Label: " << *Label;
- MIB->printAnnotations(Instruction, OS);
+ MIB->printAnnotations(Instruction, OS, PrintMemData || opts::PrintMemData);
if (opts::PrintDebugInfo)
printDebugInfo(OS, Instruction, Function, DwCtx.get());
diff --git a/bolt/lib/Core/MCPlusBuilder.cpp b/bolt/lib/Core/MCPlusBuilder.cpp
index 7f962e14ea115..c580c548eb05b 100644
--- a/bolt/lib/Core/MCPlusBuilder.cpp
+++ b/bolt/lib/Core/MCPlusBuilder.cpp
@@ -379,7 +379,7 @@ void MCPlusBuilder::stripAnnotations(MCInst &Inst, bool KeepTC) const {
}
void MCPlusBuilder::printAnnotations(const MCInst &Inst,
- raw_ostream &OS) const {
+ raw_ostream &OS, bool PrintMemData) const {
std::optional<unsigned> FirstAnnotationOp = getFirstAnnotationOpIndex(Inst);
if (!FirstAnnotationOp)
return;
@@ -390,7 +390,10 @@ void MCPlusBuilder::printAnnotations(const MCInst &Inst,
const int64_t Value = extractAnnotationValue(Imm);
const auto *Annotation = reinterpret_cast<const MCAnnotation *>(Value);
if (Index >= MCAnnotation::kGeneric) {
- OS << " # " << AnnotationNames[Index - MCAnnotation::kGeneric] << ": ";
+ std::string AnnotationName = AnnotationNames[Index - MCAnnotation::kGeneric];
+ if (!PrintMemData && AnnotationName == "MemoryAccessProfile")
+ continue;
+ OS << " # " << AnnotationName << ": ";
Annotation->print(OS);
}
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/156332
More information about the llvm-commits
mailing list