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

Public Types

enum  reachability { ALL_BLOCKS , REACHABLE_BLOCKS , REACHABLE_BLOCKS_PRESERVING_FLAGS }
 

Public Member Functions

 ipcp_modif_dom_walker (struct ipa_func_body_info *fbi, vec< ipa_param_descriptor, va_gc > *descs, ipcp_transformation *ts, bool *sc)
 
edge before_dom_children (basic_block) final override
 
bool cleanup_eh ()
 
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

struct ipa_func_body_infom_fbi
 
vec< ipa_param_descriptor, va_gc > * m_descriptors
 
ipcp_transformationm_ts
 
boolm_something_changed
 
auto_bitmap m_need_eh_cleanup
 
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
 

Detailed Description

Dominator walker driving the ipcp modification phase.   

Member Enumeration Documentation

◆ reachability

Enumerator
ALL_BLOCKS 
REACHABLE_BLOCKS 
REACHABLE_BLOCKS_PRESERVING_FLAGS 

Constructor & Destructor Documentation

◆ ipcp_modif_dom_walker()

ipcp_modif_dom_walker::ipcp_modif_dom_walker ( struct ipa_func_body_info * fbi,
vec< ipa_param_descriptor, va_gc > * descs,
ipcp_transformation * ts,
bool * sc )
inline

Member Function Documentation

◆ after_dom_children()

◆ bb_reachable()

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

◆ before_dom_children()

◆ cleanup_eh()

bool ipcp_modif_dom_walker::cleanup_eh ( )
inline

◆ 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_descriptors

vec<ipa_param_descriptor, va_gc>* ipcp_modif_dom_walker::m_descriptors
private

Referenced by before_dom_children().

◆ m_dom_direction

enum cdi_direction dom_walker::m_dom_direction
privateinherited

Referenced by dom_walker::walk().

◆ m_fbi

struct ipa_func_body_info* ipcp_modif_dom_walker::m_fbi
private

Referenced by before_dom_children().

◆ m_need_eh_cleanup

auto_bitmap ipcp_modif_dom_walker::m_need_eh_cleanup
private

Referenced by before_dom_children(), and cleanup_eh().

◆ m_reachability

enum reachability dom_walker::m_reachability
privateinherited

◆ m_something_changed

bool* ipcp_modif_dom_walker::m_something_changed
private

Referenced by before_dom_children().

◆ m_ts

ipcp_transformation* ipcp_modif_dom_walker::m_ts
private

Referenced by before_dom_children().

◆ 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: