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