GCC Middle and Back End API Reference
|
Go to the source code of this file.
Data Structures | |
struct | pt_solution |
struct | ao_ref_s |
Typedefs | |
typedef struct ao_ref_s | ao_ref |
Variables | |
struct pt_solution | ipa_escaped_pt |
Simplified and cached information about a memory reference tree. Used by the alias-oracle internally and externally in alternate interfaces.
alias_set_type ao_ref_alias_set | ( | ao_ref * | ) |
unsigned int compute_may_aliases | ( | void | ) |
In tree-ssa-structalias.c
Compute points-to information for every SSA_NAME pointer in the current function and compute the transitive closure of escaped variables to re-initialize the call-clobber states of local variables.
References cfun, compute_points_to_sets(), delete_points_to_sets(), dump_alias_info(), dump_file, function::gimple_df, gimple_df::ipa_pta, and need_ssa_update_p().
Referenced by execute_function_todo().
void debug | ( | pt_solution & | ref | ) |
void debug | ( | pt_solution * | ptr | ) |
void debug_alias_info | ( | void | ) |
Dump alias information on stderr.
References dump_alias_info().
void debug_points_to_info_for | ( | tree | ) |
void dump_alias_info | ( | FILE * | ) |
void dump_alias_stats | ( | FILE * | ) |
void dump_points_to_info_for | ( | FILE * | , |
tree | |||
) |
void dump_points_to_solution | ( | FILE * | , |
struct pt_solution * | |||
) |
void dump_pta_stats | ( | FILE * | ) |
Referenced by dump_memory_report().
tree get_continuation_for_phi | ( | gimple | phi, |
ao_ref * | ref, | ||
unsigned int * | cnt, | ||
bitmap * | visited, | ||
bool | abort_on_visited | ||
) |
Starting from a PHI node for the virtual operand of the memory reference REF find a continuation virtual operand that allows to continue walking statements dominating PHI skipping only statements that cannot possibly clobber REF. Increments *CNT for each alias disambiguation done. Returns NULL_TREE if no suitable virtual operand can be found.
References CDI_DOMINATORS, dominated_by_p(), get_continuation_for_phi_1(), and gimple_phi_num_args().
Referenced by maybe_skip_until(), translate_vuse_through_block(), and walk_non_aliased_vuses().
|
read |
bool pt_solution_empty_p | ( | struct pt_solution * | ) |
Referenced by dump_gimple_call(), pt_solution_empty_p(), and pt_solutions_intersect_1().
bool pt_solution_includes | ( | struct pt_solution * | , |
const_tree | |||
) |
bool pt_solution_includes_global | ( | struct pt_solution * | ) |
Referenced by pt_solution_includes_global(), and ptr_deref_may_alias_global_p().
void pt_solution_reset | ( | struct pt_solution * | ) |
void pt_solution_set | ( | struct pt_solution * | , |
bitmap | , | ||
bool | |||
) |
Referenced by update_alias_info_with_stack_vars().
void pt_solution_set_var | ( | struct pt_solution * | , |
tree | |||
) |
Referenced by copy_ref_info().
bool pt_solution_singleton_p | ( | struct pt_solution * | , |
unsigned * | |||
) |
Referenced by fold_builtin_alloca_with_align().
bool pt_solutions_intersect | ( | struct pt_solution * | , |
struct pt_solution * | |||
) |
Referenced by call_may_clobber_ref_p_1(), ptr_derefs_may_alias_p(), and ref_maybe_used_by_call_p_1().
bool ptr_deref_may_alias_global_p | ( | tree | ) |
bool ref_may_alias_global_p | ( | tree | ) |
bool stmt_may_clobber_global_p | ( | gimple | ) |
unsigned int walk_aliased_vdefs | ( | ao_ref * | , |
tree | , | ||
bool(*)(ao_ref *, tree, void *) | , | ||
void * | , | ||
bitmap * | |||
) |
References timevar_pop(), timevar_push(), and walk_aliased_vdefs_1().
Referenced by analyze_modified_params(), detect_type_change_1(), mark_aliased_reaching_defs_necessary(), mark_all_reaching_defs_necessary(), param_change_prob(), parm_preserved_before_stmt_p(), parm_ref_data_pass_through_p(), parm_ref_data_preserved_p(), and unmodified_parm_1().
void* walk_non_aliased_vuses | ( | ao_ref * | , |
tree | , | ||
void * | *)(ao_ref *, tree, unsigned int, void *, | ||
void * | *)(ao_ref *, tree, void *, | ||
void * | |||
) |
struct pt_solution ipa_escaped_pt |
IPA PTA solutions for ESCAPED.
Referenced by ipa_pta_execute(), pt_solution_empty_p(), pt_solution_includes_1(), pt_solution_includes_global(), and pt_solutions_intersect_1().