[llvm] [nfc][ctx_prof] Remove the need for `PassBuilder` to know about `UseCtxProfile` (PR #104492)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 15 12:47:27 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-analysis
Author: Mircea Trofin (mtrofin)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/104492.diff
4 Files Affected:
- (modified) llvm/include/llvm/Analysis/CtxProfAnalysis.h (+1-1)
- (modified) llvm/lib/Analysis/CtxProfAnalysis.cpp (+3)
- (modified) llvm/lib/Passes/PassBuilder.cpp (-2)
- (modified) llvm/lib/Passes/PassRegistry.def (+1-1)
``````````diff
diff --git a/llvm/include/llvm/Analysis/CtxProfAnalysis.h b/llvm/include/llvm/Analysis/CtxProfAnalysis.h
index f0e2aeb0f92f7..d0fb99fe1966a 100644
--- a/llvm/include/llvm/Analysis/CtxProfAnalysis.h
+++ b/llvm/include/llvm/Analysis/CtxProfAnalysis.h
@@ -79,7 +79,7 @@ class CtxProfAnalysis : public AnalysisInfoMixin<CtxProfAnalysis> {
public:
static AnalysisKey Key;
- explicit CtxProfAnalysis(StringRef Profile) : Profile(Profile) {};
+ explicit CtxProfAnalysis(StringRef Profile = "");
using Result = PGOContextualProfile;
diff --git a/llvm/lib/Analysis/CtxProfAnalysis.cpp b/llvm/lib/Analysis/CtxProfAnalysis.cpp
index 7b4666b29a193..d0ccf4ba537f8 100644
--- a/llvm/lib/Analysis/CtxProfAnalysis.cpp
+++ b/llvm/lib/Analysis/CtxProfAnalysis.cpp
@@ -96,6 +96,9 @@ GlobalValue::GUID AssignGUIDPass::getGUID(const Function &F) {
}
AnalysisKey CtxProfAnalysis::Key;
+CtxProfAnalysis::CtxProfAnalysis(StringRef Profile)
+ : Profile(Profile.empty() ? UseCtxProfile : Profile) {}
+
PGOContextualProfile CtxProfAnalysis::run(Module &M,
ModuleAnalysisManager &MAM) {
ErrorOr<std::unique_ptr<MemoryBuffer>> MB = MemoryBuffer::getFile(Profile);
diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp
index c528863d1870a..3200767282b22 100644
--- a/llvm/lib/Passes/PassBuilder.cpp
+++ b/llvm/lib/Passes/PassBuilder.cpp
@@ -334,8 +334,6 @@ cl::opt<bool> PrintPipelinePasses(
"(best-effort only)."));
} // namespace llvm
-extern cl::opt<std::string> UseCtxProfile;
-
AnalysisKey NoOpModuleAnalysis::Key;
AnalysisKey NoOpCGSCCAnalysis::Key;
AnalysisKey NoOpFunctionAnalysis::Key;
diff --git a/llvm/lib/Passes/PassRegistry.def b/llvm/lib/Passes/PassRegistry.def
index 18f4aa19224da..442c972fc616f 100644
--- a/llvm/lib/Passes/PassRegistry.def
+++ b/llvm/lib/Passes/PassRegistry.def
@@ -20,7 +20,7 @@
#endif
MODULE_ANALYSIS("callgraph", CallGraphAnalysis())
MODULE_ANALYSIS("collector-metadata", CollectorMetadataAnalysis())
-MODULE_ANALYSIS("ctx-prof-analysis", CtxProfAnalysis(UseCtxProfile))
+MODULE_ANALYSIS("ctx-prof-analysis", CtxProfAnalysis())
MODULE_ANALYSIS("dxil-metadata", DXILMetadataAnalysis())
MODULE_ANALYSIS("dxil-resource", DXILResourceAnalysis())
MODULE_ANALYSIS("inline-advisor", InlineAdvisorAnalysis())
``````````
</details>
https://github.com/llvm/llvm-project/pull/104492
More information about the llvm-commits
mailing list