OpenADFortTk (including Open64 and OpenAnalysis references)
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
ManagerICFGActive.hpp
Go to the documentation of this file.
1
16
#ifndef ManagerICFGActive_h
17
#define ManagerICFGActive_h
18
19
//--------------------------------------------------------------------
20
// OpenAnalysis headers
21
22
#include <
OpenAnalysis/Activity/ManagerActiveStandard.hpp
>
23
#include <
OpenAnalysis/Activity/ManagerICFGDep.hpp
>
24
#include <
OpenAnalysis/Activity/ManagerICFGUseful.hpp
>
25
#include <
OpenAnalysis/Activity/ManagerICFGVaryActive.hpp
>
26
#include <
OpenAnalysis/Activity/ActivePerStmt.hpp
>
27
#include <
OpenAnalysis/IRInterface/ActivityIRInterface.hpp
>
28
29
#include <
OpenAnalysis/Activity/InterActive.hpp
>
30
//#include <OpenAnalysis/CFG/EachCFGInterface.hpp>
31
#include <
OpenAnalysis/Alias/InterAliasInterface.hpp
>
32
#include <
OpenAnalysis/SideEffect/InterSideEffectInterface.hpp
>
33
#include <
OpenAnalysis/CallGraph/CallGraphInterface.hpp
>
34
35
namespace
OA {
36
namespace
Activity {
37
38
42
class
ManagerICFGActive
:
public
virtual
DataFlow::ICFGDFProblem
{
43
public
:
44
ManagerICFGActive
(
OA_ptr<Activity::ActivityIRInterface>
_ir);
45
~ManagerICFGActive
() {}
46
47
OA_ptr<InterActive>
performAnalysis
(
48
OA_ptr<ICFG::ICFGInterface>
icfg,
49
OA_ptr<DataFlow::ParamBindings>
paramBind,
50
OA_ptr<Alias::InterAliasInterface>
interAlias,
51
OA_ptr<SideEffect::InterSideEffectInterface>
interSE,
52
DataFlow::DFPImplement
algorithm);
53
54
private
:
55
//========================================================
56
// implementation of ICFGDFProblem interface
57
//========================================================
58
//--------------------------------------------------------
59
// initialization callbacks
60
//--------------------------------------------------------
61
63
OA_ptr<DataFlow::DataFlowSet>
initializeTop
();
64
66
OA_ptr<DataFlow::DataFlowSet>
67
initializeNodeIN
(
OA_ptr<ICFG::NodeInterface>
n
);
68
OA_ptr<DataFlow::DataFlowSet>
69
initializeNodeOUT
(
OA_ptr<ICFG::NodeInterface>
n
);
70
71
//--------------------------------------------------------
72
// solver callbacks
73
//--------------------------------------------------------
74
77
OA_ptr<DataFlow::DataFlowSet>
meet
(
OA_ptr<DataFlow::DataFlowSet>
set1,
78
OA_ptr<DataFlow::DataFlowSet>
set2);
79
82
OA_ptr<DataFlow::DataFlowSet>
83
transfer
(
ProcHandle
proc,
OA_ptr<DataFlow::DataFlowSet>
in,
84
OA::StmtHandle
stmt);
85
89
OA_ptr<DataFlow::DataFlowSet>
90
entryTransfer
(
ProcHandle
proc,
OA_ptr<DataFlow::DataFlowSet>
in);
91
95
OA_ptr<DataFlow::DataFlowSet>
96
exitTransfer
(
ProcHandle
proc,
OA_ptr<DataFlow::DataFlowSet>
out);
97
99
OA_ptr<DataFlow::DataFlowSet>
callerToCallee
(
ProcHandle
caller,
100
OA_ptr<DataFlow::DataFlowSet>
dfset,
CallHandle
call,
ProcHandle
callee);
101
103
OA_ptr<DataFlow::DataFlowSet>
calleeToCaller
(
ProcHandle
callee,
104
OA_ptr<DataFlow::DataFlowSet>
dfset,
CallHandle
call,
ProcHandle
caller);
105
107
OA_ptr<DataFlow::DataFlowSet>
callToReturn
(
ProcHandle
caller,
108
OA_ptr<DataFlow::DataFlowSet>
dfset,
CallHandle
call,
ProcHandle
callee);
109
110
private
:
// member variables
111
112
OA_ptr<Activity::ActivityIRInterface>
mIR
;
113
std::map<ProcHandle,OA_ptr<ActiveStandard> >
mActiveMap
;
114
115
OA_ptr<DataFlow::ParamBindings>
mParamBind
;
116
OA_ptr<ICFGDep>
mICFGDep
;
117
OA_ptr<Alias::InterAliasInterface>
mInterAlias
;
118
OA_ptr<DataFlow::ICFGDFSolver>
mSolver
;
119
OA_ptr<ICFG::ICFGInterface>
mICFG
;
120
OA_ptr<ActivePerStmt>
mActive
;
121
};
122
123
}
// end of Activity namespace
124
}
// end of OA namespace
125
126
#endif
OpenAnalysis
src
OpenAnalysis
Activity
ManagerICFGActive.hpp
Generated on Fri Mar 14 2014 04:23:06 for OpenADFortTk (including Open64 and OpenAnalysis references) by
1.8.4