#include <segment.h>
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< Conflict > | 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::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) |
typedef std::vector<SgNode*> risc::sg::Segment::Expressions |
risc::sg::Segment::Segment | ( | SgNode const *const | boundary_node, | |
bool | inlined_segment | |||
) |
risc::sg::Segment::Segment | ( | const Segment & | other | ) |
void risc::sg::Segment::add_expression | ( | SgNode * | node | ) |
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.
std::ostream& operator<< | ( | std::ostream & | out, | |
const Segment & | segment | |||
) | [friend] |
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.
std::set<Conflict> risc::sg::Segment::conflicts_ |
This is the unique id of the segment.
int risc::sg::Segment::id_counter = 0 [static] |
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.