LLVM 20.0.0git
|
A set of analyses that are preserved following a run of a transformation pass. More...
#include "llvm/IR/Analysis.h"
Classes | |
class | PreservedAnalysisChecker |
A checker object that makes it easy to query for whether an analysis or some set covering it is preserved. More... | |
Public Member Functions | |
template<typename AnalysisT > | |
void | preserve () |
Mark an analysis as preserved. | |
void | preserve (AnalysisKey *ID) |
Given an analysis's ID, mark the analysis as preserved, adding it to the set. | |
template<typename AnalysisSetT > | |
void | preserveSet () |
Mark an analysis set as preserved. | |
void | preserveSet (AnalysisSetKey *ID) |
Mark an analysis set as preserved using its ID. | |
template<typename AnalysisT > | |
void | abandon () |
Mark an analysis as abandoned. | |
void | abandon (AnalysisKey *ID) |
Mark an analysis as abandoned using its ID. | |
void | intersect (const PreservedAnalyses &Arg) |
Intersect this set with another in place. | |
void | intersect (PreservedAnalyses &&Arg) |
Intersect this set with a temporary other set in place. | |
template<typename AnalysisT > | |
PreservedAnalysisChecker | getChecker () const |
Build a checker for this PreservedAnalyses and the specified analysis type. | |
PreservedAnalysisChecker | getChecker (AnalysisKey *ID) const |
Build a checker for this PreservedAnalyses and the specified analysis ID. | |
bool | areAllPreserved () const |
Test whether all analyses are preserved (and none are abandoned). | |
template<typename AnalysisSetT > | |
bool | allAnalysesInSetPreserved () const |
Directly test whether a set of analyses is preserved. | |
bool | allAnalysesInSetPreserved (AnalysisSetKey *SetID) const |
Directly test whether a set of analyses is preserved. | |
Static Public Member Functions | |
static PreservedAnalyses | none () |
Convenience factory function for the empty preserved set. | |
static PreservedAnalyses | all () |
Construct a special preserved set that preserves all passes. | |
template<typename AnalysisSetT > | |
static PreservedAnalyses | allInSet () |
Construct a preserved analyses object with a single preserved set. | |
A set of analyses that are preserved following a run of a transformation pass.
Transformation passes build and return these objects to communicate which analyses are still valid after the transformation. For most passes this is fairly simple: if they don't change anything all analyses are preserved, otherwise only a short list of analyses that have been explicitly updated are preserved.
This class also lets transformation passes mark abstract sets of analyses as preserved. A transformation that (say) does not alter the CFG can indicate such by marking a particular AnalysisSetKey as preserved, and then analyses can query whether that AnalysisSetKey is preserved.
Finally, this class can represent an "abandoned" analysis, which is not preserved even if it would be covered by some abstract set of analyses.
Given a PreservedAnalyses
object, an analysis will typically want to figure out whether it is preserved. In the example below, MyAnalysisType is preserved if it's not abandoned, and (a) it's explicitly marked as preserved, (b), the set AllAnalysesOn<MyIRUnit> is preserved, or (c) both AnalysisSetA and AnalysisSetB are preserved.
Definition at line 111 of file Analysis.h.
|
inline |
Mark an analysis as abandoned.
An abandoned analysis is not preserved, even if it is nominally covered by some other set or was previously explicitly marked as preserved.
Note that you can only abandon a specific analysis, not a set of analyses.
Definition at line 164 of file Analysis.h.
References abandon().
Referenced by abandon(), llvm::MemorySSAAnalysis::Result::invalidate(), llvm::FunctionAnalysisManagerCGSCCProxy::Result::invalidate(), llvm::CGSCCAnalysisManagerModuleProxy::Result::invalidate(), llvm::MLInlineAdvisor::onSuccessfulInlining(), llvm::CorrelatedValuePropagationPass::run(), llvm::IRCEPass::run(), llvm::InvalidateAnalysisPass< AnalysisT >::run(), llvm::AddressSanitizerPass::run(), llvm::DataFlowSanitizerPass::run(), llvm::MemorySanitizerPass::run(), llvm::SanitizerCoveragePass::run(), llvm::LowerEmuTLSPass::run(), and llvm::HWAddressSanitizerPass::run().
|
inline |
Mark an analysis as abandoned using its ID.
An abandoned analysis is not preserved, even if it is nominally covered by some other set or was previously explicitly marked as preserved.
Note that you can only abandon a specific analysis, not a set of analyses.
Definition at line 173 of file Analysis.h.
|
inlinestatic |
Construct a special preserved set that preserves all passes.
Definition at line 117 of file Analysis.h.
References llvm::SmallPtrSetImpl< PtrType >::insert().
Referenced by llvm::MLInlineAdvisor::onSuccessfulInlining(), llvm::InstructionNamerPass::run(), llvm::AMDGPUCodeGenPreparePass::run(), llvm::AMDGPULowerKernelArgumentsPass::run(), llvm::PrintFunctionPass::run(), llvm::RealtimeSanitizerPass::run(), llvm::NewGVNPass::run(), llvm::InstCountPass::run(), llvm::NoOpFunctionPass::run(), llvm::ADCEPass::run(), llvm::ConstraintEliminationPass::run(), llvm::DivRemPairsPass::run(), llvm::LowerAtomicPass::run(), llvm::LowerConstantIntrinsicsPass::run(), llvm::LowerExpectIntrinsicPass::run(), llvm::ReassociatePass::run(), llvm::SeparateConstOffsetFromGEPPass::run(), llvm::CountVisitsPass::run(), llvm::VectorCombinePass::run(), llvm::AAEvaluator::run(), llvm::AliasSetsPrinterPass::run(), llvm::AssumptionPrinterPass::run(), llvm::BlockFrequencyPrinterPass::run(), llvm::BranchProbabilityPrinterPass::run(), llvm::CFGViewerPass::run(), llvm::CFGOnlyViewerPass::run(), llvm::CFGPrinterPass::run(), llvm::CFGOnlyPrinterPass::run(), llvm::CFGSCCPrinterPass::run(), llvm::CostModelPrinterPass::run(), llvm::CycleInfoPrinterPass::run(), llvm::CycleInfoVerifierPass::run(), llvm::DelinearizationPrinterPass::run(), llvm::DemandedBitsPrinterPass::run(), llvm::DominanceFrontierPrinterPass::run(), llvm::FunctionPropertiesPrinterPass::run(), llvm::InlineSizeEstimatorAnalysisPrinterPass::run(), llvm::LazyValueInfoPrinterPass::run(), llvm::LintPass::run(), llvm::LoopPrinterPass::run(), llvm::LoopVerifierPass::run(), llvm::MemDerefPrinterPass::run(), llvm::MemorySSAPrinterPass::run(), llvm::MemorySSAWalkerPrinterPass::run(), llvm::MemorySSAVerifierPass::run(), llvm::MustExecutePrinterPass::run(), llvm::PhiValuesPrinterPass::run(), llvm::PostDominatorTreePrinterPass::run(), llvm::RegionInfoPrinterPass::run(), llvm::RegionInfoVerifierPass::run(), llvm::ScalarEvolutionVerifierPass::run(), llvm::ScalarEvolutionPrinterPass::run(), llvm::StackLifetimePrinterPass::run(), llvm::StackSafetyPrinterPass::run(), llvm::UniformityInfoPrinterPass::run(), llvm::AtomicExpandPass::run(), llvm::CodeGenPreparePass::run(), llvm::ComplexDeinterleavingPass::run(), llvm::ExpandLargeDivRemPass::run(), llvm::ExpandLargeFpConvertPass::run(), llvm::ExpandReductionsPass::run(), llvm::HardwareLoopsPass::run(), llvm::ReplaceWithVeclib::run(), llvm::TypePromotionPass::run(), llvm::UnreachableBlockElimPass::run(), llvm::AssignmentTrackingPass::run(), llvm::DominatorTreePrinterPass::run(), llvm::DominatorTreeVerifierPass::run(), llvm::SafepointIRVerifierPass::run(), llvm::AggressiveInstCombinePass::run(), llvm::CoroElidePass::run(), llvm::InstCombinePass::run(), llvm::BoundsCheckingPass::run(), llvm::KCFIPass::run(), llvm::LowerAllowCheckPass::run(), llvm::MemProfilerPass::run(), llvm::ObjCARCOptPass::run(), llvm::ObjCARCContractPass::run(), llvm::PAEvalPass::run(), llvm::AlignmentFromAssumptionsPass::run(), llvm::AnnotationRemarksPass::run(), llvm::BDCEPass::run(), llvm::CallSiteSplittingPass::run(), llvm::ConstantHoistingPass::run(), llvm::CorrelatedValuePropagationPass::run(), llvm::DCEPass::run(), llvm::RedundantDbgInstEliminationPass::run(), llvm::DFAJumpThreadingPass::run(), llvm::EarlyCSEPass::run(), llvm::FlattenCFGPass::run(), llvm::Float2IntPass::run(), llvm::GuardWideningPass::run(), llvm::GVNPass::run(), llvm::GVNHoistPass::run(), llvm::GVNSinkPass::run(), llvm::IRCEPass::run(), llvm::InferAddressSpacesPass::run(), llvm::InferAlignmentPass::run(), llvm::InstSimplifyPass::run(), llvm::JumpTableToSwitchPass::run(), llvm::JumpThreadingPass::run(), llvm::LoopAccessInfoPrinterPass::run(), llvm::LoopDataPrefetchPass::run(), llvm::LoopDistributePass::run(), llvm::LoopFusePass::run(), llvm::LoopLoadEliminationPass::run(), llvm::FunctionToLoopPassAdaptor::run(), llvm::LoopUnrollPass::run(), llvm::LowerGuardIntrinsicPass::run(), llvm::LowerMatrixIntrinsicsPass::run(), llvm::LowerWidenableConditionPass::run(), llvm::MakeGuardsExplicitPass::run(), llvm::MemCpyOptPass::run(), llvm::MergedLoadStoreMotionPass::run(), llvm::MergeICmpsPass::run(), llvm::NaryReassociatePass::run(), llvm::PartiallyInlineLibCallsPass::run(), llvm::PlaceSafepointsPass::run(), llvm::RegToMemPass::run(), llvm::ScalarizeMaskedMemIntrinPass::run(), llvm::ScalarizerPass::run(), llvm::SCCPPass::run(), llvm::SimplifyCFGPass::run(), llvm::SinkingPass::run(), llvm::SpeculativeExecutionPass::run(), llvm::SROAPass::run(), llvm::StraightLineStrengthReducePass::run(), llvm::StructurizeCFGPass::run(), llvm::TailCallElimPass::run(), llvm::TLSVariableHoistPass::run(), llvm::WarnMissedTransformationsPass::run(), llvm::AddDiscriminatorsPass::run(), llvm::AssumeSimplifyPass::run(), llvm::AssumeBuilderPass::run(), llvm::BreakCriticalEdgesPass::run(), llvm::EntryExitInstrumenterPass::run(), llvm::FixIrreduciblePass::run(), llvm::HelloWorldPass::run(), llvm::InjectTLIMappings::run(), llvm::LCSSAPass::run(), llvm::LoopSimplifyPass::run(), llvm::LowerInvokePass::run(), llvm::LowerSwitchPass::run(), llvm::PromotePass::run(), llvm::MoveAutoInitPass::run(), llvm::PredicateInfoPrinterPass::run(), llvm::PredicateInfoVerifierPass::run(), llvm::StripGCRelocates::run(), llvm::UnifyFunctionExitNodesPass::run(), llvm::UnifyLoopExitsPass::run(), llvm::LoadStoreVectorizerPass::run(), llvm::ExtraVectorPassManager::run(), llvm::LoopVectorizePass::run(), llvm::SLPVectorizerPass::run(), llvm::AMDGPUSimplifyLibCallsPass::run(), llvm::AMDGPUImageIntrinsicOptimizerPass::run(), llvm::AMDGPUUseNativeCallsPass::run(), llvm::AMDGPUPromoteKernelArgumentsPass::run(), llvm::AMDGPULowerKernelAttributesPass::run(), llvm::AMDGPUPromoteAllocaPass::run(), llvm::AMDGPUPromoteAllocaToVectorPass::run(), llvm::AMDGPUAtomicOptimizerPass::run(), llvm::AMDGPURewriteUndefForPHIPass::run(), llvm::AMDGPUUnifyDivergentExitNodesPass::run(), llvm::BPFAbstractMemberAccessPass::run(), llvm::BPFPreserveDITypePass::run(), llvm::BPFIRPeepholePass::run(), llvm::BPFASpaceCastSimplifyPass::run(), llvm::BPFPreserveStaticOffsetPass::run(), llvm::NVVMIntrRangePass::run(), llvm::NVVMReflectPass::run(), llvm::DependenceAnalysisPrinterPass::run(), llvm::DOTGraphTraitsViewer< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::run(), llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::run(), llvm::InlineCostAnnotationPrinterPass::run(), llvm::DebugAssignmentTrackingPrinterPass::run(), llvm::DwarfEHPreparePass::run(), llvm::GCLoweringPass::run(), llvm::IndirectBrExpandPass::run(), llvm::InterleavedAccessPass::run(), llvm::InterleavedLoadCombinePass::run(), llvm::FunctionToMachineFunctionPassAdaptor::run(), llvm::SafeStackPass::run(), llvm::SjLjEHPreparePass::run(), llvm::StackProtectorPass::run(), llvm::WinEHPreparePass::run(), llvm::CFGuardPass::run(), llvm::ControlHeightReductionPass::run(), llvm::ThreadSanitizerPass::run(), llvm::DSEPass::run(), llvm::LoopSinkPass::run(), llvm::LibCallsShrinkWrapPass::run(), llvm::LoopVersioningPass::run(), llvm::PGOMemOPSizeOpt::run(), llvm::CallBrPreparePass::run(), llvm::ObjCARCExpandPass::run(), llvm::RequireAnalysisPass< AnalysisT, IRUnitT, AnalysisManagerT, ExtraArgTs >::run(), llvm::InvalidateAnalysisPass< AnalysisT >::run(), llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::run(), llvm::NoOpCGSCCPass::run(), llvm::RequireAnalysisPass< AnalysisT, LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & >::run(), llvm::CGSCCToFunctionPassAdaptor::run(), llvm::CoroSplitPass::run(), llvm::ArgumentPromotionPass::run(), llvm::AttributorCGSCCPass::run(), llvm::AttributorLightCGSCCPass::run(), llvm::PostOrderFunctionAttrsPass::run(), llvm::OpenMPOptCGSCCPass::run(), llvm::DevirtSCCRepeatedPass::run(), NewPMCheckDebugifyPass::run(), llvm::NoOpLoopPass::run(), llvm::PrintLoopPass::run(), llvm::RequireAnalysisPass< AnalysisT, Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::run(), llvm::DDGAnalysisPrinterPass::run(), llvm::DDGDotPrinterPass::run(), llvm::LoopCachePrinterPass::run(), llvm::LoopNestPrinterPass::run(), llvm::IndVarSimplifyPass::run(), llvm::IVUsersPrinterPass::run(), llvm::LICMPass::run(), llvm::LoopBoundSplitPass::run(), llvm::LoopDeletionPass::run(), llvm::LoopIdiomRecognizePass::run(), llvm::LoopInstSimplifyPass::run(), llvm::LoopPredicationPass::run(), llvm::LoopRotatePass::run(), llvm::LoopSimplifyCFGPass::run(), llvm::LoopStrengthReducePass::run(), llvm::LoopTermFoldPass::run(), llvm::LoopFullUnrollPass::run(), llvm::ExtraSimpleLoopUnswitchPassManager::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::CanonicalizeFreezeInLoopsPass::run(), llvm::LoopIdiomVectorizePass::run(), llvm::HexagonLoopIdiomRecognitionPass::run(), llvm::LoopVersioningLICMPass::run(), llvm::HexagonVectorLoopCarriedReusePass::run(), llvm::NoOpLoopNestPass::run(), llvm::LNICMPass::run(), llvm::LoopInterchangePass::run(), llvm::LoopUnrollAndJamPass::run(), llvm::LoopFlattenPass::run(), llvm::NoOpMachineFunctionPass::run(), llvm::FinalizeISelPass::run(), llvm::LocalStackSlotAllocationPass::run(), llvm::RegAllocFastPass::run(), llvm::DeadMachineInstructionElimPass::run(), llvm::LiveIntervalsPrinterPass::run(), llvm::LiveVariablesPrinterPass::run(), llvm::MachineBlockFrequencyPrinterPass::run(), llvm::MachineBranchProbabilityPrinterPass::run(), llvm::MachineDominatorTreePrinterPass::run(), llvm::MachineLoopPrinterPass::run(), llvm::MachinePostDominatorTreePrinterPass::run(), llvm::MachineVerifierPass::run(), llvm::PrintMIRPass::run(), llvm::PHIEliminationPass::run(), llvm::SelectionDAGISelPass::run(), llvm::SlotIndexesPrinterPass::run(), llvm::TwoAddressInstructionPass::run(), llvm::SILowerI1CopiesPass::run(), llvm::SIFixSGPRCopiesPass::run(), llvm::ModuleInlinerPass::run(), llvm::MetaRenamerPass::run(), llvm::PrintModulePass::run(), llvm::BitcodeWriterPass::run(), llvm::NoOpModulePass::run(), llvm::AlwaysInlinerPass::run(), llvm::CalledValuePropagationPass::run(), llvm::ConstantMergePass::run(), llvm::DeadArgumentEliminationPass::run(), llvm::EliminateAvailableExternallyPass::run(), llvm::EmbedBitcodePass::run(), llvm::ForceFunctionAttrsPass::run(), llvm::GlobalDCEPass::run(), llvm::PartialInlinerPass::run(), llvm::StripDeadPrototypesPass::run(), llvm::WholeProgramDevirtPass::run(), llvm::DXILFinalizeLinkage::run(), llvm::DXILIntrinsicExpansion::run(), llvm::DXILPrettyPrinterPass::run(), llvm::DXILTranslateMetadata::run(), llvm::CallGraphPrinterPass::run(), llvm::CallGraphSCCsPrinterPass::run(), llvm::CallGraphDOTPrinterPass::run(), llvm::CallGraphViewerPass::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor::run(), llvm::DXILMetadataAnalysisPrinterPass::run(), llvm::DXILResourcePrinterPass::run(), llvm::RecomputeGlobalsAAPass::run(), llvm::IRSimilarityAnalysisPrinterPass::run(), llvm::LazyCallGraphPrinterPass::run(), llvm::LazyCallGraphDOTPrinterPass::run(), llvm::ModuleDebugInfoPrinterPass::run(), llvm::MustBeExecutedContextPrinterPass::run(), llvm::ProfileSummaryPrinterPass::run(), llvm::StackSafetyGlobalPrinterPass::run(), llvm::PreISelIntrinsicLoweringPass::run(), llvm::ModuleToFunctionPassAdaptor::run(), llvm::VerifierPass::run(), llvm::CoroConditionalWrapper::run(), llvm::CoroEarlyPass::run(), llvm::AddressSanitizerPass::run(), llvm::CGProfilePass::run(), llvm::DataFlowSanitizerPass::run(), llvm::GCOVProfilerPass::run(), llvm::InstrOrderFilePass::run(), llvm::InstrProfilingLoweringPass::run(), llvm::MemorySanitizerPass::run(), llvm::ModuleMemProfilerPass::run(), llvm::MemProfUsePass::run(), llvm::PGOForceFunctionAttrsPass::run(), llvm::PoisonCheckingPass::run(), llvm::SanitizerBinaryMetadataPass::run(), llvm::SanitizerCoveragePass::run(), llvm::ModuleThreadSanitizerPass::run(), llvm::Annotation2MetadataPass::run(), llvm::AttributorPass::run(), llvm::AttributorLightPass::run(), llvm::BlockExtractorPass::run(), llvm::CrossDSOCFIPass::run(), llvm::ExpandVariadicsPass::run(), llvm::ReversePostOrderFunctionAttrsPass::run(), llvm::FunctionImportPass::run(), llvm::GlobalOptPass::run(), llvm::GlobalSplitPass::run(), llvm::HotColdSplittingPass::run(), llvm::InferFunctionAttrsPass::run(), llvm::InternalizePass::run(), llvm::IROutlinerPass::run(), llvm::LoopExtractorPass::run(), llvm::LowerTypeTestsPass::run(), llvm::MemProfContextDisambiguation::run(), llvm::MergeFunctionsPass::run(), llvm::OpenMPOptPass::run(), llvm::SampleProfileLoaderPass::run(), llvm::IPSCCPPass::run(), llvm::ThinLTOBitcodeWriterPass::run(), llvm::ObjCARCAPElimPass::run(), llvm::RewriteStatepointsForGC::run(), llvm::CanonicalizeAliasesPass::run(), llvm::DXILUpgradePass::run(), llvm::LowerGlobalDtorsPass::run(), llvm::LowerIFuncPass::run(), llvm::NameAnonGlobalPass::run(), llvm::RelLookupTableConverterPass::run(), llvm::RewriteSymbolPass::run(), llvm::AMDGPULowerModuleLDSPass::run(), llvm::AMDGPULowerBufferFatPointersPass::run(), llvm::AMDGPUAlwaysInlinePass::run(), llvm::AMDGPUAttributorPass::run(), llvm::AMDGPUPrintfRuntimeBindingPass::run(), llvm::AMDGPUUnifyMetadataPass::run(), llvm::AMDGPUCtorDtorLoweringPass::run(), llvm::AMDGPUPerfHintAnalysisPass::run(), llvm::BPFAdjustOptPass::run(), llvm::dxil::ShaderFlagsAnalysisPrinter::run(), llvm::GenericToNVVMPass::run(), llvm::NVPTXCtorDtorLoweringPass::run(), llvm::CtxProfAnalysisPrinterPass::run(), llvm::InlineAdvisorAnalysisPrinterPass::run(), llvm::StructuralHashPrinterPass::run(), llvm::GlobalMergePass::run(), llvm::JMCInstrumenterPass::run(), llvm::LowerEmuTLSPass::run(), llvm::ShadowStackGCLoweringPass::run(), llvm::CoroCleanupPass::run(), llvm::HWAddressSanitizerPass::run(), llvm::PGOCtxProfLoweringPass::run(), llvm::PGOInstrumentationGen::run(), llvm::PGOInstrumentationUse::run(), llvm::PGOIndirectCallPromotion::run(), llvm::SyntheticCountsPropagation::run(), llvm::AMDGPUSplitModulePass::run(), llvm::DXILOpLowering::run(), llvm::PrintMIRPreparePass::run(), llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::runWithLoopNestPasses(), llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::runWithoutLoopNestPasses(), and updateNewSCCFunctionAnalyses().
|
inline |
Directly test whether a set of analyses is preserved.
This is only true when no analyses have been explicitly abandoned.
Definition at line 289 of file Analysis.h.
Referenced by llvm::MemorySSAAnalysis::Result::invalidate(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate(), llvm::FunctionAnalysisManagerCGSCCProxy::Result::invalidate(), and llvm::CGSCCAnalysisManagerModuleProxy::Result::invalidate().
|
inline |
Directly test whether a set of analyses is preserved.
This is only true when no analyses have been explicitly abandoned.
Definition at line 296 of file Analysis.h.
|
inlinestatic |
Construct a preserved analyses object with a single preserved set.
Definition at line 124 of file Analysis.h.
References preserveSet().
|
inline |
Test whether all analyses are preserved (and none are abandoned).
This is used primarily to optimize for the common case of a transformation which makes no changes to the IR.
Definition at line 281 of file Analysis.h.
Referenced by intersect(), llvm::FunctionAnalysisManagerCGSCCProxy::Result::invalidate(), and llvm::CGSCCAnalysisManagerModuleProxy::Result::invalidate().
|
inline |
Build a checker for this PreservedAnalyses
and the specified analysis type.
You can use the returned object to query whether an analysis was preserved. See the example in the comment on PreservedAnalysis
.
Definition at line 264 of file Analysis.h.
Referenced by llvm::PhiValues::invalidate(), llvm::BranchProbabilityInfo::invalidate(), llvm::MachineFunctionAnalysis::Result::invalidate(), llvm::BlockFrequencyInfo::invalidate(), llvm::DominanceFrontier::invalidate(), llvm::LoopInfo::invalidate(), llvm::RegionInfo::invalidate(), llvm::DominatorTree::invalidate(), llvm::PreservedCFGCheckerInstrumentation::CFG::invalidate(), llvm::ShouldRunExtraVectorPasses::Result::invalidate(), llvm::AAResults::invalidate(), llvm::DependenceInfo::invalidate(), llvm::LazyValueInfo::invalidate(), llvm::LoopAccessInfoManager::invalidate(), llvm::MemoryDependenceResults::invalidate(), llvm::MemorySSAAnalysis::Result::invalidate(), llvm::ScalarEvolution::invalidate(), llvm::GCFunctionInfo::invalidate(), llvm::FunctionAnalysisManagerCGSCCProxy::Result::invalidate(), llvm::ShouldRunExtraSimpleLoopUnswitch::Result::invalidate(), llvm::MachineBranchProbabilityInfo::invalidate(), llvm::MachineDominatorTree::invalidate(), llvm::MachineLoopInfo::invalidate(), llvm::MachinePostDominatorTree::invalidate(), llvm::MachineBlockFrequencyInfo::invalidate(), llvm::CallGraph::invalidate(), llvm::PGOContextualProfile::invalidate(), llvm::InlineAdvisorAnalysis::Result::invalidate(), llvm::LazyCallGraph::invalidate(), llvm::GlobalsAAResult::invalidate(), llvm::CGSCCAnalysisManagerModuleProxy::Result::invalidate(), llvm::FunctionToLoopPassAdaptor::run(), and llvm::CGSCCToFunctionPassAdaptor::run().
|
inline |
Build a checker for this PreservedAnalyses
and the specified analysis ID.
You can use the returned object to query whether an analysis was preserved. See the example in the comment on PreservedAnalysis
.
Definition at line 273 of file Analysis.h.
|
inline |
Intersect this set with another in place.
This is a mutating operation on this preserved set, removing all preserved passes which are not also preserved in the argument.
Definition at line 182 of file Analysis.h.
References areAllPreserved(), and llvm::SmallPtrSetImpl< PtrType >::contains().
Referenced by llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::run(), llvm::CGSCCToFunctionPassAdaptor::run(), llvm::DevirtSCCRepeatedPass::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor::run(), llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::runWithLoopNestPasses(), and llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::runWithoutLoopNestPasses().
|
inline |
Intersect this set with a temporary other set in place.
This is a mutating operation on this preserved set, removing all preserved passes which are not also preserved in the argument.
Definition at line 203 of file Analysis.h.
|
inlinestatic |
Convenience factory function for the empty preserved set.
Definition at line 114 of file Analysis.h.
Referenced by llvm::AMDGPUCodeGenPreparePass::run(), llvm::AMDGPULateCodeGenPreparePass::run(), llvm::LowerAtomicPass::run(), llvm::LowerExpectIntrinsicPass::run(), llvm::AtomicExpandPass::run(), llvm::ExpandLargeDivRemPass::run(), llvm::ExpandLargeFpConvertPass::run(), llvm::CoroElidePass::run(), llvm::BoundsCheckingPass::run(), llvm::KCFIPass::run(), llvm::LowerAllowCheckPass::run(), llvm::MemProfilerPass::run(), llvm::FlattenCFGPass::run(), llvm::GVNSinkPass::run(), llvm::LowerGuardIntrinsicPass::run(), llvm::LowerWidenableConditionPass::run(), llvm::MakeGuardsExplicitPass::run(), llvm::PlaceSafepointsPass::run(), llvm::AddDiscriminatorsPass::run(), llvm::LowerInvokePass::run(), llvm::LowerSwitchPass::run(), llvm::AMDGPUSimplifyLibCallsPass::run(), llvm::AMDGPUImageIntrinsicOptimizerPass::run(), llvm::AMDGPUUseNativeCallsPass::run(), llvm::AMDGPUAnnotateUniformValuesPass::run(), llvm::SIAnnotateControlFlowPass::run(), llvm::AMDGPUUnifyDivergentExitNodesPass::run(), llvm::BPFAbstractMemberAccessPass::run(), llvm::BPFPreserveDITypePass::run(), llvm::BPFIRPeepholePass::run(), llvm::BPFASpaceCastSimplifyPass::run(), llvm::BPFPreserveStaticOffsetPass::run(), llvm::NVVMIntrRangePass::run(), llvm::NVVMReflectPass::run(), llvm::InterleavedLoadCombinePass::run(), llvm::SjLjEHPreparePass::run(), llvm::WasmEHPreparePass::run(), llvm::WinEHPreparePass::run(), llvm::CFGuardPass::run(), llvm::ControlHeightReductionPass::run(), llvm::ThreadSanitizerPass::run(), llvm::LoopVersioningPass::run(), llvm::InvalidateAllAnalysesPass::run(), llvm::CGSCCToFunctionPassAdaptor::run(), llvm::CoroSplitPass::run(), llvm::OpenMPOptCGSCCPass::run(), llvm::LoopIdiomVectorizePass::run(), llvm::AlwaysInlinerPass::run(), llvm::ConstantMergePass::run(), llvm::DeadArgumentEliminationPass::run(), llvm::EliminateAvailableExternallyPass::run(), llvm::ExtractGVPass::run(), llvm::ForceFunctionAttrsPass::run(), llvm::GlobalDCEPass::run(), llvm::PartialInlinerPass::run(), llvm::StripDeadPrototypesPass::run(), llvm::WholeProgramDevirtPass::run(), llvm::DXILFinalizeLinkage::run(), llvm::DXILIntrinsicExpansion::run(), llvm::PreISelIntrinsicLoweringPass::run(), llvm::ModuleToFunctionPassAdaptor::run(), llvm::AddressSanitizerPass::run(), llvm::DataFlowSanitizerPass::run(), llvm::GCOVProfilerPass::run(), llvm::InstrOrderFilePass::run(), llvm::InstrProfilingLoweringPass::run(), llvm::MemorySanitizerPass::run(), llvm::ModuleMemProfilerPass::run(), llvm::MemProfUsePass::run(), llvm::NumericalStabilitySanitizerPass::run(), llvm::PGOForceFunctionAttrsPass::run(), llvm::PoisonCheckingPass::run(), llvm::SanitizerBinaryMetadataPass::run(), llvm::SanitizerCoveragePass::run(), llvm::ModuleThreadSanitizerPass::run(), llvm::Annotation2MetadataPass::run(), llvm::AttributorPass::run(), llvm::BlockExtractorPass::run(), llvm::CrossDSOCFIPass::run(), llvm::ExpandVariadicsPass::run(), llvm::FunctionImportPass::run(), llvm::GlobalOptPass::run(), llvm::GlobalSplitPass::run(), llvm::HotColdSplittingPass::run(), llvm::InferFunctionAttrsPass::run(), llvm::InternalizePass::run(), llvm::IROutlinerPass::run(), llvm::LowerTypeTestsPass::run(), llvm::MemProfContextDisambiguation::run(), llvm::MergeFunctionsPass::run(), llvm::OpenMPOptPass::run(), llvm::SampleProfileLoaderPass::run(), llvm::SampleProfileProbePass::run(), llvm::PseudoProbeUpdatePass::run(), llvm::ThinLTOBitcodeWriterPass::run(), llvm::CanonicalizeAliasesPass::run(), llvm::LowerIFuncPass::run(), llvm::NameAnonGlobalPass::run(), llvm::RewriteSymbolPass::run(), llvm::AMDGPULowerModuleLDSPass::run(), llvm::AMDGPULowerBufferFatPointersPass::run(), llvm::AMDGPUAlwaysInlinePass::run(), llvm::AMDGPUAttributorPass::run(), llvm::AMDGPUPrintfRuntimeBindingPass::run(), llvm::AMDGPUUnifyMetadataPass::run(), llvm::AMDGPUCtorDtorLoweringPass::run(), llvm::BPFAdjustOptPass::run(), llvm::GenericToNVVMPass::run(), llvm::NVPTXCtorDtorLoweringPass::run(), llvm::AssignGUIDPass::run(), llvm::JMCInstrumenterPass::run(), llvm::CoroCleanupPass::run(), llvm::HipStdParAcceleratorCodeSelectionPass::run(), llvm::HipStdParAllocationInterpositionPass::run(), llvm::HWAddressSanitizerPass::run(), llvm::PGOCtxProfLoweringPass::run(), llvm::PGOInstrumentationGen::run(), llvm::PGOInstrumentationUse::run(), llvm::PGOIndirectCallPromotion::run(), llvm::DXILOpLowering::run(), and llvm::AnalysisManager< IRUnitT, ExtraArgTs >::verifyNotInvalidated().
|
inline |
Mark an analysis as preserved.
Definition at line 131 of file Analysis.h.
References preserve().
Referenced by llvm::getLoopPassPreservedAnalyses(), preserve(), llvm::NewGVNPass::run(), llvm::ADCEPass::run(), llvm::ConstraintEliminationPass::run(), llvm::LowerConstantIntrinsicsPass::run(), llvm::CodeGenPreparePass::run(), llvm::ComplexDeinterleavingPass::run(), llvm::HardwareLoopsPass::run(), llvm::ReplaceWithVeclib::run(), llvm::TypePromotionPass::run(), llvm::UnreachableBlockElimPass::run(), llvm::AggressiveInstCombinePass::run(), llvm::AlignmentFromAssumptionsPass::run(), llvm::CallSiteSplittingPass::run(), llvm::CorrelatedValuePropagationPass::run(), llvm::DFAJumpThreadingPass::run(), llvm::EarlyCSEPass::run(), llvm::GuardWideningPass::run(), llvm::GVNPass::run(), llvm::GVNHoistPass::run(), llvm::InferAddressSpacesPass::run(), llvm::JumpTableToSwitchPass::run(), llvm::LoopDataPrefetchPass::run(), llvm::LoopDistributePass::run(), llvm::LoopFusePass::run(), llvm::LoopLoadEliminationPass::run(), llvm::LowerMatrixIntrinsicsPass::run(), llvm::MemCpyOptPass::run(), llvm::MergeICmpsPass::run(), llvm::NaryReassociatePass::run(), llvm::PartiallyInlineLibCallsPass::run(), llvm::RegToMemPass::run(), llvm::ScalarizeMaskedMemIntrinPass::run(), llvm::ScalarizerPass::run(), llvm::SimplifyCFGPass::run(), llvm::SROAPass::run(), llvm::StraightLineStrengthReducePass::run(), llvm::StructurizeCFGPass::run(), llvm::TailCallElimPass::run(), llvm::BreakCriticalEdgesPass::run(), llvm::FixIrreduciblePass::run(), llvm::LCSSAPass::run(), llvm::LoopSimplifyPass::run(), llvm::MoveAutoInitPass::run(), llvm::UnifyLoopExitsPass::run(), llvm::LoopVectorizePass::run(), llvm::AMDGPUPromoteKernelArgumentsPass::run(), llvm::AMDGPUAtomicOptimizerPass::run(), llvm::SIAnnotateControlFlowPass::run(), llvm::DwarfEHPreparePass::run(), llvm::GCLoweringPass::run(), llvm::IndirectBrExpandPass::run(), llvm::SafeStackPass::run(), llvm::StackProtectorPass::run(), llvm::DSEPass::run(), llvm::LoopSinkPass::run(), llvm::CallBrPreparePass::run(), llvm::CGSCCToFunctionPassAdaptor::run(), llvm::ArgumentPromotionPass::run(), llvm::AttributorCGSCCPass::run(), llvm::AttributorLightCGSCCPass::run(), llvm::PostOrderFunctionAttrsPass::run(), llvm::AttributorLightPass::run(), llvm::ReversePostOrderFunctionAttrsPass::run(), llvm::GlobalOptPass::run(), llvm::LoopExtractorPass::run(), llvm::IPSCCPPass::run(), llvm::RewriteStatepointsForGC::run(), llvm::DXILUpgradePass::run(), llvm::AMDGPUPerfHintAnalysisPass::run(), llvm::ShadowStackGCLoweringPass::run(), llvm::HWAddressSanitizerPass::run(), and llvm::PGOInstrumentationGenCreateVar::run().
|
inline |
Given an analysis's ID, mark the analysis as preserved, adding it to the set.
Definition at line 135 of file Analysis.h.
|
inline |
Mark an analysis set as preserved.
Definition at line 146 of file Analysis.h.
Referenced by allInSet(), llvm::DebugifyEachInstrumentation::registerCallbacks(), llvm::AMDGPUCodeGenPreparePass::run(), llvm::AMDGPULateCodeGenPreparePass::run(), llvm::AMDGPULowerKernelArgumentsPass::run(), llvm::RealtimeSanitizerPass::run(), llvm::ADCEPass::run(), llvm::ConstraintEliminationPass::run(), llvm::DivRemPairsPass::run(), llvm::ReassociatePass::run(), llvm::SeparateConstOffsetFromGEPPass::run(), llvm::VectorCombinePass::run(), llvm::ExpandReductionsPass::run(), llvm::ReplaceWithVeclib::run(), llvm::TypePromotionPass::run(), llvm::AssignmentTrackingPass::run(), llvm::AggressiveInstCombinePass::run(), llvm::InstCombinePass::run(), llvm::ObjCARCOptPass::run(), llvm::ObjCARCContractPass::run(), llvm::AlignmentFromAssumptionsPass::run(), llvm::BDCEPass::run(), llvm::ConstantHoistingPass::run(), llvm::DCEPass::run(), llvm::RedundantDbgInstEliminationPass::run(), llvm::EarlyCSEPass::run(), llvm::Float2IntPass::run(), llvm::GuardWideningPass::run(), llvm::InferAddressSpacesPass::run(), llvm::InstSimplifyPass::run(), llvm::MemCpyOptPass::run(), llvm::MergedLoadStoreMotionPass::run(), llvm::NaryReassociatePass::run(), llvm::SinkingPass::run(), llvm::SpeculativeExecutionPass::run(), llvm::SROAPass::run(), llvm::StraightLineStrengthReducePass::run(), llvm::TLSVariableHoistPass::run(), llvm::AssumeSimplifyPass::run(), llvm::AssumeBuilderPass::run(), llvm::EntryExitInstrumenterPass::run(), llvm::LCSSAPass::run(), llvm::PromotePass::run(), llvm::MoveAutoInitPass::run(), llvm::StripGCRelocates::run(), llvm::LoadStoreVectorizerPass::run(), llvm::LoopVectorizePass::run(), llvm::SLPVectorizerPass::run(), llvm::AMDGPUPromoteKernelArgumentsPass::run(), llvm::AMDGPUPromoteAllocaPass::run(), llvm::AMDGPUPromoteAllocaToVectorPass::run(), llvm::AMDGPUAnnotateUniformValuesPass::run(), llvm::AMDGPURewriteUndefForPHIPass::run(), llvm::InterleavedAccessPass::run(), llvm::DSEPass::run(), llvm::LoopSinkPass::run(), llvm::ObjCARCExpandPass::run(), llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::run(), llvm::CGSCCToFunctionPassAdaptor::run(), llvm::ArgumentPromotionPass::run(), llvm::AttributorLightCGSCCPass::run(), llvm::PostOrderFunctionAttrsPass::run(), NewPMDebugifyPass::run(), llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::run(), llvm::HexagonVectorLoopCarriedReusePass::run(), llvm::DeadMachineInstructionElimPass::run(), llvm::SILowerI1CopiesPass::run(), llvm::CoroEarlyPass::run(), llvm::AttributorLightPass::run(), llvm::GlobalOptPass::run(), llvm::StripSymbolsPass::run(), llvm::StripNonDebugSymbolsPass::run(), llvm::StripDebugDeclarePass::run(), llvm::StripDeadDebugInfoPass::run(), llvm::ObjCARCAPElimPass::run(), llvm::DXILUpgradePass::run(), llvm::LowerGlobalDtorsPass::run(), llvm::RelLookupTableConverterPass::run(), llvm::StripNonLineTableDebugInfoPass::run(), llvm::GlobalMergePass::run(), llvm::CoroCleanupPass::run(), llvm::PGOInstrumentationGenCreateVar::run(), and runAttributorLightOnFunctions().
|
inline |
Mark an analysis set as preserved using its ID.
Definition at line 151 of file Analysis.h.