IP_ALIAS_CLASSIFICATION Module Reference

#include <ipo_alias_class.h>

Collaboration diagram for IP_ALIAS_CLASSIFICATION:

Collaboration graph
[legend]

Public Member Functions

 IP_ALIAS_CLASSIFICATION (MEM_POOL *pool)
void Init_maps (void)
void Release_resources (void)
void Classify_initialized_data (INITO_TAB *)
void Classify_memops (WN *)
void Finalize_memops (WN *)
IDTYPE Alias_class (const WN *) const
void Print (FILE *) const

Private Member Functions

IP_ALIAS_CLASS_REPClass_of_base_id (IDTYPE) const
BOOL Can_be_referred_to_by_code (ST_IDX)
void Merge_initial_value_classes (IDTYPE, INITV_IDX)
void Classify_inito (const INITO *)
WNClassify_wn_and_kids (WN *)
IP_ALIAS_CLASS_MEMBERClassify_lhs_of_store (WN *)
void Classify_deref_of_expr (IP_ALIAS_CLASS_MEMBER *, WN *, BOOL)
IP_ALIAS_CLASS_MEMBERIncorporate_call_and_parm_flags (IP_ALIAS_CLASS_MEMBER *, const WN *)
void Handle_function_definition (WN *)
WNHandle_assignment (WN *)
WNHandle_return_val (WN *)
WNHandle_call (WN *)
BOOL Callee_saves_no_parms (const WN *)
BOOL Callee_returns_new_memory (const WN *)
BOOL Callee_returns_new_memory (const ST *)
BOOL Callee_frees_memory (const WN *)
BOOL Callee_frees_memory (const ST *)
BOOL Stmt_stores_return_value_from_callee (const WN *)
BOOL Stmt_stores_return_value_to_caller (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 *)
IP_ALIAS_CLASS_REPNew_alias_class (IP_ACR_TYPE_SORT, IP_ALIAS_CLASS_MEMBER &) const
IP_ALIAS_CLASS_MEMBERNew_alias_class_member (void) const
IP_ALIAS_CLASS_MEMBERNew_alias_class_member (const WN *) const
void Find_declared_base_and_offset (ST_IDX, ST_IDX &, INT64 &)
IDTYPE New_base_id (ST_IDX, ST_IDX)
IDTYPE ST_base_id (ST_IDX, ST_IDX)
IDTYPE Base_id (const ST *, INT64)
IDTYPE WN_base_id (const WN *)
ID_MAP< IDTYPE,
AC_PREG_IDENTIFIER > & 
Preg_id_to_base_id_map (void)
MEM_POOLPool (void) const
void Conditional_join (IP_ALIAS_CLASS_REP *, IP_ALIAS_CLASS_REP *)
IP_ALIAS_CLASS_REPGlobal_data_class (void) const
IP_ALIAS_CLASS_REPGlobal_func_class (void) const
IP_ALIAS_CLASS_REPConst_addr_class (void) const
IP_ALIAS_CLASS_REPClass_of_code_misused_as_data (void) const
IDTYPE Alias_class (IDTYPE) const
BOOL Tracing (void) const
WN_MAP Memop_classification_map (void) const

Private Attributes

ID_MAP< IDTYPE, AC_ST_IDENTIFIER_st_id_to_base_id_map
DYN_ARRAY< IP_BASE_ID_MAP_ENTRY * > _base_id_map
ID_MAP< IDTYPE,
AC_PREG_IDENTIFIER
_preg_id_to_base_id_map
WN_MAP _memop_classification_map
WN_MAP _indir_classification_map
BOOL _memops_classified
BOOL _maps_initialized
MEM_POOL_pool
BOOL _mem_pool_valid
IP_ALIAS_CLASS_MEMBER_member_of_global_data_class
IP_ALIAS_CLASS_MEMBER_member_of_global_func_class
IP_ALIAS_CLASS_MEMBER_member_of_misused_code_class
IP_ALIAS_CLASS_MEMBER_member_of_const_addr_class
BOOL _tracing
const BOOL _verbose

Friends

class IP_ALIAS_CLASS_REP
class IP_AC_LAMBDA_TYPE_REP
class MERGE_NEST_REF_CLASSES
class CLASSIFY_INITIALIZED_DATA

Detailed Description

Definition at line 551 of file ipo_alias_class.h.


Constructor & Destructor Documentation

IP_ALIAS_CLASSIFICATION::IP_ALIAS_CLASSIFICATION ( MEM_POOL pool  )  [inline]


Member Function/Subroutine Documentation

IP_ALIAS_CLASS_REP * IP_ALIAS_CLASSIFICATION::Class_of_base_id ( IDTYPE  base_id  )  const [private]

BOOL IP_ALIAS_CLASSIFICATION::Can_be_referred_to_by_code ( ST_IDX  st_idx  )  [private]

Definition at line 2084 of file ipo_alias_class.cxx.

References SCLASS_CPLINIT, SCLASS_EH_REGION_SUPP, ST_sclass, and St_Table.

Referenced by Classify_inito().

void IP_ALIAS_CLASSIFICATION::Merge_initial_value_classes ( IDTYPE  lhs_base_id,
INITV_IDX  val 
) [private]

void IP_ALIAS_CLASSIFICATION::Classify_inito ( const INITO inito  )  [private]

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

IP_ALIAS_CLASS_MEMBER * IP_ALIAS_CLASSIFICATION::Classify_lhs_of_store ( WN stmt_or_idname  )  [private]

void IP_ALIAS_CLASSIFICATION::Classify_deref_of_expr ( IP_ALIAS_CLASS_MEMBER lhs_member,
WN expr,
BOOL  directly_dereferenced 
) [private]

IP_ALIAS_CLASS_MEMBER * IP_ALIAS_CLASSIFICATION::Incorporate_call_and_parm_flags ( IP_ALIAS_CLASS_MEMBER func_member,
const WN call_wn 
) [private]

void IP_ALIAS_CLASSIFICATION::Handle_function_definition ( WN entry_wn  )  [private]

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

WN * IP_ALIAS_CLASSIFICATION::Handle_return_val ( WN stmt  )  [private]

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

BOOL IP_ALIAS_CLASSIFICATION::Callee_saves_no_parms ( const WN call_wn  )  [private]

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

BOOL IP_ALIAS_CLASSIFICATION::Callee_returns_new_memory ( const ST st  )  [private]

Definition at line 1589 of file ipo_alias_class.cxx.

References FALSE, ST_name, strcmp(), and TRUE.

BOOL IP_ALIAS_CLASSIFICATION::Callee_frees_memory ( const WN call_wn  )  [private]

BOOL IP_ALIAS_CLASSIFICATION::Callee_frees_memory ( const ST st  )  [private]

Definition at line 1616 of file ipo_alias_class.cxx.

References FALSE.

BOOL IP_ALIAS_CLASSIFICATION::Stmt_stores_return_value_from_callee ( const WN stmt  )  [private]

BOOL IP_ALIAS_CLASSIFICATION::Stmt_stores_return_value_to_caller ( const WN stmt  )  [private]

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

Definition at line 1535 of file ipo_alias_class.cxx.

References TRUE.

Referenced by Handle_call().

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

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

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

IP_ALIAS_CLASS_REP * IP_ALIAS_CLASSIFICATION::New_alias_class ( IP_ACR_TYPE_SORT  sort,
IP_ALIAS_CLASS_MEMBER acm 
) const [private]

IP_ALIAS_CLASS_MEMBER * IP_ALIAS_CLASSIFICATION::New_alias_class_member ( void   )  const [private]

IP_ALIAS_CLASS_MEMBER * IP_ALIAS_CLASSIFICATION::New_alias_class_member ( const WN wn  )  const [private]

Definition at line 253 of file ipo_alias_class.cxx.

References CXX_NEW, and Pool().

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

IDTYPE IP_ALIAS_CLASSIFICATION::New_base_id ( ST_IDX  pu_st_idx,
ST_IDX  st_idx 
) [private]

IDTYPE IP_ALIAS_CLASSIFICATION::ST_base_id ( ST_IDX  pu_st_idx,
ST_IDX  base_st_idx 
) [private]

IDTYPE IP_ALIAS_CLASSIFICATION::Base_id ( const ST base_st,
INT64  base_ofst 
) [private]

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

ID_MAP<IDTYPE, AC_PREG_IDENTIFIER>& IP_ALIAS_CLASSIFICATION::Preg_id_to_base_id_map ( void   )  [inline, private]

Definition at line 635 of file ipo_alias_class.h.

References _preg_id_to_base_id_map.

Referenced by Base_id(), and Init_maps().

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

void IP_ALIAS_CLASSIFICATION::Conditional_join ( IP_ALIAS_CLASS_REP lhs_deref_class,
IP_ALIAS_CLASS_REP rhs_deref_class 
) [private]

IP_ALIAS_CLASS_REP* IP_ALIAS_CLASSIFICATION::Global_data_class ( void   )  const [inline, private]

IP_ALIAS_CLASS_REP* IP_ALIAS_CLASSIFICATION::Global_func_class ( void   )  const [inline, private]

Definition at line 646 of file ipo_alias_class.h.

References _member_of_global_func_class, and IP_ALIAS_CLASS_MEMBER::Alias_class().

Referenced by New_base_id(), and Print().

IP_ALIAS_CLASS_REP* IP_ALIAS_CLASSIFICATION::Const_addr_class ( void   )  const [inline, private]

IP_ALIAS_CLASS_REP* IP_ALIAS_CLASSIFICATION::Class_of_code_misused_as_data ( void   )  const [inline, private]

IDTYPE IP_ALIAS_CLASSIFICATION::Alias_class ( IDTYPE  base_id  )  const [private]

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

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

Definition at line 659 of file ipo_alias_class.h.

References _memop_classification_map.

Referenced by Alias_class(), and Finalize_ac_map_wn().

void IP_ALIAS_CLASSIFICATION::Init_maps ( void   ) 

void IP_ALIAS_CLASSIFICATION::Release_resources ( void   ) 

void IP_ALIAS_CLASSIFICATION::Classify_initialized_data ( INITO_TAB inito_tab  ) 

Definition at line 2139 of file ipo_alias_class.cxx.

References CLASSIFY_INITIALIZED_DATA, and For_all().

void IP_ALIAS_CLASSIFICATION::Classify_memops ( WN entry_wn  ) 

void IP_ALIAS_CLASSIFICATION::Finalize_memops ( WN entry_wn  ) 

IDTYPE IP_ALIAS_CLASSIFICATION::Alias_class ( const WN wn  )  const

void IP_ALIAS_CLASSIFICATION::Print ( FILE fp  )  const


Friends And Related Function Documentation

friend class IP_ALIAS_CLASS_REP [friend]

Definition at line 552 of file ipo_alias_class.h.

Referenced by New_alias_class().

friend class IP_AC_LAMBDA_TYPE_REP [friend]

Definition at line 553 of file ipo_alias_class.h.

Referenced by Handle_call(), Handle_function_definition(), and New_alias_class().

friend class MERGE_NEST_REF_CLASSES [friend]

Definition at line 554 of file ipo_alias_class.h.

Definition at line 555 of file ipo_alias_class.h.

Referenced by Classify_initialized_data().


Field Documentation

Definition at line 558 of file ipo_alias_class.h.

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

Definition at line 567 of file ipo_alias_class.h.

Referenced by Preg_id_to_base_id_map(), and Release_resources().

Definition at line 569 of file ipo_alias_class.h.

Referenced by Memop_classification_map().

Definition at line 570 of file ipo_alias_class.h.

Referenced by Classify_memops(), and Indir_classification_map().

Definition at line 571 of file ipo_alias_class.h.

Referenced by Alias_class(), and Finalize_memops().

Definition at line 572 of file ipo_alias_class.h.

Referenced by Init_maps(), and Release_resources().

Definition at line 573 of file ipo_alias_class.h.

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

Definition at line 574 of file ipo_alias_class.h.

Referenced by Alias_class(), and Release_resources().

Definition at line 575 of file ipo_alias_class.h.

Referenced by Global_data_class(), and IP_ALIAS_CLASSIFICATION().

Definition at line 576 of file ipo_alias_class.h.

Referenced by Global_func_class(), Handle_call(), and IP_ALIAS_CLASSIFICATION().

Definition at line 577 of file ipo_alias_class.h.

Referenced by Class_of_code_misused_as_data(), and IP_ALIAS_CLASSIFICATION().

Definition at line 578 of file ipo_alias_class.h.

Referenced by Const_addr_class(), and IP_ALIAS_CLASSIFICATION().

Definition at line 580 of file ipo_alias_class.h.

Referenced by IP_ALIAS_CLASSIFICATION(), and Tracing().


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

Generated on Wed Apr 8 16:48:51 2009 for Open64 by  doxygen 1.5.6