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

Public Types

enum  reachability { ALL_BLOCKS , REACHABLE_BLOCKS , REACHABLE_BLOCKS_PRESERVING_FLAGS }
 

Public Member Functions

 mark_def_dom_walker (cdi_direction direction)
 
 ~mark_def_dom_walker ()
 
edge before_dom_children (basic_block) final override
 
void walk (basic_block)
 
virtual void after_dom_children (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

bitmap m_kills
 
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

enum dom_walker::reachability
inherited
Enumerator
ALL_BLOCKS 
REACHABLE_BLOCKS 
REACHABLE_BLOCKS_PRESERVING_FLAGS 

Constructor & Destructor Documentation

◆ mark_def_dom_walker()

mark_def_dom_walker::mark_def_dom_walker ( cdi_direction direction)

◆ ~mark_def_dom_walker()

mark_def_dom_walker::~mark_def_dom_walker ( )

References BITMAP_FREE, and m_kills.

Member Function Documentation

◆ after_dom_children()

◆ bb_reachable()

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

◆ before_dom_children()

edge mark_def_dom_walker::before_dom_children ( basic_block bb)
finaloverridevirtual
Block processing routine for mark_def_sites.  Clear the KILLS bitmap
at the start of each block, and call mark_def_sites for each statement.   

Reimplemented from dom_walker.

References bitmap_clear(), gsi_end_p(), gsi_next(), gsi_start_bb(), gsi_stmt(), m_kills, mark_def_sites(), and NULL.

◆ 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, 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_kills

bitmap mark_def_dom_walker::m_kills
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: