GCC Middle and Back End API Reference
tree-ssanames.c File Reference

Functions

void init_ssanames ()
void fini_ssanames ()
void ssanames_print_statistics ()
tree make_ssa_name_fn ()
void release_ssa_name ()
bool get_ptr_info_alignment (struct ptr_info_def *pi, unsigned int *alignp, unsigned int *misalignp)
void mark_ptr_info_alignment_unknown ()
void set_ptr_info_alignment (struct ptr_info_def *pi, unsigned int align, unsigned int misalign)
void adjust_ptr_info_misalignment (struct ptr_info_def *pi, unsigned int increment)
struct ptr_info_defget_ptr_info ()
tree copy_ssa_name_fn ()
void duplicate_ssa_name_ptr_info ()
tree duplicate_ssa_name_fn ()
void release_defs ()
void replace_ssa_name_symbol ()
static unsigned int release_dead_ssa_names ()
gimple_opt_passmake_pass_release_ssa_names ()

Variables

unsigned int ssa_name_nodes_reused
unsigned int ssa_name_nodes_created

Function Documentation

void adjust_ptr_info_misalignment ( struct ptr_info_def pi,
unsigned int  increment 
)
If pointer described by PI has known alignment, increase its known
   misalignment by INCREMENT modulo its current alignment.   

References ptr_info_def::align, and ptr_info_def::misalign.

Referenced by copy_ref_info().

tree copy_ssa_name_fn ( )
Creates a new SSA name using the template NAME tobe defined by
   statement STMT in function FN.   

References make_ssa_name_fn().

tree duplicate_ssa_name_fn ( )
Creates a duplicate of a ssa name NAME tobe defined by statement STMT
   in function FN.   

References copy_ssa_name_fn(), and duplicate_ssa_name_ptr_info().

void duplicate_ssa_name_ptr_info ( )
Creates a duplicate of the ptr_info_def at PTR_INFO for use by
   the SSA name NAME.   
void fini_ssanames ( void  )
Finalize management of SSA_NAMEs.   

References cfun, and vec_free().

Referenced by delete_tree_ssa().

struct ptr_info_def* get_ptr_info ( )
read
Return the alias information associated with pointer T.  It creates a
   new instance if none existed.   

References mark_ptr_info_alignment_unknown(), ptr_info_def::pt, and pt_solution_reset().

bool get_ptr_info_alignment ( struct ptr_info_def pi,
unsigned int *  alignp,
unsigned int *  misalignp 
)
If the alignment of the pointer described by PI is known, return true and
   store the alignment and the deviation from it into *ALIGNP and *MISALIGNP
   respectively.  Otherwise return false.   

References ptr_info_def::align, and ptr_info_def::misalign.

Referenced by copy_ref_info(), dump_gimple_phi(), get_pointer_alignment_1(), and pp_gimple_stmt_1().

void init_ssanames ( )
Initialize management of SSA_NAMEs to default SIZE.  If SIZE is
   zero use default.   

References vec_alloc().

gimple_opt_pass* make_pass_release_ssa_names ( )
tree make_ssa_name_fn ( )
Return an SSA_NAME node for variable VAR defined in statement STMT
   in function FN.  STMT may be an empty statement for artificial
   references (e.g., default definitions created when a variable is
   used without a preceding definition).   

References is_gimple_reg_type(), ssa_use_operand_d::loc, ssa_use_operand_d::next, ssa_use_operand_d::prev, ssa_use_operand_d::ssa_name, ssa_name_nodes_created, ssa_name_nodes_reused, ssa_use_operand_d::use, vec_safe_is_empty(), and vec_safe_push().

void mark_ptr_info_alignment_unknown ( )
State that the pointer described by PI has unknown alignment.   

References ptr_info_def::align, and ptr_info_def::misalign.

static unsigned int release_dead_ssa_names ( )
static
Return SSA names that are unused to GGC memory and compact the SSA
   version namespace.  This is used to keep footprint of compiler during
   interprocedural optimization.   

References cfun, dump_file, function::gimple_df, gimple_df::ssa_names, statistics_counter_event(), vec_free(), and vec_safe_length().

void release_defs ( )
Release all the SSA_NAMEs created by STMT.   

References cfun, gimple_in_ssa_p(), and release_ssa_name().

void release_ssa_name ( )
We no longer need the SSA_NAME expression VAR, release it so that
   it may be reused.

   Note it is assumed that no calls to make_ssa_name will be made
   until all uses of the ssa name are released and that the only
   use of the SSA_NAME expression is to check its SSA_NAME_VAR.  All
   other fields must be assumed clobbered.   

References cfun, delink_imm_use(), insert_debug_temp_for_var_def(), ssa_use_operand_d::loc, memset(), name_registered_for_update_p(), ssa_use_operand_d::next, ssa_use_operand_d::prev, release_ssa_name_after_update_ssa(), ssa_use_operand_d::ssa_name, tree_size(), vec_safe_push(), and verify_imm_links().

void replace_ssa_name_symbol ( )
Replace the symbol associated with SSA_NAME with SYM.   
void set_ptr_info_alignment ( struct ptr_info_def pi,
unsigned int  align,
unsigned int  misalign 
)
Store the the power-of-two byte alignment and the deviation from that
   alignment of pointer described by PI to ALIOGN and MISALIGN
   respectively.   

References ptr_info_def::align, and ptr_info_def::misalign.

Referenced by ccp_finalize(), create_array_ref(), vectorizable_load(), and vectorizable_store().

void ssanames_print_statistics ( void  )
Dump some simple statistics regarding the re-use of SSA_NAME nodes.   

References ssa_name_nodes_created, and ssa_name_nodes_reused.

Referenced by dump_tree_statistics().


Variable Documentation

unsigned int ssa_name_nodes_created
unsigned int ssa_name_nodes_reused