#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "tree.h"#include "rtl.h"#include "tm_p.h"#include "hard-reg-set.h"#include "basic-block.h"#include "timevar.h"#include "expr.h"#include "ggc.h"#include "langhooks.h"#include "flags.h"#include "function.h"#include "diagnostic.h"#include "tree-dump.h"#include "tree-gimple.h"#include "tree-flow.h"#include "tree-inline.h"#include "tree-pass.h"#include "convert.h"#include "params.h"

Go to the source code of this file.
Definition at line 1640 of file tree-ssa-alias.c.
References gcc_assert, get_var_ann(), i, is_call_clobbered(), mark_call_clobbered(), NULL, VARRAY_ACTIVE_SIZE, VARRAY_PUSH_TREE, VARRAY_TREE, and VARRAY_TREE_INIT.
Referenced by add_may_alias_for_new_tag(), compute_flow_insensitive_aliasing(), compute_flow_sensitive_aliasing(), finalize_ref_all_pointers(), group_aliases(), group_aliases_into(), maybe_create_global_var(), and new_type_alias().
| static void add_pointed_to_expr | ( | struct alias_info * | ai, | |
| tree | ptr, | |||
| tree | expr | |||
| ) | [static] |
Definition at line 1795 of file tree-ssa-alias.c.
References add_pointed_to_var(), call_expr_flags(), ECF_MALLOC, ECF_MAY_BE_ALLOCA, get_ptr_info(), integer_zerop(), merge_pointed_to_info(), POINTER_TYPE_P, set_pt_anything(), set_pt_malloc(), SSA_NAME, SSA_NAME_PTR_INFO, TREE_CODE, TREE_OPERAND, and TREE_TYPE.
Referenced by add_pointed_to_var(), and collect_points_to_info_r().
| static void add_pointed_to_var | ( | struct alias_info * | ai, | |
| tree | ptr, | |||
| tree | value | |||
| ) | [static] |
Definition at line 1878 of file tree-ssa-alias.c.
References add_pointed_to_expr(), alias_info::addresses_needed, BITMAP_GGC_ALLOC, bitmap_set_bit(), gcc_assert, get_base_address(), get_ptr_info(), is_global_var(), NULL, pi, REFERENCE_CLASS_P, set_pt_anything(), SSA_NAME, SSA_VAR_P, TREE_CODE, TREE_OPERAND, and var_ann().
Referenced by add_pointed_to_expr(), and collect_points_to_info_r().
| static void collect_points_to_info_for | ( | struct alias_info * | ai, | |
| tree | ptr | |||
| ) | [static] |
Definition at line 605 of file tree-ssa-alias.c.
References collect_points_to_info_r(), gcc_assert, POINTER_TYPE_P, alias_info::processed_ptrs, SET_BIT, SSA_NAME_VERSION, alias_info::ssa_names_visited, TEST_BIT, TREE_TYPE, VARRAY_PUSH_TREE, and walk_use_def_chains().
Referenced by compute_points_to_and_addr_escape(), and merge_pointed_to_info().
Definition at line 1934 of file tree-ssa-alias.c.
References abort, add_pointed_to_expr(), add_pointed_to_var(), DECL_INITIAL, dump_file, dump_flags, fprintf(), gcc_assert, gcc_unreachable, IS_EMPTY_STMT, is_gimple_min_invariant(), merge_pointed_to_info(), PHI_RESULT, print_generic_expr(), set_pt_anything(), SSA_NAME, SSA_NAME_VAR, STRIP_NOPS, TDF_DETAILS, TREE_CODE, and TREE_OPERAND.
Referenced by collect_points_to_info_for().
| static void compute_flow_insensitive_aliasing | ( | struct alias_info * | ai | ) | [static] |
Definition at line 933 of file tree-ssa-alias.c.
References add_may_alias(), alias_info::addressable_vars, bitmap_bit_p(), current_function_decl, dump_file, EXECUTE_IF_SET_IN_SBITMAP, fprintf(), get_name(), group_aliases(), i, is_call_clobbered(), MAX_ALIASED_VOPS, may_alias_p(), alias_map_d::may_aliases, alias_info::num_addressable_vars, alias_info::num_pointers, num_referenced_vars, alias_info::num_references, alias_info::pointers, referenced_var, sbitmap_a_or_b(), sbitmap_alloc(), sbitmap_any_common_bits(), sbitmap_first_set_bit(), sbitmap_zero(), alias_map_d::set, SET_BIT, tag, alias_map_d::total_alias_vops, alias_info::total_alias_vops, alias_map_d::var, var_ann(), VARRAY_UINT, and alias_info::written_vars.
Referenced by compute_may_aliases().
| static void compute_flow_sensitive_aliasing | ( | struct alias_info * | ai | ) | [static] |
Definition at line 872 of file tree-ssa-alias.c.
References add_may_alias(), create_name_tags(), EXECUTE_IF_SET_IN_BITMAP, i, is_call_clobbered(), mark_call_clobbered(), pi, alias_info::processed_ptrs, ptr, referenced_var, SSA_NAME_PTR_INFO, SSA_NAME_VAR, var_ann(), VARRAY_ACTIVE_SIZE, and VARRAY_TREE.
Referenced by compute_may_aliases().
Definition at line 295 of file tree-ssa-alias.c.
References alias_stats, compute_flow_insensitive_aliasing(), compute_flow_sensitive_aliasing(), compute_points_to_and_addr_escape(), delete_alias_info(), dump_alias_info(), dump_alias_stats(), dump_file, dump_flags, dump_points_to_info(), dump_referenced_vars(), init_alias_info(), maybe_create_global_var(), memset, setup_pointers_and_addressables(), and TDF_STATS.
| static void compute_points_to_and_addr_escape | ( | struct alias_info * | ai | ) | [static] |
Definition at line 627 of file tree-ssa-alias.c.
References alias_info::addresses_needed, addresses_taken(), bb_ann(), bitmap_set_bit(), bsi_end_p(), bsi_next(), bsi_start(), bsi_stmt(), collect_points_to_info_for(), count_uses_and_derefs(), alias_info::dereferenced_ptrs_load, alias_info::dereferenced_ptrs_store, EXECUTE_IF_SET_IN_BITMAP, FOR_EACH_BB, FOR_EACH_SSA_TREE_OPERAND, get_call_expr_in(), get_stmt_operands(), i, is_escape_site(), iter, mark_call_clobbered(), may_be_aliased(), modify_stmt(), alias_info::num_references, pi, POINTER_TYPE_P, referenced_var, si, SSA_NAME_PTR_INFO, SSA_NAME_VAR, SSA_OP_DEF, SSA_OP_USE, SSA_OP_VIRTUAL_DEFS, timevar_pop, timevar_push, TREE_TYPE, var_ann(), VARRAY_UINT, and alias_info::written_vars.
Referenced by compute_may_aliases().
| static tree count_ptr_derefs | ( | tree * | tp, | |
| int *walk_subtrees | ATTRIBUTE_UNUSED, | |||
| void * | data | |||
| ) | [static] |
Definition at line 380 of file tree-ssa-alias.c.
References count_ptr_d::count, INDIRECT_REF_P, NULL_TREE, count_ptr_d::ptr, and TREE_OPERAND.
Referenced by count_uses_and_derefs().
| static void count_uses_and_derefs | ( | tree | ptr, | |
| tree | stmt, | |||
| unsigned * | num_uses_p, | |||
| unsigned * | num_derefs_p, | |||
| bool * | is_store | |||
| ) | [static] |
Definition at line 397 of file tree-ssa-alias.c.
References ASM_INPUTS, ASM_OUTPUTS, count_ptr_d::count, count_ptr_derefs(), EXPR_P, FOR_EACH_SSA_TREE_OPERAND, gcc_assert, i, NULL, NULL_TREE, count_ptr_d::ptr, SSA_OP_USE, TREE_CODE, TREE_OPERAND, and walk_tree().
Referenced by compute_points_to_and_addr_escape(), infer_value_range(), and update_alias_info().
| static void create_alias_map_for | ( | tree | var, | |
| struct alias_info * | ai | |||
| ) | [static] |
Definition at line 1320 of file tree-ssa-alias.c.
References alias_info::addressable_vars, get_alias_set(), alias_info::num_addressable_vars, alias_map_d::set, alias_map_d::var, and xcalloc().
Referenced by setup_pointers_and_addressables().
Definition at line 2215 of file tree-ssa-alias.c.
References add_referenced_tmp_var(), bitmap_set_bit(), build_decl, DECL_ARTIFICIAL, DECL_CONTEXT, DECL_EXTERNAL, get_identifier(), global_var, NULL_TREE, TREE_ADDRESSABLE, TREE_READONLY, TREE_STATIC, TREE_THIS_VOLATILE, TREE_USED, var_ann(), vars_to_rename, and void_type_node.
Referenced by maybe_create_global_var().
Definition at line 2092 of file tree-ssa-alias.c.
References add_referenced_tmp_var(), create_tmp_var_raw(), current_function_decl, DECL_CONTEXT, get_var_ann(), NAME_TAG, NULL_TREE, tag, TREE_ADDRESSABLE, and TYPE_TAG.
Referenced by get_nmt_for(), get_tmt_for(), and new_type_alias().
| static void create_name_tags | ( | struct alias_info * | ai | ) | [static] |
Definition at line 779 of file tree-ssa-alias.c.
References bitmap_empty_p, bitmap_equal_p(), bitmap_set_bit(), get_nmt_for(), i, NULL_TREE, pi, alias_info::processed_ptrs, ptr, q, set_pt_anything(), SSA_NAME_PTR_INFO, TREE_THIS_VOLATILE, TREE_TYPE, var_ann(), VARRAY_ACTIVE_SIZE, VARRAY_TREE, and vars_to_rename.
Referenced by compute_flow_sensitive_aliasing().
Definition at line 2328 of file tree-ssa-alias.c.
Definition at line 2507 of file tree-ssa-alias.c.
Definition at line 2474 of file tree-ssa-alias.c.
Definition at line 2410 of file tree-ssa-alias.c.
| static void delete_alias_info | ( | struct alias_info * | ai | ) | [static] |
Definition at line 570 of file tree-ssa-alias.c.
References alias_info::addressable_vars, alias_info::addresses_needed, BITMAP_FREE, alias_info::dereferenced_ptrs_load, alias_info::dereferenced_ptrs_store, free(), i, alias_map_d::may_aliases, NULL, alias_info::num_addressable_vars, alias_info::num_pointers, alias_info::num_references, alias_info::pointers, alias_info::processed_ptrs, sbitmap_free, alias_info::ssa_names_visited, and alias_info::written_vars.
Referenced by compute_may_aliases().
Definition at line 2260 of file tree-ssa-alias.c.
Definition at line 2236 of file tree-ssa-alias.c.
References alias_stats_d::alias_mayalias, alias_stats_d::alias_noalias, alias_stats_d::alias_queries, alias_stats, current_function_decl, fprintf(), alias_stats_d::simple_queries, alias_stats_d::simple_resolved, alias_stats_d::tbaa_queries, and alias_stats_d::tbaa_resolved.
Referenced by compute_may_aliases().
Definition at line 2482 of file tree-ssa-alias.c.
Definition at line 2420 of file tree-ssa-alias.c.
Definition at line 2359 of file tree-ssa-alias.c.
Definition at line 2123 of file tree-ssa-alias.c.
References create_memory_tag(), get_ptr_info(), mark_call_clobbered(), NULL_TREE, pi, SSA_NAME_VAR, tag, TREE_CODE, and TREE_TYPE.
Referenced by create_name_tags().
Definition at line 2338 of file tree-ssa-alias.c.
| static tree get_tmt_for | ( | tree | ptr, | |
| struct alias_info * | ai | |||
| ) | [static] |
Definition at line 2151 of file tree-ssa-alias.c.
References create_memory_tag(), gcc_assert, get_alias_set(), HOST_WIDE_INT, i, NULL_TREE, alias_info::num_pointers, alias_info::pointers, alias_map_d::set, tag, TREE_THIS_VOLATILE, TREE_TYPE, alias_map_d::var, var_ann(), and xcalloc().
Referenced by setup_pointers_and_addressables().
| static void group_aliases | ( | struct alias_info * | ai | ) | [static] |
Definition at line 1210 of file tree-ssa-alias.c.
References add_may_alias(), alias, current_function_decl, dump_file, fprintf(), gcc_assert, get_name(), group_aliases_into(), alias_map_d::grouped_p, i, MAX_ALIASED_VOPS, alias_map_d::may_aliases, NOT_A_TAG, NULL, NULL_TREE, alias_info::num_pointers, alias_info::pointers, alias_info::processed_ptrs, ptr, qsort(), replace_may_alias(), sbitmap_a_or_b(), sbitmap_any_common_bits(), sbitmap_zero(), SSA_NAME_PTR_INFO, alias_info::total_alias_vops, total_alias_vops_cmp(), alias_map_d::var, var_ann(), VARRAY_ACTIVE_SIZE, VARRAY_TREE, and varray_type.
Referenced by compute_flow_insensitive_aliasing(), and compute_may_aliases().
| static void group_aliases_into | ( | tree | tag, | |
| sbitmap | tag_aliases, | |||
| struct alias_info * | ai | |||
| ) | [static] |
Definition at line 1111 of file tree-ssa-alias.c.
References add_may_alias(), EXECUTE_IF_SET_IN_SBITMAP, i, NULL, alias_info::num_references, referenced_var, alias_info::total_alias_vops, alias_map_d::var, var_ann(), and VARRAY_UINT.
Referenced by group_aliases().
| static struct alias_info * init_alias_info | ( | void | ) | [static, read] |
Definition at line 476 of file tree-ssa-alias.c.
References addressable_vars, alias_info::addresses_needed, aliases_computed_p, BITMAP_ALLOC, bitmap_clear(), bsi_end_p(), bsi_next(), bsi_start(), bsi_stmt(), clear_call_clobbered(), alias_info::dereferenced_ptrs_load, alias_info::dereferenced_ptrs_store, FOR_EACH_BB, get_stmt_operands(), i, is_global_var(), NOT_A_TAG, NULL, num_referenced_vars, alias_info::num_references, num_ssa_names, pi, POINTER_TYPE_P, alias_info::processed_ptrs, referenced_var, sbitmap_alloc(), sbitmap_zero(), si, ssa_name, SSA_NAME_PTR_INFO, alias_info::ssa_names_visited, TREE_TYPE, var_ann(), VARRAY_TREE_INIT, VARRAY_UINT_INIT, alias_info::written_vars, and xcalloc().
Referenced by compute_may_aliases().
| static bool is_escape_site | ( | tree | stmt, | |
| struct alias_info * | ai | |||
| ) | [static] |
Definition at line 2026 of file tree-ssa-alias.c.
References call(), get_base_address(), get_call_expr_in(), NULL_TREE, alias_info::num_calls_found, alias_info::num_pure_const_calls_found, POINTER_TYPE_P, SSA_NAME, TREE_CODE, TREE_OPERAND, TREE_SIDE_EFFECTS, and TREE_TYPE.
Referenced by compute_points_to_and_addr_escape(), find_escape_constraints(), and update_alias_info().
| static bool may_alias_p | ( | tree | ptr, | |
| HOST_WIDE_INT | mem_alias_set, | |||
| tree | var, | |||
| HOST_WIDE_INT | var_alias_set | |||
| ) | [static] |
Definition at line 1599 of file tree-ssa-alias.c.
References alias_stats_d::alias_mayalias, alias_stats_d::alias_noalias, alias_stats_d::alias_queries, alias_sets_conflict_p(), alias_stats, gcc_assert, mem, alias_stats_d::simple_queries, alias_stats_d::simple_resolved, alias_stats_d::tbaa_queries, alias_stats_d::tbaa_resolved, TYPE_TAG, and var_ann().
Referenced by base_addr_differ_p(), base_object_differ_p(), and compute_flow_insensitive_aliasing().
Definition at line 2515 of file tree-ssa-alias.c.
| static void maybe_create_global_var | ( | struct alias_info * | ai | ) | [static] |
Definition at line 1521 of file tree-ssa-alias.c.
References add_may_alias(), bitmap_set_bit(), call_clobbered_vars, create_global_var(), EXECUTE_IF_SET_IN_BITMAP, global_var, GLOBAL_VAR_THRESHOLD, i, NULL_TREE, alias_info::num_calls_found, alias_info::num_pure_const_calls_found, referenced_var, alias_map_d::var, var_ann(), and vars_to_rename.
Referenced by compute_may_aliases().
| static void merge_pointed_to_info | ( | struct alias_info * | ai, | |
| tree | dest, | |||
| tree | orig | |||
| ) | [static] |
Definition at line 1733 of file tree-ssa-alias.c.
References bitmap_copy(), bitmap_empty_p, BITMAP_GGC_ALLOC, bitmap_ior_into(), collect_points_to_info_for(), gcc_assert, get_ptr_info(), NULL, set_pt_anything(), and SSA_NAME_PTR_INFO.
Referenced by add_pointed_to_expr(), and collect_points_to_info_r().
Definition at line 1674 of file tree-ssa-alias.c.
References is_call_clobbered(), mark_call_clobbered(), var_ann(), and VARRAY_TREE.
Referenced by group_aliases().
Definition at line 1694 of file tree-ssa-alias.c.
References bitmap_set_bit(), get_ptr_info(), NULL_TREE, pi, var_ann(), and vars_to_rename.
Referenced by add_pointed_to_expr(), add_pointed_to_var(), collect_points_to_info_r(), compute_flow_sensitive_aliasing(), create_name_tags(), and merge_pointed_to_info().
Definition at line 1715 of file tree-ssa-alias.c.
References pi, and SSA_NAME_PTR_INFO.
Referenced by add_pointed_to_expr().
| static void setup_pointers_and_addressables | ( | struct alias_info * | ai | ) | [static] |
Definition at line 1337 of file tree-ssa-alias.c.
References alias_info::addressable_vars, addressable_vars, alias_info::addresses_needed, bitmap_bit_p(), bitmap_set_bit(), create_alias_map_for(), alias_info::dereferenced_ptrs_load, alias_info::dereferenced_ptrs_store, get_tmt_for(), i, is_global_var(), mark_call_clobbered(), mark_non_addressable(), may_be_aliased(), NOT_A_TAG, NULL_TREE, alias_info::num_addressable_vars, alias_info::num_pointers, num_referenced_vars, alias_info::num_references, POINTER_TYPE_P, alias_info::pointers, referenced_var, tag, TREE_ADDRESSABLE, TREE_CODE, TREE_THIS_VOLATILE, TREE_TYPE, alias_map_d::var, var_ann(), VARRAY_GROW, VARRAY_SIZE, VARRAY_UINT, vars_to_rename, alias_info::written_vars, and xcalloc().
Referenced by compute_may_aliases().
Definition at line 175 of file tree-ssa-alias.c.
struct alias_stats_d alias_stats [static] |
Definition at line 136 of file tree-ssa-alias.c.
Referenced by compute_may_aliases(), dump_alias_stats(), and may_alias_p().
Definition at line 47 of file tree-ssa-alias.c.
Definition at line 166 of file tree-ssa-alias.c.
Definition at line 182 of file tree-ssa-alias.c.
Referenced by access_can_touch_variable(), add_call_clobber_ops(), add_call_read_ops(), create_global_var(), delete_tree_ssa(), finalize_ref_all_pointers(), get_asm_expr_operands(), init_tree_ssa(), and maybe_create_global_var().
Initial value:
{
"alias",
NULL,
compute_may_aliases,
NULL,
NULL,
0,
TV_TREE_MAY_ALIAS,
PROP_cfg | PROP_ssa,
PROP_alias,
0,
0,
TODO_dump_func | TODO_rename_vars
| TODO_ggc_collect | TODO_verify_ssa
| TODO_verify_stmts,
0
}
Definition at line 347 of file tree-ssa-alias.c.
1.5.6