LLVM: include/llvm/Analysis/ModuleSummaryAnalysis.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_ANALYSIS_MODULESUMMARYANALYSIS_H

14#define LLVM_ANALYSIS_MODULESUMMARYANALYSIS_H

15

20#include

21#include

22

23namespace llvm {

24

30

31

32

33

34

35

36

43

44

56

57

59 std::optional Index;

60

61public:

62 static char ID;

63

65

66

69

70 bool runOnModule(Module &M) override;

71 bool doFinalization(Module &M) override;

72 void getAnalysisUsage(AnalysisUsage &AU) const override;

73};

74

75

76

77

78

79

81

82

85

86public:

87 static char ID;

88

92 void getAnalysisUsage(AnalysisUsage &AU) const override;

93};

94

95

96

97

98

99

102

103

104

106

107}

108

109#endif

This header defines various interfaces for pass management in LLVM.

ModuleSummaryIndex.h This file contains the declarations the classes that hold the module index and s...

Represent the analysis usage information of a pass.

BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequen...

Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to callin...

static char ID

Definition ModuleSummaryAnalysis.h:87

ImmutableModuleSummaryIndexWrapperPass(const ModuleSummaryIndex *Index=nullptr)

const ModuleSummaryIndex * getIndex() const

Definition ModuleSummaryAnalysis.h:91

Analysis pass to provide the ModuleSummaryIndex object.

Definition ModuleSummaryAnalysis.h:46

LLVM_ABI Result run(Module &M, ModuleAnalysisManager &AM)

ModuleSummaryIndex Result

Definition ModuleSummaryAnalysis.h:52

ModuleSummaryIndexWrapperPass()

ModuleSummaryIndex & getIndex()

Get the index built by pass.

Definition ModuleSummaryAnalysis.h:67

const ModuleSummaryIndex & getIndex() const

Definition ModuleSummaryAnalysis.h:68

static char ID

Definition ModuleSummaryAnalysis.h:62

Class to hold module path string table and global value map, and encapsulate methods for operating on...

A Module instance is used to store all the information related to an LLVM module.

Analysis providing profile information.

Interface to access stack safety analysis results for single function.

This is an optimization pass for GlobalISel generic memory operations.

LLVM_ABI bool mayHaveMemprofSummary(const CallBase *CB)

Returns true if the instruction could have memprof metadata, used to ensure consistency between summa...

LLVM_ABI ModuleSummaryIndex buildModuleSummaryIndex(const Module &M, std::function< BlockFrequencyInfo *(const Function &F)> GetBFICallback, ProfileSummaryInfo *PSI, std::function< const StackSafetyInfo *(const Function &F)> GetSSICallback=[](const Function &F) -> const StackSafetyInfo *{ return nullptr;})

Direct function to compute a ModuleSummaryIndex from a given module.

LLVM_ABI ModulePass * createModuleSummaryIndexWrapperPass()

LLVM_ABI ImmutablePass * createImmutableModuleSummaryIndexWrapperPass(const ModuleSummaryIndex *Index)

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...