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
ActiveStandard.hpp
Go to the documentation of this file.
1
16
#ifndef ActiveStandard_hpp
17
#define ActiveStandard_hpp
18
19
#include <cassert>
20
#include <iostream>
21
#include <list>
22
#include <
OpenAnalysis/Utils/OA_ptr.hpp
>
23
#include <
OpenAnalysis/IRInterface/IRHandles.hpp
>
24
#include <
OpenAnalysis/ReachDefs/Interface.hpp
>
25
#include <
OpenAnalysis/DataFlow/LocDFSet.hpp
>
26
27
namespace
OA {
28
namespace
Activity {
29
30
31
class
ActiveStandard
{
32
public
:
33
ActiveStandard
(
ProcHandle
p);
34
~ActiveStandard
() {}
35
40
OA_ptr<SymHandleIterator>
getActiveSymIterator
();
41
44
//getActiveUnnamedIterator
45
47
bool
isActive
(
SymHandle
sym);
48
50
bool
isActive
(
StmtHandle
stmt);
51
53
bool
isActive
(
MemRefHandle
memref);
54
56
OA_ptr<StmtHandleIterator>
getActiveStmtIterator
();
57
59
OA_ptr<MemRefHandleIterator>
getActiveMemRefIterator
();
60
62
OA_ptr<LocIterator>
getActiveLocsIterator
();
63
64
65
//*****************************************************************
66
// Construction methods
67
//*****************************************************************
68
70
void
insertLoc
(
OA_ptr<Location>
loc);
71
73
void
insertStmt
(
StmtHandle
stmt);
74
76
void
insertMemRef
(
MemRefHandle
memref);
77
79
bool
getUnknownLocActive
() {
return
mUnknownLocActive
; }
80
81
//*****************************************************************
82
// Output
83
//*****************************************************************
84
87
void
dump
(std::ostream& os,
OA_ptr<IRHandlesIRInterface>
ir);
88
89
private
:
90
// data members
91
OA_ptr<DataFlow::LocDFSet>
mActiveLocSet
;
92
OA_ptr<std::set<SymHandle>
>
mActiveSymSet
;
93
bool
mUnknownLocActive
;
94
95
OA_ptr<std::set<StmtHandle>
>
mActiveStmtSet
;
96
OA_ptr<std::set<MemRefHandle>
>
mActiveMemRefSet
;
97
98
};
99
101
class
ActiveSymIterator
:
public
virtual
OA::SymHandleIterator
,
102
public
OA::IRHandleSetIterator
<OA::SymHandle>
103
{
104
public
:
105
ActiveSymIterator
(
OA::OA_ptr
<std::set<OA::SymHandle> > pList)
106
: OA::
IRHandleSetIterator
<OA::
SymHandle
>(pList) {}
107
~ActiveSymIterator
() {}
108
109
void
operator++
() {
OA::IRHandleSetIterator<OA::SymHandle>::operator++
(); }
110
bool
isValid
()
const
111
{
return
OA::IRHandleSetIterator<OA::SymHandle>::isValid
(); }
112
OA::SymHandle
current
()
const
113
{
return
OA::IRHandleSetIterator<OA::SymHandle>::current
(); }
114
void
reset
() {
OA::IRHandleSetIterator<OA::SymHandle>::current
(); }
115
};
116
117
119
class
ActiveMemRefIterator
:
public
virtual
OA::MemRefHandleIterator
,
120
public
OA::IRHandleSetIterator
<OA::MemRefHandle>
121
{
122
public
:
123
ActiveMemRefIterator
(
OA::OA_ptr
<std::set<OA::MemRefHandle> > pList)
124
: OA::
IRHandleSetIterator
<OA::
MemRefHandle
>(pList) {}
125
~ActiveMemRefIterator
() {}
126
127
void
operator++
() {
OA::IRHandleSetIterator<OA::MemRefHandle>::operator++
(); }
128
bool
isValid
()
const
129
{
return
OA::IRHandleSetIterator<OA::MemRefHandle>::isValid
(); }
130
OA::MemRefHandle
current
()
const
131
{
return
OA::IRHandleSetIterator<OA::MemRefHandle>::current
(); }
132
void
reset
() {
OA::IRHandleSetIterator<OA::MemRefHandle>::current
(); }
133
};
134
135
137
class
ActiveStmtIterator
:
public
virtual
OA::IRStmtIterator
,
138
public
OA::IRHandleSetIterator
<OA::StmtHandle>
139
{
140
public
:
141
ActiveStmtIterator
(
OA::OA_ptr
<std::set<OA::StmtHandle> > pList)
142
: OA::
IRHandleSetIterator
<OA::
StmtHandle
>(pList) {}
143
~ActiveStmtIterator
() {}
144
145
void
operator++
() {
OA::IRHandleSetIterator<OA::StmtHandle>::operator++
(); }
146
bool
isValid
()
const
147
{
return
OA::IRHandleSetIterator<OA::StmtHandle>::isValid
(); }
148
OA::StmtHandle
current
()
const
149
{
return
OA::IRHandleSetIterator<OA::StmtHandle>::current
(); }
150
void
reset
() {
OA::IRHandleSetIterator<OA::StmtHandle>::current
(); }
151
};
152
153
154
155
}
// end of Activity namespace
156
}
// end of OA namespace
157
158
#endif
159
OpenAnalysis
src
OpenAnalysis
Activity
ActiveStandard.hpp
Generated on Fri Mar 14 2014 04:23:06 for OpenADFortTk (including Open64 and OpenAnalysis references) by
1.8.4