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  

SSA Class Reference

transform a block into SSA form. More...

#include <ssa.h>

List of all members.

Public Member Functions

 SSA (procNode *proc, bool forward=true, bool rename=true)
void print ()
void record_index (idNode *id)

Static Public Member Functions

binaryNodeassignment (stmtNode *s)
idNodelhs (stmtNode *s)
bool need_ssa (declNode *decl)
callNodephi (stmtNode *s)
bool add_phi_function (declNode *d, basicblockNode *block)

Private Member Functions

void place_phi_functions ()
void rename ()
void search (basicblockNode *X)
int which_pred (basicblockNode *node, basicblockNode *pred)
void push_new_decl (declNode *de, int index)
void rename_all_variables ()
string name_with_index (string &name, int index)

Static Private Member Functions

void place_one_phi (declNode *d, basicblockNode *block)
int & HasAlready (basicblockNode *n)
 Access the node info.

int & Work (basicblockNode *n)

Private Attributes

const procNode_proc
 The procedure to analyze.

basicblockNode_root
 The root node.

basicblock_list _cfg
varstack_map Stack
counter_map Counter
var_changes Changes
DominanceFrontiers DF
 Dominance frontiers.


Detailed Description

transform a block into SSA form.

Definition at line 78 of file ssa.h.


Constructor & Destructor Documentation

SSA::SSA procNode   proc,
bool    forward = true,
bool    rename = true
 

Definition at line 41 of file ssa.cc.

References _cfg, _root, basicblock_list_p, Block, procNode::body(), basicblockNode::info(), place_phi_functions(), rename(), stmt_list, stmt_list_p, blockNode::stmts(), and Node::typ().


Member Function Documentation

int& SSA::HasAlready basicblockNode   n [inline, static, private]
 

Access the node info.

Definition at line 124 of file ssa.h.

Referenced by place_phi_functions().

void SSA::print   [inline]
 

Definition at line 138 of file ssa.h.

int& SSA::Work basicblockNode   n [inline, static, private]
 

Definition at line 129 of file ssa.h.

Referenced by place_phi_functions().


Member Data Documentation

basicblock_list SSA::_cfg [private]
 

Definition at line 87 of file ssa.h.

Referenced by place_phi_functions(), and SSA().

const procNode* SSA::_proc [private]
 

The procedure to analyze.

Definition at line 83 of file ssa.h.

Referenced by rename_all_variables().

basicblockNode* SSA::_root [private]
 

The root node.

Definition at line 86 of file ssa.h.

Referenced by SSA().

DominanceFrontiers SSA::DF [private]
 

Dominance frontiers.

Definition at line 99 of file ssa.h.

Referenced by place_phi_functions().


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

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