GCC Middle and Back End API Reference
control_dependences Class Reference

#include <cfganal.h>

Collaboration diagram for control_dependences:

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_headcontrol_dependence_map
 
vec< std::pair< int, int > > m_el
 
bitmap_obstack m_bitmaps
 

Detailed Description

Class to compute and manage control dependences on an edge-list.   

Constructor & Destructor Documentation

◆ control_dependences()

control_dependences::control_dependences ( )

◆ ~control_dependences()

control_dependences::~control_dependences ( )
Free control dependences and the associated edge list.   

References bitmap_obstack_release(), control_dependence_map, m_bitmaps, and m_el.

Member Function Documentation

◆ clear_control_dependence_bitmap()

void control_dependences::clear_control_dependence_bitmap ( basic_block bb)
private
Clear all control dependences for block BB.   

References bitmap_clear(), control_dependence_map, and basic_block_def::index.

◆ find_control_dependence()

void control_dependences::find_control_dependence ( int edge_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().

◆ get_edge_dest()

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().

◆ get_edge_src()

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().

◆ get_edges_dependent_on()

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().

◆ set_control_dependence_map_bit()

void control_dependences::set_control_dependence_map_bit ( basic_block bb,
int edge_index )
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().

Field Documentation

◆ control_dependence_map

◆ m_bitmaps

bitmap_obstack control_dependences::m_bitmaps
private

◆ m_el

vec<std::pair<int, int> > control_dependences::m_el
private

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