Go to the documentation of this file.
13 #ifndef LLVM_ANALYSIS_STACKSAFETYANALYSIS_H
14 #define LLVM_ANALYSIS_STACKSAFETYANALYSIS_H
23 class ScalarEvolution;
33 mutable std::unique_ptr<InfoTy>
Info;
54 std::vector<FunctionSummary::ParamAccess>
66 mutable std::unique_ptr<InfoTy>
Info;
67 const InfoTy &getInfo()
const;
173 #endif // LLVM_ANALYSIS_STACKSAFETYANALYSIS_H
A set of analyses that are preserved following a run of a transformation pass.
This is an optimization pass for GlobalISel generic memory operations.
We currently emits eax Perhaps this is what we really should generate is Is imull three or four cycles eax eax The current instruction priority is based on pattern complexity The former is more complex because it folds a load so the latter will not be emitted Perhaps we should use AddedComplexity to give LEA32r a higher priority We should always try to match LEA first since the LEA matching code does some estimate to determine whether the match is profitable if we care more about code then imull is better It s two bytes shorter than movl leal On a Pentium M
bool isSafe(const AllocaInst &AI) const
void print(raw_ostream &O) const
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
A CRTP mix-in to automatically provide informational APIs needed for passes.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
Printer pass for the StackSafetyAnalysis results.
The main scalar evolution driver.
Printer pass for the StackSafetyGlobalAnalysis results.
bool needsParamAccessSummary(const Module &M)
StackSafetyGlobalInfo & operator=(StackSafetyGlobalInfo &&)
StackSafetyInfo run(Function &F, FunctionAnalysisManager &AM)
void generateParamAccessSummary(ModuleSummaryIndex &Index)
StackSafetyInfo wrapper for the new pass manager.
const StackSafetyInfo & getResult() const
Represent the analysis usage information of a pass.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
StackSafetyInfoWrapperPass()
This class implements an extremely fast bulk output stream that can only output to a stream.
Analysis containing CSE Info
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
std::vector< FunctionSummary::ParamAccess > getParamAccesses(ModuleSummaryIndex &Index) const
Parameters use for a FunctionSummary.
This pass performs the global (interprocedural) stack safety analysis (new pass manager).
A special type used by analysis passes to provide an address that identifies that particular analysis...
print Print MemDeps of function
A Module instance is used to store all the information related to an LLVM module.
A CRTP mix-in that provides informational APIs needed for analysis passes.
Result run(Module &M, ModuleAnalysisManager &AM)
Interface to access stack safety analysis results for single function.
StackSafetyGlobalInfoWrapperPass()
StackSafetyInfo wrapper for the legacy pass manager.
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.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
Machine Check Debug Module
StackSafetyInfo & operator=(StackSafetyInfo &&)
void print(raw_ostream &O, const Module *M) const override
print - Print out the internal state of the pass.
This pass performs the global (interprocedural) stack safety analysis (legacy pass manager).
bool stackAccessIsSafe(const Instruction &I) const
const InfoTy & getInfo() const
Class to hold module path string table and global value map, and encapsulate methods for operating on...
bool runOnModule(Module &M) override
runOnModule - Virtual method overriden by subclasses to process the module being operated on.
StackSafetyPrinterPass(raw_ostream &OS)
A container for analyses that lazily runs them and caches their results.
void print(raw_ostream &O) const
FunctionPass class - This class is used to implement most global optimizations.
an instruction to allocate memory on the stack
~StackSafetyGlobalInfoWrapperPass()
StackSafetyGlobalPrinterPass(raw_ostream &OS)
const StackSafetyGlobalInfo & getResult() const