diff options
author | Vitaly Buka <vitalybuka@google.com> | 2018-11-26 23:05:48 +0000 |
---|---|---|
committer | Vitaly Buka <vitalybuka@google.com> | 2018-11-26 23:05:48 +0000 |
commit | b8e6fa66387aabe2c3ac8c952a8c151e040370d2 (patch) | |
tree | fbf3f4fced8f2ac1e9695d901eac39c8331a92f6 /llvm/lib/Analysis | |
parent | 1fecbec5fa3e7a13d2506e22b6890697c551e33e (diff) | |
download | bcm5719-llvm-b8e6fa66387aabe2c3ac8c952a8c151e040370d2.tar.gz bcm5719-llvm-b8e6fa66387aabe2c3ac8c952a8c151e040370d2.zip |
[stack-safety] Empty local passes for Stack Safety Global Analysis
Reviewers: eugenis, vlad.tsyrklevich
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D54541
llvm-svn: 347610
Diffstat (limited to 'llvm/lib/Analysis')
-rw-r--r-- | llvm/lib/Analysis/Analysis.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/Analysis/StackSafetyAnalysis.cpp | 45 |
2 files changed, 46 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/Analysis.cpp b/llvm/lib/Analysis/Analysis.cpp index ec8e9ad7e67..bb8742123a0 100644 --- a/llvm/lib/Analysis/Analysis.cpp +++ b/llvm/lib/Analysis/Analysis.cpp @@ -77,6 +77,7 @@ void llvm::initializeAnalysis(PassRegistry &Registry) { initializeRegionOnlyPrinterPass(Registry); initializeSCEVAAWrapperPassPass(Registry); initializeScalarEvolutionWrapperPassPass(Registry); + initializeStackSafetyGlobalInfoWrapperPassPass(Registry); initializeStackSafetyInfoWrapperPassPass(Registry); initializeTargetTransformInfoWrapperPassPass(Registry); initializeTypeBasedAAWrapperPassPass(Registry); diff --git a/llvm/lib/Analysis/StackSafetyAnalysis.cpp b/llvm/lib/Analysis/StackSafetyAnalysis.cpp index 59dc7696fac..008d2b7647c 100644 --- a/llvm/lib/Analysis/StackSafetyAnalysis.cpp +++ b/llvm/lib/Analysis/StackSafetyAnalysis.cpp @@ -373,6 +373,10 @@ StackSafetyInfo StackSafetyLocalAnalysis::run() { return StackSafetyInfo(std::move(Info)); } +void print(const StackSafetyGlobalInfo &SSI, raw_ostream &O, const Module &M) { + O << "Not Implemented\n"; +} + } // end anonymous namespace StackSafetyInfo::StackSafetyInfo() = default; @@ -423,6 +427,40 @@ bool StackSafetyInfoWrapperPass::runOnFunction(Function &F) { return false; } +AnalysisKey StackSafetyGlobalAnalysis::Key; + +StackSafetyGlobalInfo +StackSafetyGlobalAnalysis::run(Module &M, ModuleAnalysisManager &AM) { + return {}; +} + +PreservedAnalyses StackSafetyGlobalPrinterPass::run(Module &M, + ModuleAnalysisManager &AM) { + OS << "'Stack Safety Analysis' for module '" << M.getName() << "'\n"; + print(AM.getResult<StackSafetyGlobalAnalysis>(M), OS, M); + return PreservedAnalyses::all(); +} + +char StackSafetyGlobalInfoWrapperPass::ID = 0; + +StackSafetyGlobalInfoWrapperPass::StackSafetyGlobalInfoWrapperPass() + : ModulePass(ID) { + initializeStackSafetyGlobalInfoWrapperPassPass( + *PassRegistry::getPassRegistry()); +} + +void StackSafetyGlobalInfoWrapperPass::print(raw_ostream &O, + const Module *M) const { + ::print(SSI, O, *M); +} + +void StackSafetyGlobalInfoWrapperPass::getAnalysisUsage( + AnalysisUsage &AU) const { + AU.addRequired<StackSafetyInfoWrapperPass>(); +} + +bool StackSafetyGlobalInfoWrapperPass::runOnModule(Module &M) { return false; } + static const char LocalPassArg[] = "stack-safety-local"; static const char LocalPassName[] = "Stack Safety Local Analysis"; INITIALIZE_PASS_BEGIN(StackSafetyInfoWrapperPass, LocalPassArg, LocalPassName, @@ -430,3 +468,10 @@ INITIALIZE_PASS_BEGIN(StackSafetyInfoWrapperPass, LocalPassArg, LocalPassName, INITIALIZE_PASS_DEPENDENCY(ScalarEvolutionWrapperPass) INITIALIZE_PASS_END(StackSafetyInfoWrapperPass, LocalPassArg, LocalPassName, false, true) + +static const char GlobalPassName[] = "Stack Safety Analysis"; +INITIALIZE_PASS_BEGIN(StackSafetyGlobalInfoWrapperPass, DEBUG_TYPE, + GlobalPassName, false, false) +INITIALIZE_PASS_DEPENDENCY(StackSafetyInfoWrapperPass) +INITIALIZE_PASS_END(StackSafetyGlobalInfoWrapperPass, DEBUG_TYPE, + GlobalPassName, false, false) |