ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IntraProcDataFlowAnalysis.h
Go to the documentation of this file.
1 /*
2  * File: IntraProcDataFlowAnalyis.h
3  * Author: rahman2
4  *
5  * Created on August 15, 2011, 10:28 AM
6  */
7 #ifndef INTRAPROCDATAFLOWANALYIS_H
8 #define INTRAPROCDATAFLOWANALYIS_H
9 
10 
11 template<class Node,class Data>
13 {
14 
15  virtual Data meet_data( const Data& d1, const Data& d2) = 0;
16 
17  virtual Data getCFGInData(Node *) = 0;
18 
19  virtual Data getCFGOutData(Node *) = 0;
20 
21  virtual void setCFGInData(Node*, Data &) = 0;
22 
23  virtual void applyCFGTransferFunction(Node* ) = 0;
24 
25  virtual void buildCFG() = 0;
26  public:
27 
28  // Creating an empty DAG
30 
31  virtual void run();
32  // Get all the nodes
33  virtual std::vector<Node *> getAllNodes() = 0;
34 
35  // Get all the Predecessors of a current Node
36  virtual std::vector<Node *> getPredecessors(Node *n) = 0;
37 
38 protected:
40 
41 };
42 
43 #endif /* INTRAPROCDATAFLOWANALYIS_H */
44