ALIAS_CLASSIFICATION Module Reference

#include <opt_alias_class.h>

Collaboration diagram for ALIAS_CLASSIFICATION:

Collaboration graph
[legend]

Public Member Functions

 ALIAS_CLASSIFICATION (OPT_STAB *, AC_DESTINATION, MEM_POOL *)
void Release_resources (void)
void Add_to_altered_non_points_to_parms (const ALIAS_CLASS_REP *const acr)
ALIAS_CLASS_MEMBER_LISTAltered_non_points_to_parms (void)
BSInaccessible_to_callees (void) const
void Classify_memops (WN *)
IDTYPE Alias_class (const WN *) const
void Copy_alias_class (const WN *, WN *)
BOOL Non_alloca_memop (IDTYPE) const
BOOL Writable_by_call (IDTYPE) const
void Print (FILE *) const

Private Member Functions

BOOL Is_LDA_of_variable (const WN *) const
ALIAS_CLASS_REPClass_of_base_id_LDID (IDTYPE) const
ALIAS_CLASS_REPClass_of_base_id_LDA (IDTYPE) const
WNClassify_wn_and_kids (WN *)
AC_PTR_OBJ_PAIR Classify_lhs_of_store (WN *)
BOOL Expr_may_contain_pointer (WN *const expr)
AC_PTR_OBJ_PAIR Classify_deref_of_expr (WN *, BOOL)
void Set_collapsed_nested_references (void)
BOOL Collapsed_nested_references (void)
BOOL Assignment_may_xfer_pointer (WN *const)
WNHandle_assignment (WN *)
WNHandle_call (WN *)
void Handle_call_of_nested_PU (ST *)
BOOL May_icall_nested_PU (const WN *, ST **)
BOOL WN_is_alloca_intrinsic (const WN *)
BOOL Callee_changes_no_points_to (const WN *, const WN *)
BOOL Callee_returns_new_memory (const WN *)
BOOL Stmt_stores_return_value (const WN *)
BOOL Uses_no_return_value (const WN *)
WN_MAP Indir_classification_map (void) const
void Finalize_ac_map (WN *)
void Finalize_ac_map_wn (WN *)
ALIAS_CLASS_REPNew_alias_class (ALIAS_CLASS_MEMBER *)
ALIAS_CLASS_MEMBERNew_alias_class_member (void)
ALIAS_CLASS_MEMBERNew_alias_class_member (IDTYPE)
ALIAS_CLASS_MEMBERNew_alias_class_member (WN *)
void Find_declared_base_and_offset (ST_IDX, ST_IDX &, INT64 &)
IDTYPE New_base_id (const ST *, TY_IDX)
IDTYPE ST_base_id (ST *, TY_IDX)
IDTYPE Base_id (AUX_ID, TY_IDX)
IDTYPE Base_id (ST *, INT64, TY_IDX)
IDTYPE WN_base_id (const WN *)
ID_MAP< IDTYPE, INT64 > & Preg_num_base_id_map (void)
STST_of_wn (const WN *) const
MEM_POOLPool (void) const
PENDING_LIST Alloc_pending (ALIAS_CLASS_MEMBER *mbr, PENDING_LIST pdg)
PENDING_LIST Release_pending (PENDING_LIST pdg)
void Merge_conditional (AC_PTR_OBJ_PAIR, AC_PTR_OBJ_PAIR)
ALIAS_CLASS_REPGlobal_class (void) const
ALIAS_CLASS_REPConst_addr_class (void) const
void Set_inaccessible_to_callees (BS *bs)
OPT_STABOpt_stab (void) const
BOOL Tracing (void) const
WN_MAP Memop_classification_map (void) const
void Dump_wn_tree (FILE *fp, WN *wn) const
void Dump_wn (FILE *fp, WN *wn) const

Private Attributes

AC_DESTINATION _destination
OPT_STAB_opt_stab
ID_MAP< IDTYPE, ST_IDX_st_idx_to_base_id_map
ID_MAP< const ALIAS_CLASS_REP
*, IDTYPE
_ac_id_to_acr_map
DYN_ARRAY< BASE_ID_MAP_ENTRY * > _base_id_map
ID_MAP< IDTYPE, INT64_preg_num_base_id_map
WN_MAP _memop_classification_map
WN_MAP _indir_classification_map
BOOL _memops_classified
MEM_POOL_pool
BOOL _mem_pool_valid
BOOL _collapsed_nested_references
ALIAS_CLASS_MEMBER_member_of_global_class
ALIAS_CLASS_MEMBER_LIST _altered_non_points_to_parms
ALIAS_CLASS_MEMBER_LIST _alloca_memory_members
BS_inaccessible_to_callees
ALIAS_CLASS_REP_const_addr_class
PENDING_LIST_HOME _pending_list_home
BOOL _tracing

