C-Breeze
C Compiler Infrastructure

[ Project home page]

Dominators Class Reference

dominator tree More...

#include <dominators.h>

List of all members.

Public Types

typedef vector< basicblockNode * > basicblock_vec
typedef map< basicblockNode *,
int > 
index_map
typedef map< basicblockNode *,
basicblockNode * > 
basicblock_map
typedef map< basicblockNode *,
basicblock_bitset
basicblockset_map

Public Member Functions

 Dominators (procNode *proc, bool forward)
 ~Dominators ()
void print ()

Static Public Member Functions

static bool dominates (basicblockNode *A, basicblockNode *B)
 Check if A dominates B.

Private Member Functions

void dominator_tree ()
void depth_first_search (basicblockNode *node, basicblockNode *par)
void compress (basicblockNode *v)
basicblockNodeeval (basicblockNode *v)
void link (basicblockNode *v, basicblockNode *w)

Private Attributes

procNode_proc
 Procedure.
basicblockNode_root
 The root node.
const bool _forward
 whether to build a dom-tree or a pdom-tree If true, build post-dominators information _forward = true --> successors --> dominators _forward = false --> predecessors --> post-dominators
index_map node_index
 Map from basic blocks to df order.
basicblock_vec df_vec
 Basic blocks in depth first order.
int _index

Static Private Attributes

static basicblockNodeNone
 A special basic block: not in any cfg.

Friends

class dominator_info


Detailed Description

dominator tree

Definition at line 72 of file dominators.h.


Member Typedef Documentation

typedef map<basicblockNode *, basicblockNode *> Dominators::basicblock_map
 

Definition at line 81 of file dominators.h.

typedef vector<basicblockNode *> Dominators::basicblock_vec
 

Definition at line 79 of file dominators.h.

typedef map<basicblockNode *, basicblock_bitset> Dominators::basicblockset_map
 

Definition at line 82 of file dominators.h.

typedef map<basicblockNode *, int> Dominators::index_map
 

Definition at line 80 of file dominators.h.


Constructor & Destructor Documentation

Dominators::Dominators procNode proc,
bool  forward
 

Dominators::~Dominators  ) 
 


Member Function Documentation

void Dominators::compress basicblockNode v  )  [private]
 

void Dominators::depth_first_search basicblockNode node,
basicblockNode par
[private]
 

static bool Dominators::dominates basicblockNode A,
basicblockNode B
[static]
 

Check if A dominates B.

void Dominators::dominator_tree  )  [private]
 

basicblockNode* Dominators::eval basicblockNode v  )  [private]
 

void Dominators::link basicblockNode v,
basicblockNode w
[private]
 

void Dominators::print  ) 
 


Friends And Related Function Documentation

friend class dominator_info [friend]
 

Definition at line 74 of file dominators.h.


Member Data Documentation

const bool Dominators::_forward [private]
 

whether to build a dom-tree or a pdom-tree If true, build post-dominators information _forward = true --> successors --> dominators _forward = false --> predecessors --> post-dominators

Definition at line 97 of file dominators.h.

int Dominators::_index [private]
 

Definition at line 108 of file dominators.h.

procNode* Dominators::_proc [private]
 

Procedure.

Definition at line 87 of file dominators.h.

basicblockNode* Dominators::_root [private]
 

The root node.

Definition at line 90 of file dominators.h.

basicblock_vec Dominators::df_vec [private]
 

Basic blocks in depth first order.

Definition at line 103 of file dominators.h.

index_map Dominators::node_index [private]
 

Map from basic blocks to df order.

Definition at line 100 of file dominators.h.

basicblockNode* Dominators::None [static, private]
 

A special basic block: not in any cfg.

Definition at line 106 of file dominators.h.


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

Generated on February 1, 2006
Back to the C-Breeze home page