OpenADFortTk (including Open64 and OpenAnalysis references)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
UsefulStandard.hpp
Go to the documentation of this file.
1 
16 #ifndef UsefulStandard_hpp
17 #define UsefulStandard_hpp
18 
19 #include <cassert>
20 #include <iostream>
21 #include <map>
22 #include <set>
23 #include <vector>
29 
30 namespace OA {
31  namespace Activity {
32 
33 
34 
35  class UsefulStandard : public virtual Annotation {
36  public:
39 
43 
47 
51 
52  //OA_ptr<DataFlow::LocDFSet> getFinalUseful();
53 
55  int getNumIter() { return mNumIter; }
56 
57  //*****************************************************************
58  // Construction methods
59  //*****************************************************************
60 
63  { mDepLocSet->insert(loc); }
64 
68  {
69  OA_ptr<DataFlow::DataFlowSet> cloneDFset = dfset->clone();
70  mInUseful[s] = cloneDFset.convert<DataFlow::LocDFSet>();
71  }
72 
76  {
77  OA_ptr<DataFlow::DataFlowSet> cloneDFset = dfset->clone();
78  mOutUseful[s] = cloneDFset.convert<DataFlow::LocDFSet>();
79  }
80 
84  {
85  OA_ptr<DataFlow::DataFlowSet> cloneDFset = dfset->clone();
86  mCallOutUseful[c] = cloneDFset.convert<DataFlow::LocDFSet>();
87  }
88 
90  //void mapFinalUseful(OA_ptr<DataFlow::LocDFSet> final);
91 
93  void setNumIter(int n) { mNumIter = n; }
94 
96  //void mapProcToUseful(ProcHandle proc, OA_ptr<UsefulStandard> useful)
97  // { mProcToUsefulMap[proc] = useful; }
98 
99  //*****************************************************************
100  // Output
101  //*****************************************************************
102 
105  void dump(std::ostream& os, OA_ptr<IRHandlesIRInterface> ir);
106 
107  //*****************************************************************
108  // Annotation Interface
109  //*****************************************************************
110  void output(IRHandlesIRInterface &ir);
111 
112  private:
113  // data members
114  std::map<StmtHandle,OA_ptr<DataFlow::LocDFSet> > mInUseful;
115  std::map<StmtHandle,OA_ptr<DataFlow::LocDFSet> > mOutUseful;
116  std::map<CallHandle,OA_ptr<DataFlow::LocDFSet> > mCallOutUseful;
118  //OA_ptr<DataFlow::LocDFSet> mFinalInUseful;
119  //std::map<ProcHandle,OA_ptr<UsefulStandard> > mProcToUsefulMap;
120  int mNumIter;
121 
122 };
123 
124  } // end of Activity namespace
125 } // end of OA namespace
126 
127 #endif
128