AEQUIV Module Reference

#include <aequiv.h>

Collaboration diagram for AEQUIV:

Collaboration graph
[legend]

Public Member Functions

 AEQUIV (WN *func_nd, ARRAY_DIRECTED_GRAPH16 *array_dep_graph)
void Equivalence_Arrays ()

Private Member Functions

INT Num_Arrays ()
void Enter_Locals_Stack ()
void Sort_Stack ()
void Enter_Locals_Hash ()
INT Build_CFG ()
INT Build_CFG_Rec (WN *wn, VINDEX16 *current_v, VINDEX16 next_v, GOTO_VERTEX_STACK *goto_stack, LABEL_STACK *label_stack, LABEL_VERTEX_HASH *label_hash)
INT Build_CFG_Loop (WN *wn, VINDEX16 loopv, GOTO_VERTEX_STACK *goto_stack, LABEL_STACK *label_stack, LABEL_VERTEX_HASH *label_hash)
void Handle_Store (WN *wn, VINDEX16 v)
void Handle_Lhs (WN *wn, VINDEX16 v)
void Handle_Rhs (WN *wn, VINDEX16 v)
void Handle_Call (WN *wn, VINDEX16 v)
INT Backpatch_CFG (GOTO_VERTEX_STACK *goto_stack, LABEL_STACK *label_stack, LABEL_VERTEX_HASH *label_hash)
VINDEX16 Add_CFG_Vertex (BIT_VECTOR *bit_vector)
VINDEX16 Add_CFG_Edge (VINDEX16 from, VINDEX16 to)
void Print_Graph (FILE *fp, SCC_DIRECTED_GRAPH16 *graph)
void Set_Acyclic ()
void Do_Dataflow ()
void Set_Array_Bit_Vector ()
BOOL Do_Color (mBOOL *equivalenced_array)
void Update_Code (WN *wn, mBOOL *equivalenced_array)
BOOL Contains_Unread_Array (WN *wn, mBOOL *equivalenced_array)

Private Attributes

LOCAL_ARRAY_HASH_TABLE_la_hash_table
LOCAL_ARRAY_STACK_la_stack
WN_func_nd
MEM_POOL_pool
ARRAY_DIRECTED_GRAPH16_array_dep_graph
BIT_VECTOR_STACK_cyclic_bit_vector
BIT_VECTOR_STACK_acyclic_bit_vector
BIT_VECTOR_STACK_array_bit_vector
SCC_DIRECTED_GRAPH16_cfg
SCC_DIRECTED_GRAPH16_acfg
VINDEX16 _head_vertex
VINDEX16 _tail_vertex

Detailed Description

Definition at line 111 of file aequiv.h.


Constructor & Destructor Documentation

AEQUIV::AEQUIV ( WN func_nd,
ARRAY_DIRECTED_GRAPH16 array_dep_graph 
) [inline]


Member Function/Subroutine Documentation

INT AEQUIV::Num_Arrays (  )  [inline, private]

void AEQUIV::Equivalence_Arrays (  ) 

void AEQUIV::Enter_Locals_Stack (  )  [private]

void AEQUIV::Sort_Stack (  )  [private]

void AEQUIV::Enter_Locals_Hash (  )  [private]

INT AEQUIV::Build_CFG (  )  [private]

INT AEQUIV::Build_CFG_Rec ( WN wn,
VINDEX16 current_v,
VINDEX16  next_v,
GOTO_VERTEX_STACK goto_stack,
LABEL_STACK label_stack,
LABEL_VERTEX_HASH label_hash 
) [private]

INT AEQUIV::Build_CFG_Loop ( WN wn,
VINDEX16  loopv,
GOTO_VERTEX_STACK goto_stack,
LABEL_STACK label_stack,
LABEL_VERTEX_HASH label_hash 
) [private]

void AEQUIV::Handle_Store ( WN wn,
VINDEX16  v 
) [private]

void AEQUIV::Handle_Lhs ( WN wn,
VINDEX16  v 
) [private]

void AEQUIV::Handle_Rhs ( WN wn,
VINDEX16  v 
) [private]

void AEQUIV::Handle_Call ( WN wn,
VINDEX16  v 
) [private]

INT AEQUIV::Backpatch_CFG ( GOTO_VERTEX_STACK goto_stack,
LABEL_STACK label_stack,
LABEL_VERTEX_HASH label_hash 
) [private]

VINDEX16 AEQUIV::Add_CFG_Vertex ( BIT_VECTOR bit_vector  )  [private]

VINDEX16 AEQUIV::Add_CFG_Edge ( VINDEX16  from,
VINDEX16  to 
) [inline, private]

Definition at line 166 of file aequiv.h.

References _cfg, and SCC_DIRECTED_GRAPH16::Add_Edge().

Referenced by Backpatch_CFG(), Build_CFG_Loop(), and Build_CFG_Rec().

void AEQUIV::Print_Graph ( FILE fp,
SCC_DIRECTED_GRAPH16 graph 
) [private]

void AEQUIV::Set_Acyclic (  )  [private]

void AEQUIV::Do_Dataflow (  )  [private]

void AEQUIV::Set_Array_Bit_Vector (  )  [private]

BOOL AEQUIV::Do_Color ( mBOOL equivalenced_array  )  [private]

void AEQUIV::Update_Code ( WN wn,
mBOOL equivalenced_array 
) [private]

BOOL AEQUIV::Contains_Unread_Array ( WN wn,
mBOOL equivalenced_array 
) [private]


Field Documentation

WN* AEQUIV::_func_nd [private]

Definition at line 114 of file aequiv.h.

Referenced by AEQUIV(), Build_CFG(), and Equivalence_Arrays().

MEM_POOL* AEQUIV::_pool [private]

Definition at line 116 of file aequiv.h.

Referenced by AEQUIV().

Definition at line 128 of file aequiv.h.

Referenced by Do_Color(), Equivalence_Arrays(), and Set_Array_Bit_Vector().

Definition at line 149 of file aequiv.h.

Referenced by Build_CFG(), Build_CFG_Loop(), and Build_CFG_Rec().

Definition at line 150 of file aequiv.h.

Referenced by Build_CFG(), Build_CFG_Loop(), and Build_CFG_Rec().


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

Generated on Wed Apr 8 16:23:08 2009 for Open64 by  doxygen 1.5.6