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

Public Types

enum  reachability { ALL_BLOCKS , REACHABLE_BLOCKS , REACHABLE_BLOCKS_PRESERVING_FLAGS }
 

Public Member Functions

 uncprop_dom_walker (cdi_direction direction)
 
edge before_dom_children (basic_block) final override
 
void after_dom_children (basic_block) final override
 
void walk (basic_block)
 

Static Public Attributes

static const edge STOP = (edge)-1
 

Private Member Functions

bool bb_reachable (struct function *, basic_block)
 
void propagate_unreachable_to_edges (basic_block, FILE *, dump_flags_t)
 

Private Attributes

auto_vec< tree, 2 > m_equiv_stack
 
enum cdi_direction m_dom_direction: 2
 
enum reachability m_reachability: 2
 
bool m_user_bb_to_rpo
 
basic_block m_unreachable_dom
 
int * m_bb_to_rpo
 

Member Enumeration Documentation

◆ reachability

Enumerator
ALL_BLOCKS 
REACHABLE_BLOCKS 
REACHABLE_BLOCKS_PRESERVING_FLAGS 

Constructor & Destructor Documentation

◆ uncprop_dom_walker()

uncprop_dom_walker::uncprop_dom_walker ( cdi_direction direction)
inline

Member Function Documentation

◆ after_dom_children()

void uncprop_dom_walker::after_dom_children ( basic_block bb)
finaloverridevirtual
We have finished processing the dominator children of BB, perform
any finalization actions in preparation for leaving this node in
the dominator tree.   

Reimplemented from dom_walker.

References m_equiv_stack, NULL, and remove_equivalence().

◆ bb_reachable()

bool dom_walker::bb_reachable ( struct function * fun,
basic_block bb )
privateinherited

◆ before_dom_children()

◆ propagate_unreachable_to_edges()

void dom_walker::propagate_unreachable_to_edges ( basic_block bb,
FILE * dump_file,
dump_flags_t dump_flags )
privateinherited
BB has been determined to be unreachable.  Propagate that property
to incoming and outgoing edges of BB as appropriate.   

References CDI_DOMINATORS, dominated_by_p(), dump_file, dump_flags, FOR_EACH_EDGE, ggc_alloc(), basic_block_def::index, dom_walker::m_unreachable_dom, basic_block_def::preds, basic_block_def::succs, and TDF_DETAILS.

Referenced by dom_walker::walk().

◆ walk()

Field Documentation

◆ m_bb_to_rpo

int* dom_walker::m_bb_to_rpo
privateinherited

◆ m_dom_direction

enum cdi_direction dom_walker::m_dom_direction
privateinherited

Referenced by dom_walker::walk().

◆ m_equiv_stack

auto_vec<tree, 2> uncprop_dom_walker::m_equiv_stack
private

◆ m_reachability

enum reachability dom_walker::m_reachability
privateinherited

◆ m_unreachable_dom

basic_block dom_walker::m_unreachable_dom
privateinherited

◆ m_user_bb_to_rpo

bool dom_walker::m_user_bb_to_rpo
privateinherited

◆ STOP

const edge dom_walker::STOP = (edge)-1
staticinherited

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