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

24 virtual size_t size() = 0;

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