risc::sg::Segment Class Reference

#include <segment.h>

List of all members.

Public Types

enum  ERead { NonRead = 0, Read = 1 }
enum  EWrite { NonWrite = 0, Write = 1 }
enum  Status { Untouched = 0, Touched = 1 }
typedef std::vector< SgNode * > Expressions

Public Member Functions

 Segment (SgNode const *const boundary_node, bool inlined_segment)
 Segment (const Segment &other)
void analyze_segment ()
void analyze_expression (SgNode *expression, ERead read, EWrite write)
void add_expression (SgNode *node)
bool operator== (const Segment &other)
void merge (const Segment &other)
Time get_min_waiting_time ()
 This function determines the minimal waiting time for this segment.

Public Attributes

boost::default_color_type color
Status color_for_communication_graph_
Status helper_for_graph_algorithms_
Expressions expressions_
bool debugging_
bool inlined_segment_
bool is_channel_segment_
int wait_offset_
std::set< Conflictconflicts_
int id_
 This is the unique id of the segment.
SgNode const *const boundary_node_
 This is the associated boundary of the segment.
boost::default_color_type color_
 This color is used for some boost algorithms.
std::list< SgVariableSymbol * > read_variables_
 Set of all SgVariableSymbol which are read in this segment.
std::list< SgVariableSymbol * > write_variables_
 Set of all SgVariableSymbol which are written in this segment.
bool calls_conflict_function_
 This segment calls a function with is marked as conflict.
bool deref_pointer_read_
bool deref_pointer_write_
bool waits_for_time_

Static Public Attributes

static int id_counter = 0
 This static counter will be used to generate id's for the individual segments.

Private Member Functions

bool waits_for_time ()
 This functions determines if a function waits for time The related flag waits_for_time_ will be set during construction.

Friends

std::ostream & operator<< (std::ostream &out, const Segment &segment)

Member Typedef Documentation

typedef std::vector<SgNode*> risc::sg::Segment::Expressions

Member Enumeration Documentation

Enumerator:
NonRead 
Read 
Enumerator:
NonWrite 
Write 
Enumerator:
Untouched 
Touched 

Constructor & Destructor Documentation

risc::sg::Segment::Segment ( SgNode const *const   boundary_node,
bool  inlined_segment 
)
risc::sg::Segment::Segment ( const Segment other  ) 

Member Function Documentation

void risc::sg::Segment::add_expression ( SgNode *  node  ) 
void risc::sg::Segment::analyze_expression ( SgNode *  expression,
ERead  read,
EWrite  write 
)
void risc::sg::Segment::analyze_segment (  ) 
risc::sg::Segment::get_min_waiting_time (  ) 

This function determines the minimal waiting time for this segment.

void risc::sg::Segment::merge ( const Segment other  ) 
bool risc::sg::Segment::operator== ( const Segment other  ) 
risc::sg::Segment::waits_for_time (  )  [private]

This functions determines if a function waits for time The related flag waits_for_time_ will be set during construction.


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const Segment segment 
) [friend]

Member Data Documentation

SgNode const* const risc::sg::Segment::boundary_node_

This is the associated boundary of the segment.

This segment calls a function with is marked as conflict.

boost::default_color_type risc::sg::Segment::color
boost::default_color_type risc::sg::Segment::color_

This color is used for some boost algorithms.

This is the unique id of the segment.

This static counter will be used to generate id's for the individual segments.

std::list<SgVariableSymbol*> risc::sg::Segment::read_variables_

Set of all SgVariableSymbol which are read in this segment.

std::list<SgVariableSymbol*> risc::sg::Segment::write_variables_

Set of all SgVariableSymbol which are written in this segment.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Jul 2017 by  doxygen 1.6.1