LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::PassInfoMixin< DerivedT > Struct Template Reference

A CRTP mix-in to automatically provide informational APIs needed for passes. More...

#include "llvm/IR/PassManager.h"

Inherited by llvm::AnalysisInfoMixin< PreservedCFGCheckerAnalysis >, llvm::AnalysisInfoMixin< PreservedFunctionHashAnalysis >, llvm::AnalysisInfoMixin< PreservedModuleHashAnalysis >, llvm::AnalysisInfoMixin< AAManager >, llvm::AnalysisInfoMixin< AMDGPUAA >, llvm::AnalysisInfoMixin< AssumptionAnalysis >, llvm::AnalysisInfoMixin< BasicAA >, llvm::AnalysisInfoMixin< BasicBlockSectionsProfileReaderAnalysis >, llvm::AnalysisInfoMixin< BlockFrequencyAnalysis >, llvm::AnalysisInfoMixin< BranchProbabilityAnalysis >, llvm::AnalysisInfoMixin< CallGraphAnalysis >, llvm::AnalysisInfoMixin< CollectorMetadataAnalysis >, llvm::AnalysisInfoMixin< CtxProfAnalysis >, llvm::AnalysisInfoMixin< CycleAnalysis >, llvm::AnalysisInfoMixin< DDGAnalysis >, llvm::AnalysisInfoMixin< DXILMetadataAnalysis >, llvm::AnalysisInfoMixin< DXILResourceBindingAnalysis >, llvm::AnalysisInfoMixin< DXILResourceMDAnalysis >, llvm::AnalysisInfoMixin< DXILResourceTypeAnalysis >, llvm::AnalysisInfoMixin< DebugAssignmentTrackingAnalysis >, llvm::AnalysisInfoMixin< DemandedBitsAnalysis >, llvm::AnalysisInfoMixin< DependenceAnalysis >, llvm::AnalysisInfoMixin< DominanceFrontierAnalysis >, llvm::AnalysisInfoMixin< DominatorTreeAnalysis >, llvm::AnalysisInfoMixin< EdgeBundlesAnalysis >, llvm::AnalysisInfoMixin< FunctionAnalysisManagerCGSCCProxy >, llvm::AnalysisInfoMixin< FunctionAnalysisManagerMachineFunctionProxy >, llvm::AnalysisInfoMixin< FunctionPropertiesAnalysis >, llvm::AnalysisInfoMixin< GCFunctionAnalysis >, llvm::AnalysisInfoMixin< GlobalsAA >, llvm::AnalysisInfoMixin< IRSimilarityAnalysis >, llvm::AnalysisInfoMixin< IVUsersAnalysis >, llvm::AnalysisInfoMixin< InlineAdvisorAnalysis >, llvm::AnalysisInfoMixin< InlineSizeEstimatorAnalysis >, llvm::AnalysisInfoMixin< InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT > >, llvm::AnalysisInfoMixin< LastRunTrackingAnalysis >, llvm::AnalysisInfoMixin< LazyCallGraphAnalysis >, llvm::AnalysisInfoMixin< LazyValueAnalysis >, llvm::AnalysisInfoMixin< LiveDebugVariablesAnalysis >, llvm::AnalysisInfoMixin< LiveIntervalsAnalysis >, llvm::AnalysisInfoMixin< LiveRegMatrixAnalysis >, llvm::AnalysisInfoMixin< LiveStacksAnalysis >, llvm::AnalysisInfoMixin< LiveVariablesAnalysis >, llvm::AnalysisInfoMixin< LoopAccessAnalysis >, llvm::AnalysisInfoMixin< LoopAnalysis >, llvm::AnalysisInfoMixin< LoopNestAnalysis >, llvm::AnalysisInfoMixin< MachineBlockFrequencyAnalysis >, llvm::AnalysisInfoMixin< MachineBranchProbabilityAnalysis >, llvm::AnalysisInfoMixin< MachineDominatorTreeAnalysis >, llvm::AnalysisInfoMixin< MachineFunctionAnalysis >, llvm::AnalysisInfoMixin< MachineLoopAnalysis >, llvm::AnalysisInfoMixin< MachineModuleAnalysis >, llvm::AnalysisInfoMixin< MachineOptimizationRemarkEmitterAnalysis >, llvm::AnalysisInfoMixin< MachinePostDominatorTreeAnalysis >, llvm::AnalysisInfoMixin< MachineTraceMetricsAnalysis >, llvm::AnalysisInfoMixin< MemoryDependenceAnalysis >, llvm::AnalysisInfoMixin< MemorySSAAnalysis >, llvm::AnalysisInfoMixin< ModuleSummaryIndexAnalysis >, llvm::AnalysisInfoMixin< NVPTXAA >, llvm::AnalysisInfoMixin< NoOpCGSCCAnalysis >, llvm::AnalysisInfoMixin< NoOpFunctionAnalysis >, llvm::AnalysisInfoMixin< NoOpLoopAnalysis >, llvm::AnalysisInfoMixin< NoOpModuleAnalysis >, llvm::AnalysisInfoMixin< OptimizationRemarkEmitterAnalysis >, llvm::AnalysisInfoMixin< OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... > >, llvm::AnalysisInfoMixin< PassInstrumentationAnalysis >, llvm::AnalysisInfoMixin< PhiValuesAnalysis >, llvm::AnalysisInfoMixin< PhysicalRegisterUsageAnalysis >, llvm::AnalysisInfoMixin< PluginInlineAdvisorAnalysis >, llvm::AnalysisInfoMixin< PluginInlineOrderAnalysis >, llvm::AnalysisInfoMixin< PostDominatorTreeAnalysis >, llvm::AnalysisInfoMixin< ProfileSummaryAnalysis >, llvm::AnalysisInfoMixin< RegUsageInfoCollectorPass >, llvm::AnalysisInfoMixin< RegionInfoAnalysis >, llvm::AnalysisInfoMixin< SCEVAA >, llvm::AnalysisInfoMixin< SPIRVConvergenceRegionAnalysis >, llvm::AnalysisInfoMixin< SSPLayoutAnalysis >, llvm::AnalysisInfoMixin< ScalarEvolutionAnalysis >, llvm::AnalysisInfoMixin< ScopedNoAliasAA >, llvm::AnalysisInfoMixin< ShouldNotRunFunctionPassesAnalysis >, llvm::AnalysisInfoMixin< ShouldRunExtraSimpleLoopUnswitch >, llvm::AnalysisInfoMixin< ShouldRunExtraVectorPasses >, llvm::AnalysisInfoMixin< SlotIndexesAnalysis >, llvm::AnalysisInfoMixin< SpillPlacementAnalysis >, llvm::AnalysisInfoMixin< StackSafetyAnalysis >, llvm::AnalysisInfoMixin< StackSafetyGlobalAnalysis >, llvm::AnalysisInfoMixin< TargetIRAnalysis >, llvm::AnalysisInfoMixin< TargetLibraryAnalysis >, llvm::AnalysisInfoMixin< TypeBasedAA >, llvm::AnalysisInfoMixin< UniformityInfoAnalysis >, llvm::AnalysisInfoMixin< VerifierAnalysis >, llvm::AnalysisInfoMixin< VirtRegMapAnalysis >, llvm::AnalysisInfoMixin< ShaderFlagsAnalysis >, llvm::AnalysisInfoMixin< ObjCARCAA >, llvm::DOTGraphTraitsPrinter< DominatorTreeAnalysis, true >, llvm::DOTGraphTraitsPrinter< DominatorTreeAnalysis, false >, llvm::DOTGraphTraitsPrinter< PostDominatorTreeAnalysis, true >, llvm::DOTGraphTraitsPrinter< PostDominatorTreeAnalysis, false >, llvm::DOTGraphTraitsViewer< DominatorTreeAnalysis, true >, llvm::DOTGraphTraitsViewer< DominatorTreeAnalysis, false >, llvm::DOTGraphTraitsViewer< PostDominatorTreeAnalysis, true >, llvm::DOTGraphTraitsViewer< PostDominatorTreeAnalysis, false >, llvm::MachineLICMBasePass< EarlyMachineLICMPass, true >, llvm::MachineLICMBasePass< MachineLICMPass, false >, llvm::PassManager< Function >, llvm::PassManager< MachineFunction >, llvm::PassManager< Module >, llvm::PassManager< LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & >, llvm::TailDuplicatePassBase< EarlyTailDuplicatePass, true >, llvm::TailDuplicatePassBase< TailDuplicatePass, false >, llvm::AnalysisInfoMixin< DerivedT >, llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >, llvm::DOTGraphTraitsViewer< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >, llvm::MachineLICMBasePass< DerivedT, PreRegAlloc >, llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >, llvm::RequireAnalysisPass< AnalysisT, IRUnitT, AnalysisManagerT, ExtraArgTs >, and llvm::TailDuplicatePassBase< DerivedT, PreRegAlloc >.

Public Member Functions

void printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
 

Static Public Member Functions

static StringRef name ()
 Gets the name of the pass we are mixed into.
 

Detailed Description

template<typename DerivedT>
struct llvm::PassInfoMixin< DerivedT >

A CRTP mix-in to automatically provide informational APIs needed for passes.

This provides some boilerplate for types that are passes.

Definition at line 69 of file PassManager.h.

Member Function Documentation

◆ name()

template<typename DerivedT >
static StringRef llvm::PassInfoMixin< DerivedT >::name ( )
inlinestatic

Gets the name of the pass we are mixed into.

Definition at line 71 of file PassManager.h.

References Name.

◆ printPipeline()

template<typename DerivedT >
void llvm::PassInfoMixin< DerivedT >::printPipeline ( raw_ostream OS,
function_ref< StringRef(StringRef)>  MapClassName2PassName 
)
inline

Definition at line 79 of file PassManager.h.

References OS, and PassName.


The documentation for this struct was generated from the following file: