Scaffolding for LDA pass.
[oota-llvm.git] / include / llvm / Analysis / LoopDependenceAnalysis.h
1 //===- llvm/Analysis/LoopDependenceAnalysis.h --------------- -*- C++ -*---===//
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 // LoopDependenceAnalysis is an LLVM pass that analyses dependences in memory
11 // accesses in loops.
12 //
13 // Please note that this is work in progress and the interface is subject to
14 // change.
15 //
16 // TODO: adapt as interface progresses
17 //
18 //===----------------------------------------------------------------------===//
19
20 #ifndef LLVM_ANALYSIS_LOOP_DEPENDENCE_ANALYSIS_H
21 #define LLVM_ANALYSIS_LOOP_DEPENDENCE_ANALYSIS_H
22
23 #include "llvm/Analysis/LoopPass.h"
24
25 namespace llvm {
26
27   class AnalysisUsage;
28   class LoopPass;
29   class ScalarEvolution;
30
31   class LoopDependenceAnalysis : public LoopPass {
32     Loop *L;
33     ScalarEvolution *SE;
34
35   public:
36     static char ID; // Class identification, replacement for typeinfo
37     LoopDependenceAnalysis() : LoopPass(&ID) {}
38
39     bool runOnLoop(Loop*, LPPassManager&);
40
41     virtual void getAnalysisUsage(AnalysisUsage&) const;
42   }; // class LoopDependenceAnalysis
43
44
45   // createLoopDependenceAnalysisPass - This creates an instance of the
46   // LoopDependenceAnalysis pass.
47   //
48   LoopPass *createLoopDependenceAnalysisPass();
49
50 } // namespace llvm
51
52 #endif /* LLVM_ANALYSIS_LOOP_DEPENDENCE_ANALYSIS_H */