ΒΆtemplate <typename AnalysisT,
typename IRUnitT,
typename AnalysisManagerT,
typename... ExtraArgTs>
bool parseAnalysisUtilityPasses(
llvm::StringRef AnalysisName,
llvm::StringRef PipelineName,
PassManager<IRUnitT,
AnalysisManagerT,
ExtraArgTs...>& PM)
template <typename AnalysisT,
typename IRUnitT,
typename AnalysisManagerT,
typename... ExtraArgTs>
bool parseAnalysisUtilityPasses(
llvm::StringRef AnalysisName,
llvm::StringRef PipelineName,
PassManager<IRUnitT,
AnalysisManagerT,
ExtraArgTs...>& PM)
Description
This utility template takes care of adding require < > and invalidate < > passes for an analysis to a given \c PassManager. It is intended to be used during parsing of a pass pipeline when parsing a single PipelineName. When registering a new function analysis FancyAnalysis with the pass pipeline name "fancy-analysis", a matching ParsePipelineCallback could look like this: static bool parseFunctionPipeline(StringRef Name, FunctionPassManager &FPM , ArrayRef <PipelineElement > P) { if (parseAnalysisUtilityPasses <FancyAnalysis >("fancy-analysis", Name, FPM)) return true; return false; }
Declared at: llvm/include/llvm/Passes/PassBuilder.h:744
Templates
- AnalysisT
- IRUnitT
- AnalysisManagerT
- ExtraArgTs
Parameters
- llvm::StringRef AnalysisName
- llvm::StringRef PipelineName
- PassManager<IRUnitT, AnalysisManagerT, ExtraArgTs...>& PM