13#ifndef LLVM_ANALYSIS_STACKSAFETYANALYSIS_H
14#define LLVM_ANALYSIS_STACKSAFETYANALYSIS_H
33 mutable std::unique_ptr<InfoTy> Info;
55 LLVM_ABI std::vector<FunctionSummary::ParamAccess>
67 mutable std::unique_ptr<InfoTy> Info;
68 const InfoTy &getInfo()
const;
166 bool runOnModule(
Module &M)
override;
static void print(raw_ostream &Out, object::Archive::Kind Kind, T Val)
static bool runOnFunction(Function &F, bool PostInlining)
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.
LLVM_ABI StackSafetyInfo run(Function &F, FunctionAnalysisManager &AM)
This pass performs the global (interprocedural) stack safety analysis (new pass manager).
LLVM_ABI Result run(Module &M, ModuleAnalysisManager &AM)
StackSafetyGlobalInfo Result
StackSafetyGlobalInfoWrapperPass()
const StackSafetyGlobalInfo & getResult() const
~StackSafetyGlobalInfoWrapperPass() override
LLVM_ABI StackSafetyGlobalInfo(StackSafetyGlobalInfo &&)
LLVM_ABI void print(raw_ostream &O) const
LLVM_ABI bool stackAccessIsSafe(const Instruction &I) const
LLVM_ABI void dump() const
LLVM_ABI bool isSafe(const AllocaInst &AI) const
LLVM_ABI StackSafetyGlobalInfo & operator=(StackSafetyGlobalInfo &&)
LLVM_ABI StackSafetyGlobalInfo()
LLVM_ABI ~StackSafetyGlobalInfo()
LLVM_ABI PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
StackSafetyGlobalPrinterPass(raw_ostream &OS)
const StackSafetyInfo & getResult() const
StackSafetyInfoWrapperPass()
Interface to access stack safety analysis results for single function.
LLVM_ABI void print(raw_ostream &O) const
LLVM_ABI ~StackSafetyInfo()
LLVM_ABI const InfoTy & getInfo() const
LLVM_ABI StackSafetyInfo(StackSafetyInfo &&)
LLVM_ABI StackSafetyInfo()
LLVM_ABI StackSafetyInfo & operator=(StackSafetyInfo &&)
LLVM_ABI std::vector< FunctionSummary::ParamAccess > getParamAccesses(ModuleSummaryIndex &Index) const
Parameters use for a FunctionSummary.
LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
StackSafetyPrinterPass(raw_ostream &OS)
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.
LLVM_ABI void generateParamAccessSummary(ModuleSummaryIndex &Index)
LLVM_ABI 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 for passes that should not be skipped.