summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Passes/PassBuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Passes/PassBuilder.cpp')
-rw-r--r--llvm/lib/Passes/PassBuilder.cpp29
1 files changed, 25 insertions, 4 deletions
diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp
index efe2f043f6a..e436966d320 100644
--- a/llvm/lib/Passes/PassBuilder.cpp
+++ b/llvm/lib/Passes/PassBuilder.cpp
@@ -70,7 +70,11 @@ struct NoOpModulePass {
};
/// \brief No-op module analysis.
-struct NoOpModuleAnalysis : AnalysisBase<NoOpModuleAnalysis> {
+class NoOpModuleAnalysis : public AnalysisBase<NoOpModuleAnalysis> {
+ friend AnalysisBase<NoOpModuleAnalysis>;
+ static char PassID;
+
+public:
struct Result {};
Result run(Module &) { return Result(); }
static StringRef name() { return "NoOpModuleAnalysis"; }
@@ -85,7 +89,11 @@ struct NoOpCGSCCPass {
};
/// \brief No-op CGSCC analysis.
-struct NoOpCGSCCAnalysis : AnalysisBase<NoOpCGSCCAnalysis> {
+class NoOpCGSCCAnalysis : public AnalysisBase<NoOpCGSCCAnalysis> {
+ friend AnalysisBase<NoOpCGSCCAnalysis>;
+ static char PassID;
+
+public:
struct Result {};
Result run(LazyCallGraph::SCC &) { return Result(); }
static StringRef name() { return "NoOpCGSCCAnalysis"; }
@@ -98,7 +106,11 @@ struct NoOpFunctionPass {
};
/// \brief No-op function analysis.
-struct NoOpFunctionAnalysis : AnalysisBase<NoOpFunctionAnalysis> {
+class NoOpFunctionAnalysis : public AnalysisBase<NoOpFunctionAnalysis> {
+ friend AnalysisBase<NoOpFunctionAnalysis>;
+ static char PassID;
+
+public:
struct Result {};
Result run(Function &) { return Result(); }
static StringRef name() { return "NoOpFunctionAnalysis"; }
@@ -111,12 +123,21 @@ struct NoOpLoopPass {
};
/// \brief No-op loop analysis.
-struct NoOpLoopAnalysis : AnalysisBase<NoOpLoopAnalysis> {
+class NoOpLoopAnalysis : public AnalysisBase<NoOpLoopAnalysis> {
+ friend AnalysisBase<NoOpLoopAnalysis>;
+ static char PassID;
+
+public:
struct Result {};
Result run(Loop &) { return Result(); }
static StringRef name() { return "NoOpLoopAnalysis"; }
};
+char NoOpModuleAnalysis::PassID;
+char NoOpCGSCCAnalysis::PassID;
+char NoOpFunctionAnalysis::PassID;
+char NoOpLoopAnalysis::PassID;
+
} // End anonymous namespace.
void PassBuilder::registerModuleAnalyses(ModuleAnalysisManager &MAM) {
OpenPOWER on IntegriCloud