30#ifndef LLVM_ANALYSIS_LASTRUNTRACKINGANALYSIS_H
31#define LLVM_ANALYSIS_LASTRUNTRACKINGANALYSIS_H
59 template <
typename OptionT>
61 return shouldSkipImpl(
ID, &Opt);
72 template <
typename OptionT>
75 return static_cast<const OptionT *
>(
Ptr)->isCompatibleWith(Opt);
This file defines the DenseMap class.
This header defines various interfaces for pass management in LLVM.
A container for analyses that lazily runs them and caches their results.
A function/module analysis which provides an empty LastRunTrackingInfo.
LastRunTrackingInfo run(Module &M, ModuleAnalysisManager &)
LastRunTrackingInfo run(Function &F, FunctionAnalysisManager &)
This class is used to track the last run of a set of module/function passes.
std::function< bool(OptionPtr)> CompatibilityCheckFn
bool shouldSkip(PassID ID) const
void update(PassID ID, bool Changed, const OptionT &Opt)
Update the tracking info.
bool shouldSkip(PassID ID, const OptionT &Opt) const
Check if we should skip a pass.
void update(PassID ID, bool Changed)
A Module instance is used to store all the information related to an LLVM module.
This is an optimization pass for GlobalISel generic memory operations.
A CRTP mix-in that provides informational APIs needed for analysis passes.
A special type used by analysis passes to provide an address that identifies that particular analysis...