risc::sg::DataConflictTable Class Reference
This class represents the data conflict table among the individual segments. Two segments have a conflict if a least one variable is by the first segment and read by the second segment. A two dimensional array represents this array.
More...
#include <data_conflict_table.h>
List of all members.
Public Member Functions |
| DataConflictTable (SegmentGraph &graph, PathInstanceMapper *path_instance_mapper, bool debugging) |
| Default constructor for the DataConflictTable.
|
virtual void | determine_conflict_table () |
| This function determines conflicts among the segments.
|
void | color_members_of_class (const MappedVariable &variable, DataConflictAstAttributes::Status color) |
void | uncolor_members_of_class (SgVariableSymbol *var_symbol, int instance_id) |
bool | check_members_of_class (const MappedVariable &mapped_variable, DataConflictAstAttributes::Status color, std::set< Conflict > &conflicts) |
bool | data_conflict_between (VertexDescriptor first, VertexDescriptor second, int row, int column, int inst_id_first, int inst_id_second, bool dynamic_analysis) |
bool | is_conflict_free_variable (SgVariableSymbol *symbol) |
void | print_conflict_table (std::string filename) |
void | print_lookup_table (std::string filename) |
int | segment_and_instance_id_to_index (int segment_id, int instance_id) |
std::pair< int, int > | index_to_segment_and_instance_id (int index) |
bool | has_conflict (int segment_id_1, int instance_id_1, int segment_id_2, int instance_id_2) |
void | print_instance_id_to_index_lookup_table () |
| This function prints the table instance_id_to_index_lookup_table in the terminal.
|
void | set_conflict (int segment_id_1, int instance_id_1, int segment_id_2, int instance_id_2) |
VertexDescriptor | segment_id_to_vertex_descriptor (int id) |
MappedVariableList | get_mapped_variable_statically (SgVariableSymbol *variable, int instance_id) |
MappedVariableList | get_mapped_variable_dynamically (SgVariableSymbol *variable, int instance_id) |
int | get_max_instances (int segment_id) |
Public Attributes |
VertexDescriptor * | vertex_lookup_ |
| This lookup table translates segment ids into vertex descriptors. At position i is the segment with the id of instance_id_to_index_lookup_[0][i].
|
int | size_of_conflict_table_ |
| This variable defines the size of the conflict table. The size is quadratic.
|
int | max_instances_ |
| This variable represents the max number of module instances in the design. Also, this is the number of rows in the instance_id_to_index_lookup_ table.
|
int | number_of_segments_ |
| This variable defines how many segments exist in the segment graph. Also, this is the number of columns in the instance_id_to_index_lookup_ table.
|
int ** | instance_id_to_index_lookup_ |
| This table should be used a lookup table: (segment id, instance id) -> index of conflict table.
|
bool ** | conflict_table_ |
| The conflict table.
|
PathInstanceMapper * | path_instance_mapper_ |
SegmentGraph & | segment_graph_ |
ConflictInformation ** | conflict_info_ |
bool | debugging_ |
Detailed Description
This class represents the data conflict table among the individual segments. Two segments have a conflict if a least one variable is by the first segment and read by the second segment. A two dimensional array represents this array.
Constructor & Destructor Documentation
Member Function Documentation
bool risc::sg::DataConflictTable::data_conflict_between |
( |
VertexDescriptor |
first, |
|
|
VertexDescriptor |
second, |
|
|
int |
row, |
|
|
int |
column, |
|
|
int |
inst_id_first, |
|
|
int |
inst_id_second, |
|
|
bool |
dynamic_analysis | |
|
) |
| | |
risc::sg::DataConflictTable::determine_conflict_table |
( |
|
) |
[virtual] |
risc::sg::MappedVariableList risc::sg::ConflictTable::get_mapped_variable_dynamically |
( |
SgVariableSymbol * |
variable, |
|
|
int |
instance_id | |
|
) |
| | [inherited] |
risc::sg::MappedVariableList risc::sg::ConflictTable::get_mapped_variable_statically |
( |
SgVariableSymbol * |
variable, |
|
|
int |
instance_id | |
|
) |
| | [inherited] |
int risc::sg::ConflictTable::get_max_instances |
( |
int |
segment_id |
) |
[inherited] |
bool risc::sg::ConflictTable::has_conflict |
( |
int |
segment_id_1, |
|
|
int |
instance_id_1, |
|
|
int |
segment_id_2, |
|
|
int |
instance_id_2 | |
|
) |
| | [inherited] |
std::pair< int, int > risc::sg::ConflictTable::index_to_segment_and_instance_id |
( |
int |
index |
) |
[inherited] |
bool risc::sg::DataConflictTable::is_conflict_free_variable |
( |
SgVariableSymbol * |
symbol |
) |
|
void risc::sg::ConflictTable::print_conflict_table |
( |
std::string |
filename |
) |
[inherited] |
risc::sg::ConflictTable::print_instance_id_to_index_lookup_table |
( |
|
) |
[inherited] |
This function prints the table instance_id_to_index_lookup_table in the terminal.
void risc::sg::ConflictTable::print_lookup_table |
( |
std::string |
filename |
) |
[inherited] |
int risc::sg::ConflictTable::segment_and_instance_id_to_index |
( |
int |
segment_id, |
|
|
int |
instance_id | |
|
) |
| | [inherited] |
void risc::sg::ConflictTable::set_conflict |
( |
int |
segment_id_1, |
|
|
int |
instance_id_1, |
|
|
int |
segment_id_2, |
|
|
int |
instance_id_2 | |
|
) |
| | [inherited] |
void risc::sg::DataConflictTable::uncolor_members_of_class |
( |
SgVariableSymbol * |
var_symbol, |
|
|
int |
instance_id | |
|
) |
| | |
Member Data Documentation
This table should be used a lookup table: (segment id, instance id) -> index of conflict table.
This variable represents the max number of module instances in the design. Also, this is the number of rows in the instance_id_to_index_lookup_ table.
This variable defines how many segments exist in the segment graph. Also, this is the number of columns in the instance_id_to_index_lookup_ table.
This variable defines the size of the conflict table. The size is quadratic.
This lookup table translates segment ids into vertex descriptors. At position i is the segment with the id of instance_id_to_index_lookup_[0][i].
The documentation for this class was generated from the following files: