Public Member Functions | |
T1T2Block (BasicBlock *b) | |
T1T2Block (const T1T2Block &other, T1T2Block *pred, BasicBlock *rep_block, set< BasicBlock * > &representatives) | |
void | split_node (set< T1T2Block *, Compare > &heap, set< BasicBlock * > &blocks, BasicBlock *&old_exit, BasicBlock *&old_exception) |
BasicBlock * | copy_equivalence_class (BasicBlock *rep, set< BasicBlock * > &rep_class, set< BasicBlock * > &blocks, set< BasicBlock * > &exit_blocks, set< BasicBlock * > &exception_blocks, BasicBlock *&old_exit, BasicBlock *&old_exception) |
set< CfgEdge * > * | get_edges (set< BasicBlock * > &rep_class) |
BasicBlock * | get_block (BasicBlock *old, set< BasicBlock * > &rep_class, set< BasicBlock * > &blocks, map< BasicBlock *, BasicBlock * > &old_to_new, set< BasicBlock * > &exit_blocks, set< BasicBlock * > &exception_blocks, BasicBlock *&old_exit, BasicBlock *&old_exception) |
void | merge (T1T2Block *other, set< T1T2Block *, Compare > &heap) |
void | clear_original_class (set< BasicBlock * > &blocks) |
void | connect_blocks (BasicBlock *b1, BasicBlock *b2, Symbol *cond) |
Public Attributes | |
int | pred_count |
set< T1T2Block * > | succs |
set< T1T2Block * > | preds |
set< BasicBlock * > | representees |
BasicBlock * | representative_block |
sail::T1T2Block::T1T2Block | ( | const T1T2Block & | other, | |
T1T2Block * | pred, | |||
BasicBlock * | rep, | |||
set< BasicBlock * > & | representees | |||
) |
This constructor is only to be used for node splitting!! This constructor needs the set of blocks in the CFG because it needs to add the newly splitted basic block to the set of nodes in the CFG.
void sail::T1T2Block::connect_blocks | ( | BasicBlock * | b1, | |
BasicBlock * | b2, | |||
Symbol * | cond | |||
) |
Conects b1 to b2 via cond edge
BasicBlock * sail::T1T2Block::copy_equivalence_class | ( | BasicBlock * | rep, | |
set< BasicBlock * > & | rep_class, | |||
set< BasicBlock * > & | blocks, | |||
set< BasicBlock * > & | exit_blocks, | |||
set< BasicBlock * > & | exception_blocks, | |||
BasicBlock *& | old_exit, | |||
BasicBlock *& | old_exception | |||
) |
Makes a deep copy of all memebers of eq class and reajusts pointer. Does not adjust rep.preds.
Performs T1-T2 transformation