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.