diff options
Diffstat (limited to 'include/llvm/Analysis/AssumptionCache.h')
-rw-r--r-- | include/llvm/Analysis/AssumptionCache.h | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/include/llvm/Analysis/AssumptionCache.h b/include/llvm/Analysis/AssumptionCache.h index b903f96d55b2..06f2a117ac21 100644 --- a/include/llvm/Analysis/AssumptionCache.h +++ b/include/llvm/Analysis/AssumptionCache.h @@ -22,16 +22,12 @@ #include "llvm/IR/Function.h" #include "llvm/IR/Instructions.h" #include "llvm/IR/ValueHandle.h" +#include "llvm/IR/PassManager.h" #include "llvm/Pass.h" #include <memory> namespace llvm { -// FIXME: Replace this brittle forward declaration with the include of the new -// PassManager.h when doing so doesn't break the PassManagerBuilder. -template <typename IRUnitT> class AnalysisManager; -class PreservedAnalyses; - /// \brief A cache of @llvm.assume calls within a function. /// /// This cache provides fast lookup of assumptions within a function by caching @@ -97,36 +93,31 @@ public: /// /// This analysis is intended for use with the new pass manager and will vend /// assumption caches for a given function. -class AssumptionAnalysis { +class AssumptionAnalysis : public AnalysisInfoMixin<AssumptionAnalysis> { + friend AnalysisInfoMixin<AssumptionAnalysis>; static char PassID; public: typedef AssumptionCache Result; - /// \brief Opaque, unique identifier for this analysis pass. - static void *ID() { return (void *)&PassID; } - - /// \brief Provide a name for the analysis for debugging and logging. - static StringRef name() { return "AssumptionAnalysis"; } - AssumptionAnalysis() {} AssumptionAnalysis(const AssumptionAnalysis &Arg) {} AssumptionAnalysis(AssumptionAnalysis &&Arg) {} AssumptionAnalysis &operator=(const AssumptionAnalysis &RHS) { return *this; } AssumptionAnalysis &operator=(AssumptionAnalysis &&RHS) { return *this; } - AssumptionCache run(Function &F) { return AssumptionCache(F); } + AssumptionCache run(Function &F, FunctionAnalysisManager &) { + return AssumptionCache(F); + } }; /// \brief Printer pass for the \c AssumptionAnalysis results. -class AssumptionPrinterPass { +class AssumptionPrinterPass : public PassInfoMixin<AssumptionPrinterPass> { raw_ostream &OS; public: explicit AssumptionPrinterPass(raw_ostream &OS) : OS(OS) {} - PreservedAnalyses run(Function &F, AnalysisManager<Function> *AM); - - static StringRef name() { return "AssumptionPrinterPass"; } + PreservedAnalyses run(Function &F, AnalysisManager<Function> &AM); }; /// \brief An immutable pass that tracks lazily created \c AssumptionCache |