GCC Middle and Back End API Reference
|
#include <cfganal.h>
Public Member Functions | |
control_dependences () | |
~control_dependences () | |
bitmap | get_edges_dependent_on (int) |
basic_block | get_edge_src (int) |
basic_block | get_edge_dest (int) |
Private Member Functions | |
void | set_control_dependence_map_bit (basic_block, int) |
void | clear_control_dependence_bitmap (basic_block) |
void | find_control_dependence (int) |
Private Attributes | |
vec< bitmap_head > | control_dependence_map |
vec< std::pair< int, int > > | m_el |
bitmap_obstack | m_bitmaps |
Class to compute and manage control dependences on an edge-list.
control_dependences::control_dependences | ( | ) |
Record all blocks' control dependences on all edges in the edge list EL, ala Morgan, Section 3.6.
References bitmap_initialize(), bitmap_obstack_initialize(), cfun, control_dependence_map, EDGE_COUNT, ENTRY_BLOCK_PTR_FOR_FN, EXIT_BLOCK_PTR_FOR_FN, find_control_dependence(), FOR_BB_BETWEEN, FOR_EACH_EDGE, i, last_basic_block_for_fn, m_bitmaps, m_el, basic_block_def::succs, timevar_pop(), and timevar_push().
control_dependences::~control_dependences | ( | ) |
Free control dependences and the associated edge list.
References bitmap_obstack_release(), control_dependence_map, m_bitmaps, and m_el.
|
private |
Clear all control dependences for block BB.
References bitmap_clear(), control_dependence_map, and basic_block_def::index.
|
private |
Determine all blocks' control dependences on the given edge with edge_list EL index EDGE_INDEX, ala Morgan, Section 3.6.
References CDI_POST_DOMINATORS, cfun, EXIT_BLOCK_PTR_FOR_FN, gcc_assert, get_edge_dest(), get_edge_src(), get_immediate_dominator(), and set_control_dependence_map_bit().
Referenced by control_dependences().
basic_block control_dependences::get_edge_dest | ( | int | i | ) |
Returns the edge destination with index I from the edge list.
References BASIC_BLOCK_FOR_FN, cfun, i, and m_el.
Referenced by find_control_dependence().
basic_block control_dependences::get_edge_src | ( | int | i | ) |
Returns the edge source with index I from the edge list.
References BASIC_BLOCK_FOR_FN, cfun, i, and m_el.
Referenced by control_parents_preserved_p(), create_edge_for_control_dependence(), find_control_dependence(), and mark_control_dependent_edges_necessary().
bitmap control_dependences::get_edges_dependent_on | ( | int | i | ) |
Returns the bitmap of edges the basic-block I is dependent on.
References control_dependence_map, and i.
Referenced by control_parents_preserved_p(), create_edge_for_control_dependence(), and mark_control_dependent_edges_necessary().
|
private |
Functions to compute control dependences.
Indicate block BB is control dependent on an edge with index EDGE_INDEX.
References bitmap_set_bit, cfun, control_dependence_map, ENTRY_BLOCK_PTR_FOR_FN, EXIT_BLOCK_PTR_FOR_FN, gcc_assert, and basic_block_def::index.
Referenced by find_control_dependence().
|
private |
|
private |
Referenced by control_dependences(), and ~control_dependences().
|
private |
Referenced by control_dependences(), get_edge_dest(), get_edge_src(), and ~control_dependences().