blob: 3491242ff22154d2e2dd4a1f0b2344c69afda76b [file] [log] [blame]
Vitaly Buka4493fe12018-11-26 21:57:47 +00001//===- StackSafetyAnalysis.cpp - Stack memory safety analysis -------------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10//===----------------------------------------------------------------------===//
11
12#include "llvm/Analysis/StackSafetyAnalysis.h"
13
14#include "llvm/Analysis/ScalarEvolutionExpressions.h"
15#include "llvm/Support/raw_ostream.h"
16
17using namespace llvm;
18
19#define DEBUG_TYPE "stack-safety"
20
21AnalysisKey StackSafetyAnalysis::Key;
22
23void StackSafetyInfo::print(raw_ostream &O) const { O << "Not Implemented\n"; }
24
25StackSafetyInfo StackSafetyAnalysis::run(Function &F,
26 FunctionAnalysisManager &AM) {
27 return StackSafetyInfo();
28}
29
30PreservedAnalyses StackSafetyPrinterPass::run(Function &F,
31 FunctionAnalysisManager &AM) {
32 OS << "'Stack Safety Local Analysis' for function '" << F.getName() << "'\n";
33 AM.getResult<StackSafetyAnalysis>(F).print(OS);
34 return PreservedAnalyses::all();
35}
36
37char StackSafetyInfoWrapperPass::ID = 0;
38
39StackSafetyInfoWrapperPass::StackSafetyInfoWrapperPass() : FunctionPass(ID) {
40 initializeStackSafetyInfoWrapperPassPass(*PassRegistry::getPassRegistry());
41}
42
43void StackSafetyInfoWrapperPass::getAnalysisUsage(AnalysisUsage &AU) const {
44 AU.addRequired<ScalarEvolutionWrapperPass>();
45 AU.setPreservesAll();
46}
47
48void StackSafetyInfoWrapperPass::print(raw_ostream &O, const Module *M) const {
49 SSI.print(O);
50}
51
52bool StackSafetyInfoWrapperPass::runOnFunction(Function &F) { return false; }
53
54static const char LocalPassArg[] = "stack-safety-local";
55static const char LocalPassName[] = "Stack Safety Local Analysis";
56INITIALIZE_PASS_BEGIN(StackSafetyInfoWrapperPass, LocalPassArg, LocalPassName,
57 false, true)
58INITIALIZE_PASS_DEPENDENCY(ScalarEvolutionWrapperPass)
59INITIALIZE_PASS_END(StackSafetyInfoWrapperPass, LocalPassArg, LocalPassName,
60 false, true)