GCC Middle and Back End API Reference
nontrapping_dom_walker Class Reference
Inheritance diagram for nontrapping_dom_walker:
Collaboration diagram for nontrapping_dom_walker:

Public Member Functions

 nontrapping_dom_walker (cdi_direction direction, pointer_set_t *ps)
virtual void before_dom_children (basic_block)
virtual void after_dom_children (basic_block)
void walk (basic_block)

Private Attributes

pointer_set_tm_nontrapping

Constructor & Destructor Documentation

nontrapping_dom_walker::nontrapping_dom_walker ( cdi_direction  direction,
pointer_set_t ps 
)
inline

Member Function Documentation

void nontrapping_dom_walker::after_dom_children ( basic_block  bb)
virtual

Called by walk_dominator_tree, when basic block BB is exited.

This BB isn't on the path to dominator root anymore.

Reimplemented from dom_walker.

void nontrapping_dom_walker::before_dom_children ( basic_block  bb)
virtual

Called by walk_dominator_tree, when entering the block BB.

 If we haven't seen all our predecessors, clear the hash-table.   
 Mark this BB as being on the path to dominator root and as visited.   
 And walk the statements in order.   

Reimplemented from dom_walker.

void dom_walker::walk ( basic_block  bb)
inherited

Walk the dominator tree.

Recursively walk the dominator tree. BB is the basic block we are currently visiting.

     Don't worry about unreachable blocks.   
         Callback for subclasses to do custom things before we have walked
         the dominator children, but before we walk statements.   
         Mark the current BB to be popped out of the recursion stack
         once children are processed.   
     NULL is used to mark pop operations in the recursion stack.   
         Callback allowing subclasses to do custom things after we have
         walked dominator children, but before we walk statements.   

References bb_postorder, inverted_post_order_compute(), last_basic_block, n_basic_blocks, and postorder_num.


Field Documentation

pointer_set_t* nontrapping_dom_walker::m_nontrapping
private

The documentation for this class was generated from the following file: