[llvm-branch-commits] [NFCi][NewPM][x86] Use callbacks to get analyses in AsmPrinter (PR #182796)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sun Feb 22 20:12:16 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-x86
Author: Aiden Grossman (boomanaiden154)
<details>
<summary>Changes</summary>
This allows for overriding these call backs when using the NewPM which
has different methods for obtaining analysis results.
---
Full diff: https://github.com/llvm/llvm-project/pull/182796.diff
2 Files Affected:
- (modified) llvm/lib/Target/X86/X86AsmPrinter.cpp (+15-5)
- (modified) llvm/lib/Target/X86/X86AsmPrinter.h (+3)
``````````diff
diff --git a/llvm/lib/Target/X86/X86AsmPrinter.cpp b/llvm/lib/Target/X86/X86AsmPrinter.cpp
index 47e329d368e0b..4f8bc83434710 100644
--- a/llvm/lib/Target/X86/X86AsmPrinter.cpp
+++ b/llvm/lib/Target/X86/X86AsmPrinter.cpp
@@ -55,7 +55,19 @@ using namespace llvm;
X86AsmPrinter::X86AsmPrinter(TargetMachine &TM,
std::unique_ptr<MCStreamer> Streamer)
- : AsmPrinter(TM, std::move(Streamer), ID), FM(*this) {}
+ : AsmPrinter(TM, std::move(Streamer), ID), FM(*this) {
+ GetPSI = [this](Module &M) -> ProfileSummaryInfo * {
+ if (auto *PSIW = getAnalysisIfAvailable<ProfileSummaryInfoWrapperPass>())
+ return &PSIW->getPSI();
+ return nullptr;
+ };
+ GetSDPI = [this](Module &M) -> StaticDataProfileInfo * {
+ if (auto *SDPIW =
+ getAnalysisIfAvailable<StaticDataProfileInfoWrapperPass>())
+ return &SDPIW->getStaticDataProfileInfo();
+ return nullptr;
+ };
+}
//===----------------------------------------------------------------------===//
// Primitive Helper Functions.
@@ -64,10 +76,8 @@ X86AsmPrinter::X86AsmPrinter(TargetMachine &TM,
/// runOnMachineFunction - Emit the function body.
///
bool X86AsmPrinter::runOnMachineFunction(MachineFunction &MF) {
- if (auto *PSIW = getAnalysisIfAvailable<ProfileSummaryInfoWrapperPass>())
- PSI = &PSIW->getPSI();
- if (auto *SDPIW = getAnalysisIfAvailable<StaticDataProfileInfoWrapperPass>())
- SDPI = &SDPIW->getStaticDataProfileInfo();
+ PSI = GetPSI(*MF.getFunction().getParent());
+ SDPI = GetSDPI(*MF.getFunction().getParent());
Subtarget = &MF.getSubtarget<X86Subtarget>();
diff --git a/llvm/lib/Target/X86/X86AsmPrinter.h b/llvm/lib/Target/X86/X86AsmPrinter.h
index b5c73abeac932..a56073ac1fe0b 100644
--- a/llvm/lib/Target/X86/X86AsmPrinter.h
+++ b/llvm/lib/Target/X86/X86AsmPrinter.h
@@ -199,6 +199,9 @@ class LLVM_LIBRARY_VISIBILITY X86AsmPrinter : public AsmPrinter {
bool shouldEmitWeakSwiftAsyncExtendedFramePointerFlags() const override {
return ShouldEmitWeakSwiftAsyncExtendedFramePointerFlags;
}
+
+ std::function<ProfileSummaryInfo *(Module &)> GetPSI;
+ std::function<StaticDataProfileInfo *(Module &)> GetSDPI;
};
} // end namespace llvm
``````````
</details>
https://github.com/llvm/llvm-project/pull/182796
More information about the llvm-branch-commits
mailing list