C-Breeze
C Compiler Infrastructure

[ Project home page]
Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

DominanceFrontiers Class Reference
[phases defined in c-breeze (some of which are available from the command line).]

create a dominance frontier for a procedure More...

#include <dominancefrontiers.h>

List of all members.

Public Member Functions

 DominanceFrontiers (procNode *proc)

Private Member Functions

void depth_first_search (basicblockNode *node)
void compute_dominance_frontiers ()

Private Attributes

procNode_proc
 The procedure to analyze.

basicblockNode_root
 The root node.

basicblock_vec df_vec
 Basic blocks in depth first order.

int _index


Detailed Description

create a dominance frontier for a procedure

The DominanceFrontier class compute the dominance frontier for the procedure given in its constructor. The class is a subclass of basicblock_map, which maps a basic block to the list containing the elements of its dominance frontier. Thus, it may be accessed directly like this:

DominanceFrontiers dfs(my_proc); basicblock_list & dfx = dfs[x];

Definition at line 72 of file dominancefrontiers.h.


Constructor & Destructor Documentation

DominanceFrontiers::DominanceFrontiers procNode   proc
 

Definition at line 45 of file dominancefrontiers.cc.

References _root, basicblock_map, Block, compute_dominance_frontiers(), depth_first_search(), and Node::typ().


Member Function Documentation

void DominanceFrontiers::compute_dominance_frontiers   [private]
 

Definition at line 94 of file dominancefrontiers.cc.

References basicblock_bitset, basicblock_list, basicblock_list_p, basicblockset_map, basicblockNode::children(), df_vec, basicblockNode::dfn(), Dominators::dominates(), and basicblockNode::succs().

Referenced by DominanceFrontiers().

void DominanceFrontiers::depth_first_search basicblockNode   node [private]
 

Definition at line 65 of file dominancefrontiers.cc.

References _index, basicblock_list, basicblock_list_p, df_vec, basicblockNode::dfn(), and basicblockNode::succs().

Referenced by DominanceFrontiers().


Member Data Documentation

int DominanceFrontiers::_index [private]
 

Definition at line 88 of file dominancefrontiers.h.

Referenced by depth_first_search().

procNode* DominanceFrontiers::_proc [private]
 

The procedure to analyze.

Definition at line 77 of file dominancefrontiers.h.

basicblockNode* DominanceFrontiers::_root [private]
 

The root node.

Definition at line 80 of file dominancefrontiers.h.

Referenced by DominanceFrontiers().

basicblock_vec DominanceFrontiers::df_vec [private]
 

Basic blocks in depth first order.

Definition at line 83 of file dominancefrontiers.h.

Referenced by compute_dominance_frontiers(), and depth_first_search().


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

Generated on August 27, 2003
Back to the C-Breeze home page