00001 #ifndef DATA_CONFLICT_AST_ATTRIBUTES_H_INCLUDED_ 00002 #define DATA_CONFLICT_AST_ATTRIBUTES_H_INCLUDED_ 00003 00004 #include <list> 00005 00006 #include "rose.h" 00007 00008 namespace risc { 00009 00010 namespace sg { 00011 00018 class DataConflictAstAttributes: public AstAttribute { 00019 public: 00020 00021 // for the new rose release 00022 virtual AstAttribute::OwnershipPolicy getOwnershipPolicy() const ROSE_OVERRIDE 00023 { 00024 return CONTAINER_OWNERSHIP; 00025 } 00026 00027 DataConflictAstAttributes(); 00028 00029 DataConflictAstAttributes(bool is_conflict_free); 00030 00031 00032 bool is_conflict_free_; 00033 00034 enum Status {UNUSED, READ, WRITE}; 00035 00036 // values: 00037 // x >= 0: has a valid instance id 00038 // x == -1: global variable 00039 // x < -1: no valid instance id 00040 // Ids: 00041 std::set<int> coloring_read_; 00042 std::set<int> coloring_write_; 00043 }; 00044 00045 } // end namespace sg 00046 00047 } // end namespace risc 00048 00049 #endif /* AST_CONFLICT_ATTRIBUTES_H_INCLUDED_ */ 00050 00051 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */