00001 #ifndef PORT_CALL_PATH_H_INCLUDED_ 00002 #define PORT_CALL_PATH_H_INCLUDED_ 00003 00004 #include "rose.h" 00005 00006 namespace risc { 00007 00008 namespace sg { 00009 00010 class PortCallPath { 00011 00012 public: 00013 std::list<SgFunctionCallExp*> path_; 00014 00015 //2018 07 18 ZC 00016 //for pcp+psg, details refer to change_logs_ZC 1) 00017 SgVariableDefinition* port_; 00018 int pcp_type_; 00019 00020 PortCallPath(); 00021 ~PortCallPath(); 00022 }; 00023 00024 bool operator==(const PortCallPath &lhs , const PortCallPath &rhs); 00025 00026 struct SymbolWithPath { 00027 SgVariableSymbol *symbol_; 00028 PortCallPath pcp_; 00029 00030 SymbolWithPath(SgVariableSymbol* symbol, PortCallPath pcp): 00031 symbol_(symbol), 00032 pcp_(pcp) 00033 { } 00034 }; 00035 00036 struct NodeWithPath { 00037 SgNode *node_; 00038 PortCallPath pcp_; 00039 00040 NodeWithPath(SgNode* node, PortCallPath pcp): 00041 node_(node), 00042 pcp_(pcp) 00043 { } 00044 }; 00045 00046 } // end of namespace sg 00047 00048 } // end of namespace risc 00049 00050 #endif /* PORT_CALL_PATH_H_INCLUDED_ */ 00051 00052 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */