30#ifndef LLVM_ANALYSIS_LASTRUNTRACKINGANALYSIS_H
31#define LLVM_ANALYSIS_LASTRUNTRACKINGANALYSIS_H
60 template <
typename OptionT>
62 return shouldSkipImpl(
ID, &Opt);
73 template <
typename OptionT>
76 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 function/module analysis which provides an empty LastRunTrackingInfo.
LastRunTrackingInfo run(Module &M, ModuleAnalysisManager &)
LastRunTrackingInfo Result
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.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
This is an optimization pass for GlobalISel generic memory operations.
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.
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...