sail::T1T2Block Class Reference

List of all members.

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)
BasicBlockcopy_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)
BasicBlockget_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
BasicBlockrepresentative_block

Constructor & Destructor Documentation

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.


Member Function Documentation

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.

void sail::T1T2Block::merge ( T1T2Block other,
set< T1T2Block *, Compare > &  heap 
)

Performs T1-T2 transformation


The documentation for this class was generated from the following files:
Generated on Sun Oct 17 14:01:34 2010 by  doxygen 1.6.3