All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
event_conflict_table.h
Go to the documentation of this file.
1 #ifndef EVENT_CONFLICT_TABLE_H_INCLUDED_
2 #define EVENT_CONFLICT_TABLE_H_INCLUDED_
3 
4 #include "rose.h"
5 
6 #include "conflict_table.h"
7 #include "mapped_variable.h"
8 #include "port_call_path.h"
9 
10 #include <unordered_map>
11 
12 
13 namespace risc {
14 
15 class PathInstanceMapper;
16 
17 namespace sg {
18 
19 class SegmentGraph;
20 
33 
34 public:
35 
40  SegmentGraph &graph,
41  PathInstanceMapper *path_instance_mapper,
42  bool debugging);
43 
49  std::list<risc::sg::MappedVariable>
50  get_all_list_events_statically(SgSymbol *sc_event_list, int instance_id, PortCallPath pcp);
51 
55  std::unordered_map<int, std::unordered_map<int, Time>> notify_delay_;
63  std::list<risc::sg::MappedVariable>
65  SgVariableSymbol *sc_event_list,
66  int instance_id);
67 
72  virtual void determine_conflict_table();
73 
82  std::list<risc::sg::MappedVariable>
84  std::set<SymbolWithPath> &event_list,
85  int instance_id,
86  bool dynamic_analysis);
87 };
88 
89 }; // end of namesapce sg
90 
91 }; // end of namespace risc
92 
93 
94 #endif /* EVENT_CONFLICT_TABLE_H_INCLUDED_ */
95 
96 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */
This class represents a segment graph for a process.
Definition: segment_graph.h:79
This class can be used as a lookup table between an instance id of a module or hierarchical channel a...
Definition: path_instance_mapper.h:13
virtual void determine_conflict_table()
This function determines conflicts among the segments.
Definition: event_conflict_table.cpp:302
The conflicts are stored in the base class variable conflict_table_. The columns represent wait state...
Definition: event_conflict_table.h:32
Definition: port_call_path.h:10
std::list< risc::sg::MappedVariable > get_all_list_events_dynamically(SgVariableSymbol *sc_event_list, int instance_id)
This function determines all the registered events in the event list dynamically. ...
Definition: event_conflict_table.cpp:21
EventConflictTable(SegmentGraph &graph, PathInstanceMapper *path_instance_mapper, bool debugging)
Default constructor for the DataConflictTable.
Definition: event_conflict_table.cpp:254
Definition: conflict_table.h:17
std::list< risc::sg::MappedVariable > get_all_list_events_statically(SgSymbol *sc_event_list, int instance_id, PortCallPath pcp)
This function determines all the registered events in the event list statically.
Definition: event_conflict_table.cpp:130
std::list< risc::sg::MappedVariable > determine_mapped_events(std::set< SymbolWithPath > &event_list, int instance_id, bool dynamic_analysis)
This function determines the mapping of events (RD, 07/13/18)
Definition: event_conflict_table.cpp:891
std::unordered_map< int, std::unordered_map< int, Time > > notify_delay_
added to support immediate notification and notify with time
Definition: event_conflict_table.h:55