LLVM: include/llvm/Analysis/InlineOrder.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_ANALYSIS_INLINEORDER_H
10#define LLVM_ANALYSIS_INLINEORDER_H
11
14#include
15
16namespace llvm {
19
21public:
23
25
26 virtual void push(const T &Elt) = 0;
27
29
31
33};
34
35LLVM_ABI std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>>
38
39LLVM_ABI std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>>
42
43
44
45
46
47
48
49
50
51
54public:
56
57 typedef std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>> (
61
63 assert(Factory != nullptr &&
64 "The plugin inline order factory should not be a null pointer.");
65 }
66
70
73
74private:
76};
77
78}
79#endif
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
Machine Check Debug Module
FunctionAnalysisManager FAM
ModuleAnalysisManager MAM
Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to callin...
Definition InlineOrder.h:20
virtual void erase_if(function_ref< bool(T)> Pred)=0
virtual ~InlineOrder()=default
virtual void push(const T &Elt)=0
bool empty()
Definition InlineOrder.h:32
A Module instance is used to store all the information related to an LLVM module.
PluginInlineOrderAnalysis(InlineOrderFactory Factory)
Definition InlineOrder.h:62
Result getResult()
Definition InlineOrder.h:72
static LLVM_ABI AnalysisKey Key
Definition InlineOrder.h:55
std::unique_ptr< InlineOrder< std::pair< CallBase *, int > > >(* InlineOrderFactory)(FunctionAnalysisManager &FAM, const InlineParams &Params, ModuleAnalysisManager &MAM, Module &M)
Definition InlineOrder.h:58
Result run(Module &, ModuleAnalysisManager &)
Definition InlineOrder.h:71
An efficient, type-erasing, non-owning reference to a callable.
This is an optimization pass for GlobalISel generic memory operations.
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< 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...
Thresholds to tune inline cost analysis.
Definition InlineOrder.h:67
InlineOrderFactory Factory
Definition InlineOrder.h:68