[llvm] [SampleProfile] Always use FAM to get ORE (PR #159858)
Aiden Grossman via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 19 15:09:05 PDT 2025
https://github.com/boomanaiden154 updated https://github.com/llvm/llvm-project/pull/159858
>From 8563a8d12f5ef5c433df829bbd7a170bcabffd64 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Fri, 19 Sep 2025 22:03:01 +0000
Subject: [PATCH 1/2] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?=
=?UTF-8?q?itial=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Created using spr 1.3.6
---
llvm/lib/Transforms/IPO/SampleProfile.cpp | 23 +++++++++--------------
1 file changed, 9 insertions(+), 14 deletions(-)
diff --git a/llvm/lib/Transforms/IPO/SampleProfile.cpp b/llvm/lib/Transforms/IPO/SampleProfile.cpp
index 000b3ccbb3cbc..964344e9f49d4 100644
--- a/llvm/lib/Transforms/IPO/SampleProfile.cpp
+++ b/llvm/lib/Transforms/IPO/SampleProfile.cpp
@@ -485,11 +485,11 @@ class SampleProfileLoader final : public SampleProfileLoaderBaseImpl<Function> {
UseFlattenedProfile(UseFlattenedProfile) {}
bool doInitialization(Module &M, FunctionAnalysisManager *FAM = nullptr);
- bool runOnModule(Module &M, ModuleAnalysisManager *AM,
+ bool runOnModule(Module &M, ModuleAnalysisManager &AM,
ProfileSummaryInfo *_PSI);
protected:
- bool runOnFunction(Function &F, ModuleAnalysisManager *AM);
+ bool runOnFunction(Function &F, ModuleAnalysisManager &AM);
bool emitAnnotations(Function &F);
ErrorOr<uint64_t> getInstWeight(const Instruction &I) override;
const FunctionSamples *findCalleeFunctionSamples(const CallBase &I) const;
@@ -2160,7 +2160,7 @@ void SampleProfileLoader::removePseudoProbeInstsDiscriminator(Module &M) {
}
}
-bool SampleProfileLoader::runOnModule(Module &M, ModuleAnalysisManager *AM,
+bool SampleProfileLoader::runOnModule(Module &M, ModuleAnalysisManager &AM,
ProfileSummaryInfo *_PSI) {
GUIDToFuncNameMapper Mapper(M, *Reader, GUIDToFuncNameMap);
@@ -2238,7 +2238,7 @@ bool SampleProfileLoader::runOnModule(Module &M, ModuleAnalysisManager *AM,
return retval;
}
-bool SampleProfileLoader::runOnFunction(Function &F, ModuleAnalysisManager *AM) {
+bool SampleProfileLoader::runOnFunction(Function &F, ModuleAnalysisManager &AM) {
LLVM_DEBUG(dbgs() << "\n\nProcessing Function " << F.getName() << "\n");
DILocation2SampleMap.clear();
// By default the entry count is initialized to -1, which will be treated
@@ -2290,15 +2290,10 @@ bool SampleProfileLoader::runOnFunction(Function &F, ModuleAnalysisManager *AM)
if (!F.getEntryCount())
F.setEntryCount(ProfileCount(initialEntryCount, Function::PCT_Real));
std::unique_ptr<OptimizationRemarkEmitter> OwnedORE;
- if (AM) {
- auto &FAM =
- AM->getResult<FunctionAnalysisManagerModuleProxy>(*F.getParent())
- .getManager();
- ORE = &FAM.getResult<OptimizationRemarkEmitterAnalysis>(F);
- } else {
- OwnedORE = std::make_unique<OptimizationRemarkEmitter>(&F);
- ORE = OwnedORE.get();
- }
+ auto &FAM =
+ AM.getResult<FunctionAnalysisManagerModuleProxy>(*F.getParent())
+ .getManager();
+ ORE = &FAM.getResult<OptimizationRemarkEmitterAnalysis>(F);
if (FunctionSamples::ProfileIsCS)
Samples = ContextTracker->getBaseSamplesFor(F);
@@ -2363,7 +2358,7 @@ PreservedAnalyses SampleProfileLoaderPass::run(Module &M,
return PreservedAnalyses::all();
ProfileSummaryInfo *PSI = &AM.getResult<ProfileSummaryAnalysis>(M);
- if (!SampleLoader.runOnModule(M, &AM, PSI))
+ if (!SampleLoader.runOnModule(M, AM, PSI))
return PreservedAnalyses::all();
return PreservedAnalyses::none();
>From 4d322f0c754e65676012de01b030baed282cb1d0 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Fri, 19 Sep 2025 22:08:54 +0000
Subject: [PATCH 2/2] formatting
Created using spr 1.3.6
---
llvm/lib/Transforms/IPO/SampleProfile.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/llvm/lib/Transforms/IPO/SampleProfile.cpp b/llvm/lib/Transforms/IPO/SampleProfile.cpp
index 964344e9f49d4..5bc7e34938127 100644
--- a/llvm/lib/Transforms/IPO/SampleProfile.cpp
+++ b/llvm/lib/Transforms/IPO/SampleProfile.cpp
@@ -2238,7 +2238,8 @@ bool SampleProfileLoader::runOnModule(Module &M, ModuleAnalysisManager &AM,
return retval;
}
-bool SampleProfileLoader::runOnFunction(Function &F, ModuleAnalysisManager &AM) {
+bool SampleProfileLoader::runOnFunction(Function &F,
+ ModuleAnalysisManager &AM) {
LLVM_DEBUG(dbgs() << "\n\nProcessing Function " << F.getName() << "\n");
DILocation2SampleMap.clear();
// By default the entry count is initialized to -1, which will be treated
@@ -2290,9 +2291,8 @@ bool SampleProfileLoader::runOnFunction(Function &F, ModuleAnalysisManager &AM)
if (!F.getEntryCount())
F.setEntryCount(ProfileCount(initialEntryCount, Function::PCT_Real));
std::unique_ptr<OptimizationRemarkEmitter> OwnedORE;
- auto &FAM =
- AM.getResult<FunctionAnalysisManagerModuleProxy>(*F.getParent())
- .getManager();
+ auto &FAM = AM.getResult<FunctionAnalysisManagerModuleProxy>(*F.getParent())
+ .getManager();
ORE = &FAM.getResult<OptimizationRemarkEmitterAnalysis>(F);
if (FunctionSamples::ProfileIsCS)
More information about the llvm-commits
mailing list