LLVM: include/llvm/Analysis/StackSafetyAnalysis.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_ANALYSIS_STACKSAFETYANALYSIS_H
14#define LLVM_ANALYSIS_STACKSAFETYANALYSIS_H
15
19
20namespace llvm {
21
24
25
27public:
29
30private:
33 mutable std::unique_ptr Info;
34
35public:
41
43
44
46
47
48
49
50
51
52
53
54 std::vectorFunctionSummary::ParamAccess
56};
57
59public:
61
62private:
66 mutable std::unique_ptr Info;
67 const InfoTy &getInfo() const;
68
69public:
77
78
79
81
82
83
84
85
88 void dump() const;
89};
90
91
100
101
110
111
114
115public:
118
120
123
125};
126
127
128
138
139
141 : public PassInfoMixin {
143
144public:
148};
149
150
151
154
155public:
157
160
162
165
167};
168
170
172
173}
174
175#endif
This header defines various interfaces for pass management in LLVM.
Machine Check Debug Module
ModuleSummaryIndex.h This file contains the declarations the classes that hold the module index and s...
an instruction to allocate memory on the stack
Represent the analysis usage information of a pass.
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.
A set of analyses that are preserved following a run of a transformation pass.
The main scalar evolution driver.
StackSafetyInfo wrapper for the new pass manager.
Definition StackSafetyAnalysis.h:92
StackSafetyInfo run(Function &F, FunctionAnalysisManager &AM)
StackSafetyInfo Result
Definition StackSafetyAnalysis.h:97
This pass performs the global (interprocedural) stack safety analysis (new pass manager).
Definition StackSafetyAnalysis.h:130
Result run(Module &M, ModuleAnalysisManager &AM)
StackSafetyGlobalInfo Result
Definition StackSafetyAnalysis.h:135
bool runOnModule(Module &M) override
runOnModule - Virtual method overriden by subclasses to process the module being operated on.
static char ID
Definition StackSafetyAnalysis.h:156
StackSafetyGlobalInfoWrapperPass()
const StackSafetyGlobalInfo & getResult() const
Definition StackSafetyAnalysis.h:161
~StackSafetyGlobalInfoWrapperPass() override
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
void print(raw_ostream &O, const Module *M) const override
print - Print out the internal state of the pass.
StackSafetyGlobalInfo(StackSafetyGlobalInfo &&)
void print(raw_ostream &O) const
bool stackAccessIsSafe(const Instruction &I) const
bool isSafe(const AllocaInst &AI) const
StackSafetyGlobalInfo & operator=(StackSafetyGlobalInfo &&)
static bool isRequired()
Definition StackSafetyAnalysis.h:147
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
StackSafetyGlobalPrinterPass(raw_ostream &OS)
Definition StackSafetyAnalysis.h:145
void print(raw_ostream &O, const Module *M) const override
print - Print out the internal state of the pass.
bool runOnFunction(Function &F) override
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
static char ID
Definition StackSafetyAnalysis.h:116
const StackSafetyInfo & getResult() const
Definition StackSafetyAnalysis.h:119
StackSafetyInfoWrapperPass()
Interface to access stack safety analysis results for single function.
Definition StackSafetyAnalysis.h:26
void print(raw_ostream &O) const
const InfoTy & getInfo() const
StackSafetyInfo(StackSafetyInfo &&)
StackSafetyInfo & operator=(StackSafetyInfo &&)
std::vector< FunctionSummary::ParamAccess > getParamAccesses(ModuleSummaryIndex &Index) const
Parameters use for a FunctionSummary.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
static bool isRequired()
Definition StackSafetyAnalysis.h:108
StackSafetyPrinterPass(raw_ostream &OS)
Definition StackSafetyAnalysis.h:106
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.
void generateParamAccessSummary(ModuleSummaryIndex &Index)
bool needsParamAccessSummary(const 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...
A CRTP mix-in to automatically provide informational APIs needed for passes.