9#ifndef LLVM_ANALYSIS_INLINEORDER_H
10#define LLVM_ANALYSIS_INLINEORDER_H
18template <
typename Fn>
class function_ref;
26 virtual void push(
const T &Elt) = 0;
35LLVM_ABI std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>>
39LLVM_ABI std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>>
57 typedef std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>> (
63 assert(Factory !=
nullptr &&
64 "The plugin inline order factory should not be a null pointer.");
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
FunctionAnalysisManager FAM
ModuleAnalysisManager MAM
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 LLVM_ABI AnalysisKey Key
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.
LLVM_ABI std::unique_ptr< InlineOrder< std::pair< CallBase *, int > > > getDefaultInlineOrder(FunctionAnalysisManager &FAM, const InlineParams &Params, ModuleAnalysisManager &MAM, Module &M)
LLVM_ABI 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