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, bool inlined_segment)
 Segment (const Segment &other)
void analyze_segment ()
void analyze_expression (SgNode *expression, bool left_of_assignment, bool read_write, bool member_access, bool function_parameter, bool is_precached_function, SgVariableSymbol *outer_variable)
void add_expression (SgNode *node)
bool operator== (const Segment &other)
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_
bool inlined_segment_
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::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,
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,
bool  left_of_assignment,
bool  read_write,
bool  member_access,
bool  function_parameter,
bool  is_precached_function,
SgVariableSymbol *  outer_variable 
)
void risc::sg::Segment::analyze_segment (  ) 
void risc::sg::Segment::merge ( const Segment other  ) 
bool risc::sg::Segment::operator== ( const Segment other  ) 

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.

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 30 Sep 2016 by  doxygen 1.6.1