All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
data_conflict_ast_attributes.h
Go to the documentation of this file.
1 #ifndef DATA_CONFLICT_AST_ATTRIBUTES_H_INCLUDED_
2 #define DATA_CONFLICT_AST_ATTRIBUTES_H_INCLUDED_
3 
4 #include <list>
5 
6 #include "rose.h"
7 
8 namespace risc {
9 
10 namespace sg {
11 
18 class DataConflictAstAttributes: public AstAttribute {
19 public:
20 
21  // for the new rose release
22  virtual AstAttribute::OwnershipPolicy getOwnershipPolicy() const ROSE_OVERRIDE
23  {
24  return CONTAINER_OWNERSHIP;
25  }
26 
28 
29  DataConflictAstAttributes(bool is_conflict_free);
30 
35 
36  enum Status {UNUSED, READ, WRITE};
37 
38  // values:
39  // x >= 0: has a valid instance id
40  // x == -1: global variable
41  // x < -1: no valid instance id
42  // Ids:
46  std::set<int> coloring_read_;
47  std::set<int> coloring_write_;
48 };
49 
50 } // end namespace sg
51 
52 } // end namespace risc
53 
54 #endif /* AST_CONFLICT_ATTRIBUTES_H_INCLUDED_ */
55 
56 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */
virtual AstAttribute::OwnershipPolicy getOwnershipPolicy() const ROSE_OVERRIDE
Definition: data_conflict_ast_attributes.h:22
DataConflictAstAttributes()
Definition: data_conflict_ast_attributes.cpp:5
Definition: data_conflict_ast_attributes.h:36
Status
Definition: data_conflict_ast_attributes.h:36
Definition: data_conflict_ast_attributes.h:36
std::set< int > coloring_read_
Coloring for algorithm.
Definition: data_conflict_ast_attributes.h:46
std::set< int > coloring_write_
Definition: data_conflict_ast_attributes.h:47
bool is_conflict_free_
Indicates if a segment is conflict free.
Definition: data_conflict_ast_attributes.h:34
This class should be used for the data conflict analysis. We can mark a SgVariableRef instance which ...
Definition: data_conflict_ast_attributes.h:18
Definition: data_conflict_ast_attributes.h:36