Friends

class ALIAS_CLASS_REP
class MERGE_NEST_REF_CLASSES

Detailed Description

Definition at line 507 of file opt_alias_class.h.


Constructor & Destructor Documentation

ALIAS_CLASSIFICATION::ALIAS_CLASSIFICATION ( OPT_STAB opt_stab,
AC_DESTINATION  destination,
MEM_POOL pool 
)


Member Function/Subroutine Documentation

BOOL ALIAS_CLASSIFICATION::Is_LDA_of_variable ( const WN wn  )  const [inline, private]

Definition at line 309 of file opt_alias_class.cxx.

References CLASS_BLOCK, CLASS_CONST, CLASS_PREG, CLASS_UNK, CLASS_VAR, Is_True, ST_class, and ST_of_wn().

Referenced by Finalize_ac_map_wn().

ALIAS_CLASS_REP * ALIAS_CLASSIFICATION::Class_of_base_id_LDID ( IDTYPE  base_id  )  const [private]

ALIAS_CLASS_REP * ALIAS_CLASSIFICATION::Class_of_base_id_LDA ( IDTYPE  base_id  )  const [private]

Definition at line 641 of file opt_alias_class.cxx.

References _base_id_map.

Referenced by Class_of_base_id_LDID(), and Classify_deref_of_expr().

WN * ALIAS_CLASSIFICATION::Classify_wn_and_kids ( WN wn  )  [private]

AC_PTR_OBJ_PAIR ALIAS_CLASSIFICATION::Classify_lhs_of_store ( WN stmt  )  [private]

BOOL ALIAS_CLASSIFICATION::Expr_may_contain_pointer ( WN *const   expr  )  [private]

AC_PTR_OBJ_PAIR ALIAS_CLASSIFICATION::Classify_deref_of_expr ( WN expr,
BOOL  expr_must_point 
) [private]

Definition at line 927 of file opt_alias_class.cxx.

References _alloca_memory_members, _destination, AC_DESTINATION_OPT_STAB, ALIAS_CLASS_MEMBER::Alias_class(), OPT_STAB::Aux_stab_entry(), Base_id(), BOOL, Class_of_base_id_LDA(), Class_of_base_id_LDID(), ALIAS_CLASS_REP::Class_pointed_to(), Const_addr_class(), Dump_wn(), Expr_may_contain_pointer(), FALSE, Find_declared_base_and_offset(), OPT_STAB::Find_sym_with_st_and_ofst(), FmtAssert, fprintf(), Global_class(), Indir_classification_map(), INITV_kind(), INITV_ofst(), INITV_st(), Initv_Table, INITVKIND_SYMOFF, INT, INT64, Is_fortran_reference_parm(), ALIAS_CLASS_REP::Is_pointer_class(), Is_True, Merge_conditional(), New_alias_class(), New_alias_class_member(), NULL, AC_PTR_OBJ_PAIR::Obj_class(), opc, Opcode_cannot_be_pointer_value(), OPCODE_is_leaf(), OPCODE_is_load(), OPCODE_operator(), OPERATOR_has_aux(), OPERATOR_is_scalar_iload(), OPR_ALLOCA, OPR_ARRAY, OPR_ILOADX, OPR_INTCONST, OPR_LDA, OPR_LDBITS, OPR_LDID, OPR_LDMA, OPR_MLOAD, OPR_PARM, Opt_stab(), ALIAS_CLASS_REP::Print(), Print(), ALIAS_CLASS_REP::Process_pending(), U_F_ELEMENT< ELEMENT_TYPE >::Put_in_set(), AC_PTR_OBJ_PAIR::Ref_class(), U_F_REP< ELEMENT_TYPE >::Representative(), ALIAS_CLASS_REP::Set_class_pointed_to(), AC_PTR_OBJ_PAIR::Set_obj_class(), AC_PTR_OBJ_PAIR::Set_ref_class(), AUX_STAB_ENTRY::St(), ST_has_initv(), ST_is_initialized, ST_st_idx, St_Table, TFile, Tracing(), TRUE, void, WN_aux(), WN_base_id(), WN_kid(), WN_kid0(), WN_kid_count(), WN_MAP_Set, WN_opcode(), WN_ty(), and WOPT_Enable_Verbose.

Referenced by Classify_lhs_of_store(), Classify_wn_and_kids(), Handle_assignment(), and Handle_call().

void ALIAS_CLASSIFICATION::Set_collapsed_nested_references ( void   )  [inline, private]

Definition at line 553 of file opt_alias_class.h.

