00001 #ifndef DATA_CONFLICT_TABLE_H_INCLUDED_ 00002 #define DATA_CONFLICT_TABLE_H_INCLUDED_ 00003 00004 #include<vector> 00005 00006 #include "segment_graph.h" 00007 #include "segment.h" 00008 #include "conflict_table.h" 00009 00010 #include "../internal_representation/path_instance_mapper.h" 00011 #include "data_conflict_ast_attributes.h" 00012 00013 00014 namespace risc { 00015 00016 namespace sg { 00017 00025 class DataConflictTable: public ConflictTable { 00026 00027 public: 00028 00032 DataConflictTable( 00033 SegmentGraph &graph, 00034 PathInstanceMapper &path_instance_mapper, 00035 bool debugging); 00036 00041 virtual void determine_conflict_table(); 00042 00048 bool data_conflict_between(VertexIterator first, VertexIterator second, 00049 int row, int column); 00050 00057 void color_members_of_class(SgVariableSymbol *var_symbol, 00058 DataConflictAstAttributes::Status color); 00059 00066 void uncolor_members_of_class(SgVariableSymbol *var_symbol); 00067 00074 bool check_members_of_class(SgVariableSymbol *var_symbol, 00075 DataConflictAstAttributes::Status color); 00076 }; 00077 00078 00079 }; // end of namesapce sg 00080 00081 }; // end of namespace risc 00082 00083 #endif /* DATA_CONFLICT_TABLE_H_INCLUDED_ */ 00084 00085 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */