risc::sg::ConflictTable Class Reference

#include <conflict_table.h>

Inheritance diagram for risc::sg::ConflictTable:
Inheritance graph
[legend]
Collaboration diagram for risc::sg::ConflictTable:
Collaboration graph
[legend]

List of all members.

Classes

struct  ConflictInformation

Public Member Functions

 ConflictTable (SegmentGraph &segment_graph, PathInstanceMapper *path_instance_mapper, bool debugging=false)
 Default constructor.
 ~ConflictTable ()
 Destructor.
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)
virtual void determine_conflict_table ()
 This function determines the conflict table. The function is overloaded for the data and event conflict table.
VertexDescriptor segment_id_to_vertex_descriptor (int id)
MappedVariableList get_mapped_variable (SgVariableSymbol *variable, int instance_id, bool dynamic_analysis)
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)
int get_channel_id (const SymbolWithPath &swp, int instance, bool dynamic_analysis)
int get_channel_id_statically (const SymbolWithPath &swp, int instance)
int get_channel_id_dynamically (const SymbolWithPath &swp, int instance)
void print_conflicts_per_instance ()
 prints the conflicts per instance

Public Attributes

VertexDescriptorvertex_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 * conflicts_per_instance_
 Stores the conflicts per intance.
int max_instances_with_thread_
 Maximum number of module/channel instances Only instances with at least one simulation thread are considered.
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.
PathInstanceMapperpath_instance_mapper_
SegmentGraphsegment_graph_
ConflictInformation ** conflict_info_
bool debugging_

Constructor & Destructor Documentation

risc::sg::ConflictTable::ConflictTable ( SegmentGraph segment_graph,
PathInstanceMapper path_instance_mapper,
bool  debugging = false 
)

Default constructor.

risc::sg::ConflictTable::~ConflictTable (  ) 

Destructor.


Member Function Documentation

risc::sg::ConflictTable::determine_conflict_table (  )  [virtual]

This function determines the conflict table. The function is overloaded for the data and event conflict table.

Reimplemented in risc::sg::DataConflictTable, and risc::sg::EventConflictTable.

int risc::sg::ConflictTable::get_channel_id ( const SymbolWithPath swp,
int  instance,
bool  dynamic_analysis 
)
int risc::sg::ConflictTable::get_channel_id_dynamically ( const SymbolWithPath swp,
int  instance 
)
int risc::sg::ConflictTable::get_channel_id_statically ( const SymbolWithPath swp,
int  instance 
)
risc::sg::MappedVariableList risc::sg::ConflictTable::get_mapped_variable ( SgVariableSymbol *  variable,
int  instance_id,
bool  dynamic_analysis 
)
risc::sg::MappedVariableList risc::sg::ConflictTable::get_mapped_variable_dynamically ( SgVariableSymbol *  variable,
int  instance_id 
)
risc::sg::MappedVariableList risc::sg::ConflictTable::get_mapped_variable_statically ( SgVariableSymbol *  variable,
int  instance_id 
)
int risc::sg::ConflictTable::get_max_instances ( int  segment_id  ) 
bool risc::sg::ConflictTable::has_conflict ( int  segment_id_1,
int  instance_id_1,
int  segment_id_2,
int  instance_id_2 
)
std::pair< int, int > risc::sg::ConflictTable::index_to_segment_and_instance_id ( int  index  ) 
void risc::sg::ConflictTable::print_conflict_table ( std::string  filename  ) 
risc::sg::ConflictTable::print_conflicts_per_instance (  ) 

prints the conflicts per instance

risc::sg::ConflictTable::print_instance_id_to_index_lookup_table (  ) 

This function prints the table instance_id_to_index_lookup_table in the terminal.

void risc::sg::ConflictTable::print_lookup_table ( std::string  filename  ) 
int risc::sg::ConflictTable::segment_and_instance_id_to_index ( int  segment_id,
int  instance_id 
)
risc::sg::VertexDescriptor risc::sg::ConflictTable::segment_id_to_vertex_descriptor ( int  id  ) 
void risc::sg::ConflictTable::set_conflict ( int  segment_id_1,
int  instance_id_1,
int  segment_id_2,
int  instance_id_2 
)

Member Data Documentation

The conflict table.

Stores the conflicts per intance.

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.

Maximum number of module/channel instances Only instances with at least one simulation thread are considered.

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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 12 Jun 2018 by  doxygen 1.6.1