1 #ifndef CONFLICT_TABLE_H_INCLUDED_
2 #define CONFLICT_TABLE_H_INCLUDED_
13 class PathInstanceMapper;
27 bool debugging =
false);
111 bool has_conflict(
int segment_id_1,
int instance_id_1,
int segment_id_2,
127 int segment_id_2,
int instance_id_2);
150 bool dynamic_analysis);
188 bool dynamic_analysis);
int max_instances_
This variable represents the max number of module instances in the design. Also, this is the number o...
Definition: conflict_table.h:58
Definition: port_call_path.h:46
virtual void determine_conflict_table()
This function determines the conflict table. The function is overloaded for the data and event confli...
Definition: conflict_table.cpp:614
This class represents a segment graph for a process.
Definition: segment_graph.h:79
int max_instances_with_thread_
Maximum number of module/channel instances Only instances with at least one simulation thread are con...
Definition: conflict_table.h:51
bool ** conflict_table_
The conflict table.
Definition: conflict_table.h:76
int number_of_segments_
This variable defines how many segments exist in the segment graph. Also, this is the number of colum...
Definition: conflict_table.h:65
int get_channel_id_statically(const SymbolWithPath &swp, int instance)
Determines the channel instance id for a given variable declared in a channel.
Definition: conflict_table.cpp:1014
boost::graph_traits< Graph >::vertex_descriptor VertexDescriptor
Definition: segment_graph.h:34
int size_of_conflict_table_
This variable defines the size of the conflict table. The size is quadratic.
Definition: conflict_table.h:45
bool has_conflict(int segment_id_1, int instance_id_1, int segment_id_2, int instance_id_2)
This function looks up if there is a conflict between segment 1 with instance id 1 and segment 2 with...
Definition: conflict_table.cpp:717
VertexDescriptor * vertex_lookup_
This lookup table translates segment ids into vertex descriptors. At position i is the segment with t...
Definition: conflict_table.h:39
PathInstanceMapper * path_instance_mapper_
Definition: conflict_table.h:208
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
std::pair< int, int > index_to_segment_and_instance_id(int index)
This function translates a given index from the conflict table into the corresponding segment id and ...
Definition: conflict_table.cpp:695
bool debugging_
Definition: conflict_table.h:221
int segment_and_instance_id_to_index(int segment_id, int instance_id)
This function translates a given segment id and instance id to a index of the conflict table...
Definition: conflict_table.cpp:674
ConflictTable(SegmentGraph &segment_graph, PathInstanceMapper *path_instance_mapper, bool debugging=false)
Default constructor.
Definition: conflict_table.cpp:309
void print_conflict_table(std::string filename)
Generates a html file of the conflict table.
Definition: conflict_table.cpp:726
void set_conflict(int segment_id_1, int instance_id_1, int segment_id_2, int instance_id_2)
This function sets a conflict in the conflict table.
int get_max_instances(int segment_id)
This functions returns how many instances of a given segment exist.
Definition: conflict_table.cpp:976
MappedVariableList get_mapped_variable_dynamically(SgVariableSymbol *variable, int instance_id)
This function determines the mapped address of a reference during the pre simulation.
Definition: conflict_table.cpp:54
Definition: conflict_table.h:17
ConflictInformation ** conflict_info_
Definition: conflict_table.h:219
int get_channel_id(const SymbolWithPath &swp, int instance, bool dynamic_analysis)
Determines the channel instance id for a given variable declared in a channel.
Definition: conflict_table.cpp:998
MappedVariableList get_mapped_variable_statically(SgVariableSymbol *variable, int instance_id)
This function determines for a given variable the mapped variable. If variable is a reference...
Definition: conflict_table.cpp:174
MappedVariableList get_mapped_variable(SgVariableSymbol *variable, int instance_id, bool dynamic_analysis)
Determines the mapped variable.
Definition: conflict_table.cpp:41
VertexDescriptor segment_id_to_vertex_descriptor(int id)
This function translates the given segment id to the corresponding vertex descriptor.
Definition: conflict_table.cpp:965
~ConflictTable()
Destructor.
Definition: conflict_table.cpp:624
std::list< MappedVariable > MappedVariableList
Definition: mapped_variable.h:44
int ** instance_id_to_index_lookup_
This table should be used a lookup table: (segment id, instance id) -> index of conflict table...
Definition: conflict_table.h:71
void print_lookup_table(std::string filename)
Generates a html file of the lookup table.
Definition: conflict_table.cpp:908
void print_instance_id_to_index_lookup_table()
This function prints the table instance_id_to_index_lookup_table in the terminal. ...
Definition: conflict_table.cpp:652
SegmentGraph & segment_graph_
Definition: conflict_table.h:210
int get_channel_id_dynamically(const SymbolWithPath &swp, int instance)
Determines the channel instance id for a given variable declared in a channel.
Definition: conflict_table.cpp:1051