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) | 
| bool  | data_conflict_between (VertexDescriptor first, VertexDescriptor second, int row, int column, int inst_id_first, int inst_id_second, bool dynamic_analysis) | 
| 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) | 
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] | 
        
      
 
 
      
        
          | 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] | 
        
      
 
 
      
        
          | 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: