|
OpenADFortTk (basic)
|
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