LLVM API Documentation
#include <PassAnalysisSupport.h>
Public Types | |
typedef SmallVector < AnalysisID, 32 > | VectorType |
Public Member Functions | |
AnalysisUsage () | |
AnalysisUsage & | addRequiredID (const void *ID) |
AnalysisUsage & | addRequiredID (char &ID) |
template<class PassClass > | |
AnalysisUsage & | addRequired () |
AnalysisUsage & | addRequiredTransitiveID (char &ID) |
template<class PassClass > | |
AnalysisUsage & | addRequiredTransitive () |
AnalysisUsage & | addPreservedID (const void *ID) |
AnalysisUsage & | addPreservedID (char &ID) |
template<class PassClass > | |
AnalysisUsage & | addPreserved () |
AnalysisUsage & | addPreserved (StringRef Arg) |
void | setPreservesAll () |
bool | getPreservesAll () const |
void | setPreservesCFG () |
const VectorType & | getRequiredSet () const |
const VectorType & | getRequiredTransitiveSet () const |
const VectorType & | getPreservedSet () const |
Definition at line 37 of file PassAnalysisSupport.h.
typedef SmallVector<AnalysisID, 32> llvm::AnalysisUsage::VectorType |
Definition at line 39 of file PassAnalysisSupport.h.
llvm::AnalysisUsage::AnalysisUsage | ( | ) | [inline] |
Definition at line 47 of file PassAnalysisSupport.h.
AnalysisUsage& llvm::AnalysisUsage::addPreserved | ( | ) | [inline] |
Definition at line 81 of file PassAnalysisSupport.h.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
Referenced by llvm::NVPTXLowerAggrCopies::getAnalysisUsage(), llvm::NVPTXAllocaHoisting::getAnalysisUsage(), llvm::UnifyFunctionExitNodes::getAnalysisUsage(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::SelectionDAGISel::getAnalysisUsage(), llvm::CallGraphSCCPass::getAnalysisUsage(), llvm::StackProtector::getAnalysisUsage(), and llvm::LiveIntervals::getAnalysisUsage().
Definition at line 269 of file Pass.cpp.
References llvm::PassInfo::getTypeInfo(), llvm::Pass::lookupPassInfo(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
AnalysisUsage& llvm::AnalysisUsage::addPreservedID | ( | const void * | ID | ) | [inline] |
Definition at line 68 of file PassAnalysisSupport.h.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
Referenced by llvm::UnifyFunctionExitNodes::getAnalysisUsage(), and llvm::LiveIntervals::getAnalysisUsage().
AnalysisUsage& llvm::AnalysisUsage::addPreservedID | ( | char & | ID | ) | [inline] |
Definition at line 72 of file PassAnalysisSupport.h.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
AnalysisUsage& llvm::AnalysisUsage::addRequired | ( | ) | [inline] |
Definition at line 55 of file PassAnalysisSupport.h.
References addRequiredID().
Referenced by llvm::NVPTXLowerAggrCopies::getAnalysisUsage(), llvm::NVPTXAllocaHoisting::getAnalysisUsage(), llvm::BlockFrequencyInfo::getAnalysisUsage(), llvm::Inliner::getAnalysisUsage(), llvm::MachineBlockFrequencyInfo::getAnalysisUsage(), llvm::StackMapLiveness::getAnalysisUsage(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::BranchProbabilityInfo::getAnalysisUsage(), llvm::DOTGraphTraitsViewer< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::JumpInstrTables::getAnalysisUsage(), llvm::SelectionDAGISel::getAnalysisUsage(), llvm::TargetTransformInfo::getAnalysisUsage(), llvm::AliasAnalysis::getAnalysisUsage(), llvm::CallGraphSCCPass::getAnalysisUsage(), llvm::MachineTraceMetrics::getAnalysisUsage(), llvm::LazyValueInfo::getAnalysisUsage(), llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::LPPassManager::getAnalysisUsage(), llvm::RGPassManager::getAnalysisUsage(), llvm::MachineDominanceFrontier::getAnalysisUsage(), llvm::DOTGraphTraitsModuleViewer< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::InlineCostAnalysis::getAnalysisUsage(), llvm::MachineRegionInfoPass::getAnalysisUsage(), llvm::MachineLoopInfo::getAnalysisUsage(), llvm::DOTGraphTraitsModulePrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::AsmPrinter::getAnalysisUsage(), llvm::DominanceFrontier::getAnalysisUsage(), llvm::LiveIntervals::getAnalysisUsage(), llvm::MemoryDependenceAnalysis::getAnalysisUsage(), llvm::LoopInfo::getAnalysisUsage(), llvm::RegionInfoPass::getAnalysisUsage(), and llvm::ScalarEvolution::getAnalysisUsage().
AnalysisUsage & AnalysisUsage::addRequiredID | ( | const void * | ID | ) |
Definition at line 276 of file Pass.cpp.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
Referenced by addRequired().
AnalysisUsage & AnalysisUsage::addRequiredID | ( | char & | ID | ) |
Definition at line 281 of file Pass.cpp.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
AnalysisUsage& llvm::AnalysisUsage::addRequiredTransitive | ( | ) | [inline] |
Definition at line 61 of file PassAnalysisSupport.h.
References addRequiredTransitiveID().
Referenced by llvm::MachineRegionInfoPass::getAnalysisUsage(), llvm::LiveIntervals::getAnalysisUsage(), llvm::MemoryDependenceAnalysis::getAnalysisUsage(), llvm::RegionInfoPass::getAnalysisUsage(), llvm::ScalarEvolution::getAnalysisUsage(), and llvm::DependenceAnalysis::getAnalysisUsage().
AnalysisUsage & AnalysisUsage::addRequiredTransitiveID | ( | char & | ID | ) |
Definition at line 286 of file Pass.cpp.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
Referenced by addRequiredTransitive(), and llvm::LiveIntervals::getAnalysisUsage().
const VectorType& llvm::AnalysisUsage::getPreservedSet | ( | ) | const [inline] |
Definition at line 112 of file PassAnalysisSupport.h.
Referenced by llvm::PMDataManager::dumpPreservedSet(), llvm::PMDataManager::preserveHigherLevelAnalysis(), llvm::PMDataManager::removeNotPreservedAnalysis(), and llvm::PMDataManager::verifyPreservedAnalysis().
bool llvm::AnalysisUsage::getPreservesAll | ( | ) | const [inline] |
Definition at line 95 of file PassAnalysisSupport.h.
Referenced by llvm::PMDataManager::preserveHigherLevelAnalysis(), and llvm::PMDataManager::removeNotPreservedAnalysis().
const VectorType& llvm::AnalysisUsage::getRequiredSet | ( | ) | const [inline] |
Definition at line 108 of file PassAnalysisSupport.h.
Referenced by llvm::PMDataManager::collectRequiredAnalysis(), llvm::PMDataManager::dumpRequiredSet(), llvm::PMDataManager::initializeAnalysisImpl(), and llvm::PMTopLevelManager::schedulePass().
const VectorType& llvm::AnalysisUsage::getRequiredTransitiveSet | ( | ) | const [inline] |
Definition at line 109 of file PassAnalysisSupport.h.
Referenced by llvm::PMDataManager::collectRequiredAnalysis(), and llvm::PMTopLevelManager::setLastUser().
void llvm::AnalysisUsage::setPreservesAll | ( | ) | [inline] |
Definition at line 94 of file PassAnalysisSupport.h.
Referenced by llvm::PostDominatorTree::getAnalysisUsage(), llvm::BlockFrequencyInfo::getAnalysisUsage(), llvm::MachineBlockFrequencyInfo::getAnalysisUsage(), llvm::MachineBranchProbabilityInfo::getAnalysisUsage(), llvm::StackMapLiveness::getAnalysisUsage(), llvm::BranchProbabilityInfo::getAnalysisUsage(), llvm::LibCallAliasAnalysis::getAnalysisUsage(), llvm::DOTGraphTraitsViewer< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::FindUsedTypes::getAnalysisUsage(), llvm::VirtRegMap::getAnalysisUsage(), llvm::MachineTraceMetrics::getAnalysisUsage(), llvm::MachinePostDominatorTree::getAnalysisUsage(), llvm::IntervalPartition::getAnalysisUsage(), llvm::LazyValueInfo::getAnalysisUsage(), llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::LPPassManager::getAnalysisUsage(), llvm::RGPassManager::getAnalysisUsage(), llvm::MachineDominanceFrontier::getAnalysisUsage(), llvm::DOTGraphTraitsModuleViewer< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::InlineCostAnalysis::getAnalysisUsage(), llvm::MachineRegionInfoPass::getAnalysisUsage(), llvm::MachineLoopInfo::getAnalysisUsage(), llvm::DOTGraphTraitsModulePrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::getAnalysisUsage(), llvm::AsmPrinter::getAnalysisUsage(), llvm::DominatorTreeWrapperPass::getAnalysisUsage(), llvm::DominanceFrontier::getAnalysisUsage(), llvm::legacy::FunctionPassManagerImpl::getAnalysisUsage(), llvm::MemoryDependenceAnalysis::getAnalysisUsage(), llvm::CallGraphWrapperPass::getAnalysisUsage(), llvm::legacy::PassManagerImpl::getAnalysisUsage(), llvm::FPPassManager::getAnalysisUsage(), llvm::LoopInfo::getAnalysisUsage(), llvm::RegionInfoPass::getAnalysisUsage(), llvm::ScalarEvolution::getAnalysisUsage(), llvm::DependenceAnalysis::getAnalysisUsage(), and INITIALIZE_PASS().
void AnalysisUsage::setPreservesCFG | ( | ) |
setPreservesCFG - This function should be called by the pass, iff they do not:
1. Add or remove basic blocks from the function 2. Modify terminator instructions in any way.
This function annotates the AnalysisUsage info object to say that analyses that only depend on the CFG are preserved by this pass.
Definition at line 263 of file Pass.cpp.
Referenced by llvm::StackMapLiveness::getAnalysisUsage(), and llvm::LiveIntervals::getAnalysisUsage().