9#ifndef LLVM_ANALYSIS_INLINEORDER_H
10#define LLVM_ANALYSIS_INLINEORDER_H
17template <
typename Fn>
class function_ref;
25 virtual void push(
const T &Elt) = 0;
34std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>>
38std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>>
56 typedef std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>> (
62 HasBeenRegistered =
true;
63 assert(Factory !=
nullptr &&
64 "The plugin inline order factory should not be a null pointer.");
78 static bool HasBeenRegistered;
FunctionAnalysisManager FAM
ModuleAnalysisManager MAM
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
A container for analyses that lazily runs them and caches their results.
virtual void erase_if(function_ref< bool(T)> Pred)=0
virtual ~InlineOrder()=default
virtual void push(const T &Elt)=0
A Module instance is used to store all the information related to an LLVM module.
Used for dynamically loading instances of InlineOrder as plugins.
PluginInlineOrderAnalysis(InlineOrderFactory Factory)
static bool isRegistered()
std::unique_ptr< InlineOrder< std::pair< CallBase *, int > > >(* InlineOrderFactory)(FunctionAnalysisManager &FAM, const InlineParams &Params, ModuleAnalysisManager &MAM, Module &M)
Result run(Module &, ModuleAnalysisManager &)
An efficient, type-erasing, non-owning reference to a callable.
This is an optimization pass for GlobalISel generic memory operations.
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
std::unique_ptr< InlineOrder< std::pair< CallBase *, int > > > getDefaultInlineOrder(FunctionAnalysisManager &FAM, const InlineParams &Params, ModuleAnalysisManager &MAM, Module &M)
std::unique_ptr< InlineOrder< std::pair< CallBase *, int > > > getInlineOrder(FunctionAnalysisManager &FAM, const InlineParams &Params, ModuleAnalysisManager &MAM, Module &M)
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...
Thresholds to tune inline cost analysis.
InlineOrderFactory Factory