OpenADFortTk (basic)
src/xaif2whirl/InterfaceData.h
Go to the documentation of this file.
00001 #ifndef INTERFACEDATA_H_INCLUDED 
00002 #define INTERFACEDATA_H_INCLUDED
00003 
00004 #include <list>
00005 #include <utility>
00006 #include "Open64IRInterface/Open64BasicTypes.h"
00007 
00011 class InterfaceData{
00012 
00013  public : 
00014 
00015   static void collect(PU_Info* aPUInfoForest_p);
00016 
00017   static void dump();
00018 
00019   static void findAndAdjustInterface(PU_Info* pu,
00020                                      WN* oldWN_p,
00021                                      ST* newST_p);
00022   
00023   static PU_Info* getParentOf(PU_Info* child);
00024 
00028   typedef std::map<PU_Info*,PU_Info*> ChildToParentMap;
00029 
00030 
00034   typedef std::pair<WN*,ST*> RenamePair;
00035 
00041   typedef std::list<RenamePair> RenamePairList; 
00042 
00046   typedef std::pair<RenamePair, RenamePairList> IFaceRenamePairListPair; 
00047 
00051   typedef std::list<IFaceRenamePairListPair> IFaceRenamePairListPairList;
00055   typedef std::pair<PU_Info*, IFaceRenamePairListPairList> PuIFaceRenamePairListPairListPair;
00059   typedef std::list<PuIFaceRenamePairListPairListPair> PuIFaceRenamePairListPairListPairList;
00060 
00061  private:
00062 
00066   static PuIFaceRenamePairListPairListPairList ourInterfacesByPU;
00067 
00071   static ChildToParentMap ourChildToParentMap;
00072 
00076   static void forPUInfoTree(PU_Info* aPUInfoTree_p);
00077   
00081   static void forPUInfo(PU_Info* aPUInfo_p);
00082 
00083   static PuIFaceRenamePairListPairListPair* findPUData(PU_Info* aPUInfo_p);
00084 
00088   static IFaceRenamePairListPair* findInterfaceData(PuIFaceRenamePairListPairListPair* moduleData, 
00089                                                     WN* theInterface_WN_p);
00090 
00094   static InterfaceData::RenamePair* findSpecific(IFaceRenamePairListPair* interfaceData, 
00095                                                  WN* theInterface_WN_p); 
00096 
00097 
00098 };
00099 
00100 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines