ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DefUseAnalysis_perFunction.h
Go to the documentation of this file.
1 /******************************************
2  * Category: DFA
3  * DefUse Analysis Declaration (per Function)
4  * created by tps in Feb 2007
5  *****************************************/
6 
7 #ifndef __DefUseAnalysisPF_HXX_LOADED__
8 #define __DefUseAnalysisPF_HXX_LOADED__
9 #include <string>
10 
11 #include "DefUseAnalysisAbstract.h"
12 
14  private:
15 
16 
19 
20  template <typename T>
21  bool hasANodeAboveCurrentChanged(T cfgNode);
22 
23  template <typename T>
24  bool performUseAndDefinition(SgNode* sgNode, SgInitializedName* initName,
25  bool isUsage, bool isDefinition,
26  SgNode* sgNodeBefore, bool dont_replace,
27  T cfgNode);
28 
29 
30  // def-use-sepcific ------------------
31  void handleDefCopy(SgNode* sgNode, int nrOfInEdges, SgNode* sgNodeBefore,
32  filteredCFGNodeType cfgNode);
33  void handleUseCopy(SgNode* sgNode, int nrOfInEdges, SgNode* sgNodeBefore,
34  filteredCFGNodeType cfgNode);
35  template <typename T> bool defuse(T cfgNode, bool *unhandled);
36 
40 
41  public:
42  DefUseAnalysisPF(bool debug, DefUseAnalysis* dfa_p){
43  DEBUG_MODE=debug;
44  DEBUG_MODE_EXTRA=false;
45  dfa=dfa_p;
48  };
49  virtual ~DefUseAnalysisPF(){};
52 
53 };
54 
55 #endif
56