Add require<> or invalidate<> utility passes for an analysis.
Synopsis
Declared in <llvm/Passes/PassBuilder.h>
template<
typename AnalysisT,
typename IRUnitT,
typename AnalysisManagerT,
typename... ExtraArgTs>
bool
parseAnalysisUtilityPasses(
StringRef AnalysisName,
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 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; }
Return Value
True if PipelineName was a require or invalidate of AnalysisName.
Parameters
Name |
Description |
AnalysisName |
Canonical analysis name to match inside require/invalidate. |
PipelineName |
Full pipeline element name being parsed. |
PM |
Pass manager that receives the require or invalidate pass. |
Created with MrDocs