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

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_ANALYSIS_FUNCTIONPROPERTIESANALYSIS_H

15#define LLVM_ANALYSIS_FUNCTIONPROPERTIESANALYSIS_H

16

22

23namespace llvm {

29

34 void reIncludeBB(const BasicBlock &BB);

35

38

39public:

44

47

49

51 return !(*this == FPI);

52 }

53

55

56

58

59

60

61

62

63

64

66

67

68

70

71

72

74

75

77

78

80

81

83

84

86

87

89

90

94

95

99

100

101

105

106

108

109

111

112

114

115

125

126

130

131

143

145 return FunctionEmbedding;

146 }

147

149

150

152 FunctionEmbedding = Embedding;

153 }

154};

155

156

159

160public:

162

164

167};

168

169

171 : public PassInfoMixin {

173

174public:

176

178

180};

181

182

183

184

185

186

187

189public:

191

195 return isUpdateValid(Caller, FPI, FAM);

196 }

197

198private:

202

206

208

211

212

214};

215}

216#endif

This file defines the DenseSet and SmallDenseSet classes.

This file defines the IR2Vec vocabulary analysis(IR2VecVocabAnalysis), the core ir2vec::Embedder inte...

This header defines various interfaces for pass management in LLVM.

Loop::LoopBounds::Direction Direction

FunctionAnalysisManager FAM

LLVM Basic Block Representation.

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

Implements a dense probed hash-table based set.

Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.

static LLVM_ABI AnalysisKey Key

Definition FunctionPropertiesAnalysis.h:161

LLVM_ABI FunctionPropertiesInfo run(Function &F, FunctionAnalysisManager &FAM)

const FunctionPropertiesInfo Result

Definition FunctionPropertiesAnalysis.h:163

int64_t BasicBlocksWithMoreThanTwoSuccessors

Definition FunctionPropertiesAnalysis.h:93

int64_t BasicBlocksWithSinglePredecessor

Definition FunctionPropertiesAnalysis.h:96

int64_t CallReturnsVectorPointerCount

Definition FunctionPropertiesAnalysis.h:140

int64_t CallReturnsPointerCount

Definition FunctionPropertiesAnalysis.h:137

int64_t CallWithManyArgumentsCount

Definition FunctionPropertiesAnalysis.h:141

int64_t CallReturnsVectorIntCount

Definition FunctionPropertiesAnalysis.h:138

const ir2vec::Vocabulary * getIR2VecVocab() const

Definition FunctionPropertiesAnalysis.h:148

int64_t CallReturnsVectorFloatCount

Definition FunctionPropertiesAnalysis.h:139

bool operator!=(const FunctionPropertiesInfo &FPI) const

Definition FunctionPropertiesAnalysis.h:50

int64_t CastInstructionCount

Definition FunctionPropertiesAnalysis.h:107

int64_t StoreInstCount

Definition FunctionPropertiesAnalysis.h:79

int64_t BasicBlockCount

Number of basic blocks.

Definition FunctionPropertiesAnalysis.h:57

int64_t CriticalEdgeCount

Definition FunctionPropertiesAnalysis.h:127

int64_t Uses

Number of uses of this function, plus 1 if the function is callable outside the module.

Definition FunctionPropertiesAnalysis.h:69

const ir2vec::Embedding & getFunctionEmbedding() const

Definition FunctionPropertiesAnalysis.h:144

int64_t InlineAsmOperandCount

Definition FunctionPropertiesAnalysis.h:122

int64_t ConstantFPOperandCount

Definition FunctionPropertiesAnalysis.h:117

int64_t BasicBlocksWithTwoSuccessors

Definition FunctionPropertiesAnalysis.h:92

int64_t DirectCallCount

Definition FunctionPropertiesAnalysis.h:133

int64_t BigBasicBlocks

Definition FunctionPropertiesAnalysis.h:102

int64_t LoadInstCount

Definition FunctionPropertiesAnalysis.h:76

int64_t InstructionOperandCount

Definition FunctionPropertiesAnalysis.h:119

int64_t CallWithPointerArgumentCount

Definition FunctionPropertiesAnalysis.h:142

int64_t FloatingPointInstructionCount

Definition FunctionPropertiesAnalysis.h:110

int64_t TopLevelLoopCount

Definition FunctionPropertiesAnalysis.h:85

int64_t CallReturnsIntegerCount

Definition FunctionPropertiesAnalysis.h:135

int64_t BlocksReachedFromConditionalInstruction

Number of blocks reached from a conditional instruction, or that are 'cases' of a SwitchInstr.

Definition FunctionPropertiesAnalysis.h:65

int64_t GlobalValueOperandCount

Definition FunctionPropertiesAnalysis.h:121

int64_t UnconditionalBranchCount

Definition FunctionPropertiesAnalysis.h:129

int64_t IntrinsicCount

Definition FunctionPropertiesAnalysis.h:132

int64_t ArgumentOperandCount

Definition FunctionPropertiesAnalysis.h:123

friend class FunctionPropertiesUpdater

Definition FunctionPropertiesAnalysis.h:31

int64_t BasicBlocksWithSingleSuccessor

Definition FunctionPropertiesAnalysis.h:91

LLVM_ABI bool operator==(const FunctionPropertiesInfo &FPI) const

int64_t MaxLoopDepth

Definition FunctionPropertiesAnalysis.h:82

int64_t BasicBlockOperandCount

Definition FunctionPropertiesAnalysis.h:120

int64_t ControlFlowEdgeCount

Definition FunctionPropertiesAnalysis.h:128

int64_t BasicBlocksWithTwoPredecessors

Definition FunctionPropertiesAnalysis.h:97

int64_t MediumBasicBlocks

Definition FunctionPropertiesAnalysis.h:103

int64_t IntegerInstructionCount

Definition FunctionPropertiesAnalysis.h:113

static LLVM_ABI FunctionPropertiesInfo getFunctionPropertiesInfo(const Function &F, const DominatorTree &DT, const LoopInfo &LI, const ir2vec::Vocabulary *Vocabulary)

int64_t CallReturnsFloatCount

Definition FunctionPropertiesAnalysis.h:136

LLVM_ABI void print(raw_ostream &OS) const

int64_t TotalInstructionCount

Definition FunctionPropertiesAnalysis.h:88

int64_t SmallBasicBlocks

Definition FunctionPropertiesAnalysis.h:104

int64_t BasicBlocksWithMoreThanTwoPredecessors

Definition FunctionPropertiesAnalysis.h:98

int64_t ConstantOperandCount

Definition FunctionPropertiesAnalysis.h:118

int64_t ConstantIntOperandCount

Definition FunctionPropertiesAnalysis.h:116

int64_t UnknownOperandCount

Definition FunctionPropertiesAnalysis.h:124

int64_t DirectCallsToDefinedFunctions

Number of direct calls made from this function to other functions defined in this module.

Definition FunctionPropertiesAnalysis.h:73

int64_t IndirectCallCount

Definition FunctionPropertiesAnalysis.h:134

void setFunctionEmbeddingForTest(const ir2vec::Embedding &Embedding)

Definition FunctionPropertiesAnalysis.h:151

FunctionPropertiesPrinterPass(raw_ostream &OS)

Definition FunctionPropertiesAnalysis.h:175

static bool isRequired()

Definition FunctionPropertiesAnalysis.h:179

LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)

LLVM_ABI FunctionPropertiesUpdater(FunctionPropertiesInfo &FPI, CallBase &CB)

LLVM_ABI void finish(FunctionAnalysisManager &FAM) const

bool finishAndTest(FunctionAnalysisManager &FAM) const

Definition FunctionPropertiesAnalysis.h:193

A set of analyses that are preserved following a run of a transformation pass.

This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.

Class for storing and accessing the IR2Vec vocabulary.

This class implements an extremely fast bulk output stream that can only output to a stream.

This is an optimization pass for GlobalISel generic memory operations.

AnalysisManager< Function > FunctionAnalysisManager

Convenience typedef for the Function 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...

A CRTP mix-in to automatically provide informational APIs needed for passes.

Embedding is a datatype that wraps std::vector.