risc::sg::Segment Class Reference

#include <segment.h>

List of all members.

Public Types

enum  Status { Untouched = 0, Touched = 1 }
typedef std::vector< SgNode * > Expressions

Public Member Functions

 Segment (SgNode const *const boundary_node)
 Segment (const Segment &other)
void analyze_segment ()
 This function determines which variable are read and written in this segment.
void analyze_expression (SgNode *expression, bool left_of_assignment, bool read_write, bool member_access)
 This function analyzes recursively all read and write accesses in this expression.
void add_expression (SgNode *node)
 This function add the given node to the vector of expressions.
bool operator== (const Segment &other)
 If two segments are equal the return value is true.
void merge (const Segment &other)

Public Attributes

boost::default_color_type color
Status color_for_communication_graph_
Status helper_for_graph_algorithms_
Expressions expressions_
bool debugging_
std::set< SgNode * > conflicts_
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::set< SgVariableSymbol * > read_variables_
 Set of all SgVariableSymbol which are read in this segment.
std::set< SgVariableSymbol * > write_variables_
 Set of all SgVariableSymbol which are written in this segment.
bool in_conflict_with_all_other_segments
 If there is any pointer or reference operations, this flag will be set.

Static Public Attributes

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

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:
Untouched 
Touched 

Constructor & Destructor Documentation

risc::sg::Segment::Segment ( SgNode const *const   boundary_node  ) 
risc::sg::Segment::Segment ( const Segment other  ) 

Member Function Documentation

void risc::sg::Segment::add_expression ( SgNode *  node  ) 

This function add the given node to the vector of expressions.

add_expression

void risc::sg::Segment::analyze_expression ( SgNode *  expression,
bool  left_of_assignment,
bool  read_write,
bool  member_access 
)

This function analyzes recursively all read and write accesses in this expression.

analyze_expression

void risc::sg::Segment::analyze_segment (  ) 

This function determines which variable are read and written in this segment.

analyze_variable_accesses

void risc::sg::Segment::merge ( const Segment other  ) 
bool risc::sg::Segment::operator== ( const Segment other  ) 

If two segments are equal the return value is true.

operator==


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.

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

This color is used for some boost algorithms.

std::set<SgNode*> risc::sg::Segment::conflicts_

This is the unique id of the segment.

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

If there is any pointer or reference operations, this flag will be set.

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

Set of all SgVariableSymbol which are read in this segment.

std::set<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 29 Oct 2015 by  doxygen 1.6.1