LLVM: llvm::AnalysisUsage Class Reference (original) (raw)
Represent the analysis usage information of a pass. More...
#include "[llvm/PassAnalysisSupport.h](PassAnalysisSupport%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| AnalysisUsage ()=default | |
| LLVM_ABI AnalysisUsage & | addPreserved (StringRef Arg) |
| Add the Pass with the specified argument string to the set of analyses preserved by this pass. | |
| void | setPreservesAll () |
| Set by analyses that do not transform their input at all. | |
| bool | getPreservesAll () const |
| Determine whether a pass said it does not transform its input at all. | |
| LLVM_ABI void | setPreservesCFG () |
| This function should be called by the pass, iff they do not: | |
| const VectorType & | getRequiredSet () const |
| const VectorType & | getRequiredTransitiveSet () const |
| const VectorType & | getPreservedSet () const |
| const VectorType & | getUsedSet () const |
| LLVM_ABI AnalysisUsage & | addRequiredID (const void *ID) |
| LLVM_ABI AnalysisUsage & | addRequiredID (char &ID) |
| template | |
| AnalysisUsage & | addRequired () |
| LLVM_ABI AnalysisUsage & | addRequiredTransitiveID (char &ID) |
| template | |
| AnalysisUsage & | addRequiredTransitive () |
| AnalysisUsage & | addPreservedID (const void *ID) |
| AnalysisUsage & | addPreservedID (char &ID) |
| template | |
| AnalysisUsage & | addPreserved () |
| Add the specified Pass class to the set of analyses preserved by this pass. | |
| AnalysisUsage & | addUsedIfAvailableID (const void *ID) |
| AnalysisUsage & | addUsedIfAvailableID (char &ID) |
| template | |
| AnalysisUsage & | addUsedIfAvailable () |
| Add the specified Pass class to the set of analyses used by this pass. |
Detailed Description
Represent the analysis usage information of a pass.
This tracks analyses that the pass REQUIRES (must be available when the pass runs), REQUIRES TRANSITIVE (must be available throughout the lifetime of the pass), and analyses that the pass PRESERVES (the pass does not invalidate the results of these analyses). This information is provided by a pass to the Pass infrastructure through the getAnalysisUsage virtual function.
Definition at line 48 of file PassAnalysisSupport.h.
Member Typedef Documentation
◆ VectorType
Constructor & Destructor Documentation
| llvm::AnalysisUsage::AnalysisUsage ( ) | default |
|---|
Member Function Documentation
◆ addPreserved() [1/2]
template
Add the specified Pass class to the set of analyses preserved by this pass.
Definition at line 99 of file PassAnalysisSupport.h.
References AnalysisUsage().
Referenced by llvm::AMDGPUAsmPrinter::getAnalysisUsage(), llvm::CallGraphSCCPass::getAnalysisUsage(), llvm::dxil::RootSignatureAnalysisWrapper::getAnalysisUsage(), llvm::DXILTranslateMetadataLegacy::getAnalysisUsage(), llvm::gvn::GVNLegacyPass::getAnalysisUsage(), llvm::InstructionCombiningPass::getAnalysisUsage(), llvm::InstructionSelect::getAnalysisUsage(), llvm::IRTranslator::getAnalysisUsage(), llvm::Legalizer::getAnalysisUsage(), llvm::LiveIntervalsWrapperPass::getAnalysisUsage(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::MachinePipeliner::getAnalysisUsage(), llvm::MipsDAGToDAGISelLegacy::getAnalysisUsage(), llvm::RABasic::getAnalysisUsage(), llvm::ReplaceWithVeclibLegacy::getAnalysisUsage(), llvm::SelectionDAGISelLegacy::getAnalysisUsage(), llvm::StackProtector::getAnalysisUsage(), SIAnnotateControlFlowLegacy::getAnalysisUsage(), llvm::getLoopAnalysisUsage(), and llvm::getSelectionDAGFallbackAnalysisUsage().
◆ addPreserved() [2/2]
Add the Pass with the specified argument string to the set of analyses preserved by this pass.
If no such Pass exists, do nothing. This can be useful when a pass is trivially preserved, but may not be linked in. Be careful about spelling!
Definition at line 276 of file Pass.cpp.
◆ addPreservedID() [1/2]
◆ addPreservedID() [2/2]
◆ addRequired()
template
Definition at line 76 of file PassAnalysisSupport.h.
References addRequiredID(), and AnalysisUsage().
Referenced by AMDGPUAnnotateUniformValuesLegacy::getAnalysisUsage(), AMDGPULateCodeGenPrepareLegacy::getAnalysisUsage(), llvm::AMDGPUAsmPrinter::getAnalysisUsage(), llvm::AMDGPUDAGToDAGISelLegacy::getAnalysisUsage(), llvm::ARMBlockPlacement::getAnalysisUsage(), llvm::AsmPrinter::getAnalysisUsage(), llvm::BasicBlockMatchingAndInference::getAnalysisUsage(), llvm::BlockFrequencyInfoWrapperPass::getAnalysisUsage(), llvm::BranchProbabilityInfoWrapperPass::getAnalysisUsage(), llvm::CallGraphSCCPass::getAnalysisUsage(), llvm::DominanceFrontierWrapperPass::getAnalysisUsage(), llvm::DOTGraphTraitsModulePrinterWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::DOTGraphTraitsModuleViewerWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::DOTGraphTraitsPrinterWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::DOTGraphTraitsViewerWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::dxil::ShaderFlagsAnalysisWrapper::getAnalysisUsage(), llvm::DXILTranslateMetadataLegacy::getAnalysisUsage(), llvm::ExecutionDomainFix::getAnalysisUsage(), llvm::GCNRegPressurePrinter::getAnalysisUsage(), llvm::GlobalsAAWrapperPass::getAnalysisUsage(), llvm::gvn::GVNLegacyPass::getAnalysisUsage(), llvm::InstructionCombiningPass::getAnalysisUsage(), llvm::InstructionSelect::getAnalysisUsage(), llvm::IRTranslator::getAnalysisUsage(), llvm::IVUsersWrapperPass::getAnalysisUsage(), llvm::LazyMachineBlockFrequencyInfoPass::getAnalysisUsage(), llvm::LazyValueInfoWrapperPass::getAnalysisUsage(), llvm::Legalizer::getAnalysisUsage(), llvm::LibcallLoweringInfoWrapper::getAnalysisUsage(), llvm::LoadStoreOpt::getAnalysisUsage(), llvm::Localizer::getAnalysisUsage(), llvm::MachineBlockFrequencyInfoWrapperPass::getAnalysisUsage(), llvm::MachineDominanceFrontier::getAnalysisUsage(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::MachineLoopInfoWrapperPass::getAnalysisUsage(), llvm::MachineOptimizationRemarkEmitterPass::getAnalysisUsage(), llvm::MachinePipeliner::getAnalysisUsage(), llvm::MachineRegionInfoPass::getAnalysisUsage(), llvm::MachineTraceMetricsWrapperPass::getAnalysisUsage(), llvm::MemoryDependenceWrapperPass::getAnalysisUsage(), llvm::MipsSEDAGToDAGISelLegacy::getAnalysisUsage(), llvm::MIR2VecPrinterLegacyPass::getAnalysisUsage(), llvm::MIR2VecVocabLegacyAnalysis::getAnalysisUsage(), llvm::MIR2VecVocabPrinterLegacyPass::getAnalysisUsage(), llvm::ModuleSummaryIndexWrapperPass::getAnalysisUsage(), llvm::NVPTXAsmPrinter::getAnalysisUsage(), llvm::OptimizationRemarkEmitterWrapperPass::getAnalysisUsage(), llvm::RABasic::getAnalysisUsage(), llvm::RegBankSelect::getAnalysisUsage(), llvm::RegionInfoPass::getAnalysisUsage(), llvm::ReplaceWithVeclibLegacy::getAnalysisUsage(), llvm::SCEVAAWrapperPass::getAnalysisUsage(), llvm::SelectionDAGISelLegacy::getAnalysisUsage(), llvm::SPIRVConvergenceRegionAnalysisWrapperPass::getAnalysisUsage(), llvm::StackProtector::getAnalysisUsage(), llvm::StackSafetyGlobalInfoWrapperPass::getAnalysisUsage(), llvm::WebAssemblyExceptionInfo::getAnalysisUsage(), SIAnnotateControlFlowLegacy::getAnalysisUsage(), SILowerI1CopiesLegacy::getAnalysisUsage(), StaticDataAnnotator::getAnalysisUsage(), StaticDataSplitter::getAnalysisUsage(), llvm::getLoopAnalysisUsage(), INITIALIZE_PASS(), and INITIALIZE_PASS().
◆ addRequiredID() [1/2]
◆ addRequiredID() [2/2]
◆ addRequiredTransitive()
template
| AnalysisUsage & llvm::AnalysisUsage::addRequiredTransitive ( ) | inline |
|---|
Definition at line 82 of file PassAnalysisSupport.h.
References addRequiredTransitiveID(), and AnalysisUsage().
Referenced by llvm::AAResultsWrapperPass::getAnalysisUsage(), llvm::BasicAAWrapperPass::getAnalysisUsage(), llvm::DependenceAnalysisWrapperPass::getAnalysisUsage(), llvm::dxil::ShaderFlagsAnalysisWrapper::getAnalysisUsage(), llvm::DXILResourceBindingWrapperPass::getAnalysisUsage(), llvm::DXILResourceWrapperPass::getAnalysisUsage(), llvm::LazyBlockFrequencyInfoPass::getAnalysisUsage(), llvm::LazyBranchProbabilityInfoPass::getAnalysisUsage(), llvm::LiveIntervalsWrapperPass::getAnalysisUsage(), llvm::LoopInfoWrapperPass::getAnalysisUsage(), llvm::MemoryDependenceWrapperPass::getAnalysisUsage(), llvm::MemorySSAWrapperPass::getAnalysisUsage(), llvm::RegionInfoPass::getAnalysisUsage(), llvm::ScalarEvolutionWrapperPass::getAnalysisUsage(), llvm::StackSafetyInfoWrapperPass::getAnalysisUsage(), llvm::LazyBlockFrequencyInfoPass::getLazyBFIAnalysisUsage(), and llvm::LazyBranchProbabilityInfoPass::getLazyBPIAnalysisUsage().
◆ addRequiredTransitiveID()
◆ addUsedIfAvailable()
template
| AnalysisUsage & llvm::AnalysisUsage::addUsedIfAvailable ( ) | inline |
|---|
◆ addUsedIfAvailableID() [1/2]
◆ addUsedIfAvailableID() [2/2]
Add the specified ID to the set of analyses used by this pass if they are available..
Definition at line 108 of file PassAnalysisSupport.h.
References AnalysisUsage().
◆ getPreservedSet()
| const VectorType & llvm::AnalysisUsage::getPreservedSet ( ) const | inline |
|---|
◆ getPreservesAll()
| bool llvm::AnalysisUsage::getPreservesAll ( ) const | inline |
|---|
◆ getRequiredSet()
| const VectorType & llvm::AnalysisUsage::getRequiredSet ( ) const | inline |
|---|
◆ getRequiredTransitiveSet()
| const VectorType & llvm::AnalysisUsage::getRequiredTransitiveSet ( ) const | inline |
|---|
◆ getUsedSet()
| const VectorType & llvm::AnalysisUsage::getUsedSet ( ) const | inline |
|---|
◆ setPreservesAll()
| void llvm::AnalysisUsage::setPreservesAll ( ) | inline |
|---|
Set by analyses that do not transform their input at all.
Definition at line 131 of file PassAnalysisSupport.h.
Referenced by AMDGPUAnnotateUniformValuesLegacy::getAnalysisUsage(), llvm::AAResultsWrapperPass::getAnalysisUsage(), llvm::AMDGPUAAWrapperPass::getAnalysisUsage(), llvm::AMDGPUArgumentUsageInfoWrapperLegacy::getAnalysisUsage(), llvm::AMDGPUResourceUsageAnalysisWrapperPass::getAnalysisUsage(), llvm::AsmPrinter::getAnalysisUsage(), llvm::AssignmentTrackingAnalysis::getAnalysisUsage(), llvm::BasicAAWrapperPass::getAnalysisUsage(), llvm::BasicBlockMatchingAndInference::getAnalysisUsage(), llvm::BlockFrequencyInfoWrapperPass::getAnalysisUsage(), llvm::BranchProbabilityInfoWrapperPass::getAnalysisUsage(), llvm::CallGraphWrapperPass::getAnalysisUsage(), llvm::CFIFixup::getAnalysisUsage(), llvm::DependenceAnalysisWrapperPass::getAnalysisUsage(), llvm::DominanceFrontierWrapperPass::getAnalysisUsage(), llvm::DominatorTreeWrapperPass::getAnalysisUsage(), llvm::DOTGraphTraitsModulePrinterWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::DOTGraphTraitsModuleViewerWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::DOTGraphTraitsPrinterWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::DOTGraphTraitsViewerWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::DummyCGSCCPass::getAnalysisUsage(), llvm::dxil::RootSignatureAnalysisWrapper::getAnalysisUsage(), llvm::dxil::ShaderFlagsAnalysisWrapper::getAnalysisUsage(), llvm::DXILMetadataAnalysisWrapperPass::getAnalysisUsage(), llvm::DXILResourceBindingWrapperPass::getAnalysisUsage(), llvm::DXILResourceWrapperPass::getAnalysisUsage(), llvm::ExecutionDomainFix::getAnalysisUsage(), llvm::ExternalAAWrapperPass::getAnalysisUsage(), llvm::GCNRegPressurePrinter::getAnalysisUsage(), llvm::GISelCSEAnalysisWrapperPass::getAnalysisUsage(), llvm::GISelValueTrackingAnalysisLegacy::getAnalysisUsage(), llvm::GlobalsAAWrapperPass::getAnalysisUsage(), llvm::ImmutableModuleSummaryIndexWrapperPass::getAnalysisUsage(), llvm::IRSimilarityIdentifierWrapperPass::getAnalysisUsage(), llvm::IVUsersWrapperPass::getAnalysisUsage(), llvm::LazyBlockFrequencyInfoPass::getAnalysisUsage(), llvm::LazyBranchProbabilityInfoPass::getAnalysisUsage(), llvm::LazyMachineBlockFrequencyInfoPass::getAnalysisUsage(), llvm::LazyValueInfoWrapperPass::getAnalysisUsage(), llvm::LCSSAVerificationPass::getAnalysisUsage(), llvm::LibcallLoweringInfoWrapper::getAnalysisUsage(), llvm::LoadStoreOpt::getAnalysisUsage(), llvm::LoopInfoWrapperPass::getAnalysisUsage(), llvm::MachineBlockFrequencyInfoWrapperPass::getAnalysisUsage(), llvm::MachineBlockHashInfo::getAnalysisUsage(), llvm::MachineBranchProbabilityInfoWrapperPass::getAnalysisUsage(), llvm::MachineDominanceFrontier::getAnalysisUsage(), llvm::MachineDominatorTreeWrapperPass::getAnalysisUsage(), llvm::MachineLoopInfoWrapperPass::getAnalysisUsage(), llvm::MachineOptimizationRemarkEmitterPass::getAnalysisUsage(), llvm::MachinePostDominatorTreeWrapperPass::getAnalysisUsage(), llvm::MachineRegionInfoPass::getAnalysisUsage(), llvm::MachineTraceMetricsWrapperPass::getAnalysisUsage(), llvm::MemoryDependenceWrapperPass::getAnalysisUsage(), llvm::MemorySSAWrapperPass::getAnalysisUsage(), llvm::MIR2VecPrinterLegacyPass::getAnalysisUsage(), llvm::MIR2VecVocabLegacyAnalysis::getAnalysisUsage(), llvm::MIR2VecVocabPrinterLegacyPass::getAnalysisUsage(), llvm::ModuleSummaryIndexWrapperPass::getAnalysisUsage(), llvm::NVPTXAAWrapperPass::getAnalysisUsage(), llvm::OptimizationRemarkEmitterWrapperPass::getAnalysisUsage(), llvm::PhiValuesWrapperPass::getAnalysisUsage(), llvm::PostDominatorTreeWrapperPass::getAnalysisUsage(), llvm::ProfileSummaryInfoWrapperPass::getAnalysisUsage(), llvm::ReachingDefInfoWrapperPass::getAnalysisUsage(), llvm::RegAllocEvictionAdvisorAnalysisLegacy::getAnalysisUsage(), llvm::RegAllocPriorityAdvisorAnalysisLegacy::getAnalysisUsage(), llvm::RegionInfoPass::getAnalysisUsage(), llvm::RuntimeLibraryInfoWrapper::getAnalysisUsage(), llvm::ScalarEvolutionWrapperPass::getAnalysisUsage(), llvm::SCEVAAWrapperPass::getAnalysisUsage(), llvm::ScopedNoAliasAAWrapperPass::getAnalysisUsage(), llvm::SPIRVConvergenceRegionAnalysisWrapperPass::getAnalysisUsage(), llvm::StackSafetyGlobalInfoWrapperPass::getAnalysisUsage(), llvm::StackSafetyInfoWrapperPass::getAnalysisUsage(), llvm::StaticDataProfileInfoWrapperPass::getAnalysisUsage(), llvm::TypeBasedAAWrapperPass::getAnalysisUsage(), llvm::VirtRegMapWrapperLegacy::getAnalysisUsage(), llvm::WebAssemblyExceptionInfo::getAnalysisUsage(), StaticDataAnnotator::getAnalysisUsage(), and StaticDataSplitter::getAnalysisUsage().
◆ setPreservesCFG()
| void AnalysisUsage::setPreservesCFG | ( | ) |
|---|
The documentation for this class was generated from the following files:
- include/llvm/PassAnalysisSupport.h
- lib/SandboxIR/Pass.cpp