References _collapsed_nested_references, and TRUE.

Referenced by Handle_call_of_nested_PU().

BOOL ALIAS_CLASSIFICATION::Collapsed_nested_references ( void   )  [inline, private]

Definition at line 555 of file opt_alias_class.h.

References _collapsed_nested_references.

Referenced by Handle_call_of_nested_PU().

BOOL ALIAS_CLASSIFICATION::Assignment_may_xfer_pointer ( WN * const  stmt  )  [private]

WN * ALIAS_CLASSIFICATION::Handle_assignment ( WN stmt  )  [private]

WN * ALIAS_CLASSIFICATION::Handle_call ( WN call_wn  )  [private]

void ALIAS_CLASSIFICATION::Handle_call_of_nested_PU ( ST callee_st  )  [private]

BOOL ALIAS_CLASSIFICATION::May_icall_nested_PU ( const WN call_wn,
ST **  callee_st 
) [private]

Definition at line 1603 of file opt_alias_class.cxx.

References FALSE, Get_Current_PU, NULL, PU_uplevel, and TRUE.

Referenced by Handle_call().

BOOL ALIAS_CLASSIFICATION::WN_is_alloca_intrinsic ( const WN call_wn  )  [private]

BOOL ALIAS_CLASSIFICATION::Callee_changes_no_points_to ( const WN call_wn,
const WN parm_wn 
) [private]

BOOL ALIAS_CLASSIFICATION::Callee_returns_new_memory ( const WN call_wn  )  [private]

BOOL ALIAS_CLASSIFICATION::Stmt_stores_return_value ( const WN stmt  )  [private]

BOOL ALIAS_CLASSIFICATION::Uses_no_return_value ( const WN stmt  )  [private]

Definition at line 1495 of file opt_alias_class.cxx.

References TRUE.

Referenced by Handle_call().

WN_MAP ALIAS_CLASSIFICATION::Indir_classification_map ( void   )  const [inline, private]

void ALIAS_CLASSIFICATION::Finalize_ac_map ( WN wn  )  [private]

void ALIAS_CLASSIFICATION::Finalize_ac_map_wn ( WN wn  )  [private]

ALIAS_CLASS_REP * ALIAS_CLASSIFICATION::New_alias_class ( ALIAS_CLASS_MEMBER acm  )  [private]

ALIAS_CLASS_MEMBER * ALIAS_CLASSIFICATION::New_alias_class_member ( void   )  [private]

ALIAS_CLASS_MEMBER * ALIAS_CLASSIFICATION::New_alias_class_member ( IDTYPE  base_id  )  [private]

Definition at line 260 of file opt_alias_class.cxx.

References CXX_NEW, and Pool().

ALIAS_CLASS_MEMBER * ALIAS_CLASSIFICATION::New_alias_class_member ( WN wn  )  [private]

Definition at line 275 of file opt_alias_class.cxx.

References CXX_NEW, and Pool().

void ALIAS_CLASSIFICATION::Find_declared_base_and_offset ( ST_IDX  st_idx,
ST_IDX declared_base_idx,
INT64 declared_offset 
) [private]

IDTYPE ALIAS_CLASSIFICATION::New_base_id ( const ST st,
TY_IDX  ty 
) [private]

IDTYPE ALIAS_CLASSIFICATION::ST_base_id ( ST st,
TY_IDX  ty 
) [private]

Definition at line 533 of file opt_alias_class.cxx.

References _st_idx_to_base_id_map, New_base_id(), and ST_st_idx.

Referenced by Base_id().

IDTYPE ALIAS_CLASSIFICATION::Base_id ( AUX_ID  aux_id,
TY_IDX  ty 
) [private]

IDTYPE ALIAS_CLASSIFICATION::Base_id ( ST base_st,
INT64  base_ofst,
TY_IDX  ty 
) [private]

IDTYPE ALIAS_CLASSIFICATION::WN_base_id ( const WN wn  )  [private]

ID_MAP<IDTYPE, INT64>& ALIAS_CLASSIFICATION::Preg_num_base_id_map ( void   )  [inline, private]

Definition at line 591 of file opt_alias_class.h.

References _preg_num_base_id_map.

Referenced by Base_id(), and Classify_memops().

ST * ALIAS_CLASSIFICATION::ST_of_wn ( const WN wn  )  const [inline, private]

MEM_POOL* ALIAS_CLASSIFICATION::Pool ( void   )  const [inline, private]

Definition at line 596 of file opt_alias_class.h.

References _pool.

Referenced by Classify_memops(), New_alias_class(), New_alias_class_member(), and New_base_id().

