GCC Middle and Back End API 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_def * | get_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_pass * | make_pass_release_ssa_names () |
Variables | |
unsigned int | ssa_name_nodes_reused |
unsigned int | ssa_name_nodes_created |
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 | ) |
|
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 |
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().
unsigned int ssa_name_nodes_created |
Referenced by make_ssa_name_fn(), and ssanames_print_statistics().
unsigned int ssa_name_nodes_reused |
Referenced by make_ssa_name_fn(), and ssanames_print_statistics().