PENDING_LIST ALIAS_CLASSIFICATION::Alloc_pending ( ALIAS_CLASS_MEMBER mbr,
PENDING_LIST  pdg 
) [inline, private]

PENDING_LIST ALIAS_CLASSIFICATION::Release_pending ( PENDING_LIST  pdg  )  [inline, private]

void ALIAS_CLASSIFICATION::Merge_conditional ( AC_PTR_OBJ_PAIR  lhs,
AC_PTR_OBJ_PAIR  rhs 
) [private]

ALIAS_CLASS_REP* ALIAS_CLASSIFICATION::Global_class ( void   )  const [inline, private]

ALIAS_CLASS_REP* ALIAS_CLASSIFICATION::Const_addr_class ( void   )  const [inline, private]

Definition at line 613 of file opt_alias_class.h.

References _const_addr_class.

Referenced by Classify_deref_of_expr().

void ALIAS_CLASSIFICATION::Set_inaccessible_to_callees ( BS bs  )  [inline, private]

Definition at line 616 of file opt_alias_class.h.

References _inaccessible_to_callees.

Referenced by Classify_memops().

OPT_STAB* ALIAS_CLASSIFICATION::Opt_stab ( void   )  const [inline, private]

BOOL ALIAS_CLASSIFICATION::Tracing ( void   )  const [inline, private]

WN_MAP ALIAS_CLASSIFICATION::Memop_classification_map ( void   )  const [inline, private]

void ALIAS_CLASSIFICATION::Dump_wn_tree ( FILE fp,
WN wn 
) const [inline, private]

void ALIAS_CLASSIFICATION::Dump_wn ( FILE fp,
WN wn 
) const [inline, private]

void ALIAS_CLASSIFICATION::Release_resources ( void   ) 

void ALIAS_CLASSIFICATION::Add_to_altered_non_points_to_parms ( const ALIAS_CLASS_REP *const   acr  )  [inline]

ALIAS_CLASS_MEMBER_LIST& ALIAS_CLASSIFICATION::Altered_non_points_to_parms ( void   )  [inline]

Definition at line 659 of file opt_alias_class.h.

References _altered_non_points_to_parms.

Referenced by Classify_memops().

BS* ALIAS_CLASSIFICATION::Inaccessible_to_callees ( void   )  const [inline]

Definition at line 662 of file opt_alias_class.h.

References _inaccessible_to_callees.

Referenced by Classify_memops().

void ALIAS_CLASSIFICATION::Classify_memops ( WN entry_wn  ) 

IDTYPE ALIAS_CLASSIFICATION::Alias_class ( const WN wn  )  const

void ALIAS_CLASSIFICATION::Copy_alias_class ( const WN srcwn,
WN targwn 
)

BOOL ALIAS_CLASSIFICATION::Non_alloca_memop ( IDTYPE  class_id  )  const

BOOL ALIAS_CLASSIFICATION::Writable_by_call ( IDTYPE  class_id  )  const

void ALIAS_CLASSIFICATION::Print ( FILE fp  )  const


Friends And Related Function Documentation

friend class ALIAS_CLASS_REP [friend]

Definition at line 508 of file opt_alias_class.h.

friend class MERGE_NEST_REF_CLASSES [friend]

Definition at line 509 of file opt_alias_class.h.

Referenced by Handle_call_of_nested_PU().


Field Documentation

Definition at line 513 of file opt_alias_class.h.

Referenced by Opt_stab().

Definition at line 514 of file opt_alias_class.h.

Referenced by Classify_memops(), New_base_id(), Release_resources(), and ST_base_id().

Definition at line 517 of file opt_alias_class.h.

Referenced by Preg_num_base_id_map(), and Release_resources().

Definition at line 518 of file opt_alias_class.h.

Referenced by Classify_memops(), and Memop_classification_map().

Definition at line 519 of file opt_alias_class.h.

Referenced by Classify_memops(), and Indir_classification_map().

Definition at line 521 of file opt_alias_class.h.

Referenced by ALIAS_CLASSIFICATION(), Pool(), and Release_resources().

Definition at line 524 of file opt_alias_class.h.

Referenced by ALIAS_CLASSIFICATION(), and Global_class().

Definition at line 530 of file opt_alias_class.h.

Referenced by Inaccessible_to_callees(), and Set_inaccessible_to_callees().

Definition at line 534 of file opt_alias_class.h.

Referenced by ALIAS_CLASSIFICATION(), and Const_addr_class().

Definition at line 536 of file opt_alias_class.h.

Referenced by Alloc_pending(), and Release_pending().

Definition at line 538 of file opt_alias_class.h.

Referenced by ALIAS_CLASSIFICATION(), and Tracing().


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

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