summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-structalias.h
Commit message (Collapse)AuthorAgeFilesLines
* * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.ebotcazou2006-05-251-0/+6
| | | | | | | | | | | | | | | (struct alias_info): Add new field ref_all_symbol_mem_tag. * tree-ssa-alias.c (compute_may_aliases): If the program contains ref-all pointers, run a finalization pass for them. (compute_flow_insensitive_aliasing): Skip ref-all pointers. (finalize_ref_all_pointers): New function. (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a regular pointer type to a ref-all pointer type. (get_tmt_for): Return the special memory tag for ref-all pointers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114116 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-ssa-structalias.h (alias_info): Remove num_references.kazu2006-04-161-5/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112979 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-ssa-alias.c (set_initial_properties, init_alias_info,kazu2006-04-121-1/+1
| | | | | | | | | | | delete_alias_info, compute_flow_sensitive_aliasing, group_aliases): Use VEC instead of VARRAY. * tree-ssa-structalias.c (update_alias_info): Likewise. * tree-ssa-structalias.h (alias_info): Change the type of processed_ptrs to VEC(tree,heap) *. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112903 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-01-16 Daniel Berlin <dberlin@dberlin.org>dberlin2006-01-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove. (ssa_ro_call_cache_valid): Ditto. * tree-ssa-alias.c (sort_tags_by_id): New function. (init_transitive_clobber_worklist): Ditto. (add_to_worklist): Ditto. (mark_aliases_call_clobbered): Ditto. (compute_tag_properties): Ditto. (set_initial_properties): Ditto. (compute_call_clobbered): Ditto. (compute_may_aliases): Call compute_call_clobbered and grouping. (compute_flow_sensitive_aliasing): Remove clobbering related code. (compute_flow_insensitive_aliasing): Grouping now happens in our caller. (setup_pointers_and_addressables): Remove clobbering related code. (add_may_alias): Ditto. (replace_may_alias): Ditto. (get_nmt_for): Ditto. (create_global_var): (is_escape_site): Return an escape_type enumeration. * tree-flow-inline.h (is_call_clobbered): Global var does not imply call clobbered. (mark_call_clobbered): Take a reason for marking this. Remove marking of globalness, and cache invalidation. (clear_call_clobbered): Remove cache invalidation code. * tree-dfa.c (dump_variable): If details is on, dump the reason for escaping. * tree-outof-ssa.c (create_temp): Copy escape mask from original variable. * tree-flow.h (struct ptr_info_def): Add escape mask member. (struct var_ann_d): Ditto. (enum escape_type): New. (mark_call_clobbered): Adjust prototype. * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars are never call clobbered. Record reasons for escaping. * tree-ssa-structalias.h (is_escape_site): Update prototype. * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove. (ssa_ro_call_cache_valid): Ditto. (clobbered_v_may_defs): Ditto. (clobbered_vuses): Ditto. (ro_call_vuses): Ditto. (clobber_stats): New. (init_ssa_operands): Zero out clobber stats. (fini_ssa_operands): Print out clobber stats. (get_call_expr_operands): Pass callee fndecl to add_call_read_ops). (add_call_clobber_ops): Remove use of cache. Add use of PURE_CONST information. (add_call_read_ops): Remove use of cache. Add use of static not_read information. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109938 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.hdnovillo2005-07-101-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-cfg.c (CHECK_OP): Only test for is_gimple_val. * tree-dfa.c (dump_subvars_for): New. (debug_subvars_for): New. (dump_variable): Show subvariables if VAR has them. * tree-flow-inline.h (get_subvar_at): New. (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT. * tree-flow.h (struct ptr_info_def): Remove field pt_malloc. Update all users. (struct subvar): Change fields offset and size to unsigned HOST_WIDE_INT. (dump_subvars_for): Declare. (debug_subvars_for): Declare. (get_subvar_at): Declare. (okay_component_ref_for_subvars): Change 2nd and 3rd argument to unsigned HOST_WIDE_INT *. (overlap_subvar): Likewise. * tree-gimple.c (is_gimple_reg): Always return false for SFTs and memory tags. * tree-pass.h (pass_build_pta, pass_del_pta): Remove. Update all callers. * tree-ssa-alias.c: Include tree-ssa-structalias.h. (compute_may_aliases): Call compute_points_to_sets. (collect_points_to_info_for): Remove. (compute_points_to_and_addr_escape): Remove. (delete_alias_info): Call delete_points_to_sets. (compute_flow_sensitive_aliasing): If the call to find_what_p_points_to returns false, call set_pt_anything. (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias. (set_pt_anything): Clear pi->pt_vars. (set_pt_malloc): Remove. (merge_pointed_to_info): Remove. (add_pointed_to_expr): Remove. (add_pointed_to_var): Remove. (collect_points_to_info_r): Remove. (is_escape_site): Make extern. (create_sft): New. (create_overlap_variables_for): Call it. * tree-ssa-copy.c (merge_alias_info): Never merge flow-sensitive alias information. * tree-ssa-operands.c (get_expr_operands): Adjust variables offset and size to be unsigned HOST_WIDE_INT. (add_to_addressable_set): Rename from note_addressable. Set TREE_ADDRESSABLE as the variables are added to the set. Update all users. (add_stmt_operand): Do not try to micro-optimize unmodifiable operands into VUSEs when adding V_MAY_DEFs for members in an alias set. * tree-ssa-operands.h (add_to_addressable_set): Declare. * tree-ssa-structalias.c: Include tree-ssa-structalias.h last. (struct variable_info): Add bitfield is_heap_var. (var_anyoffset, anyoffset_tree, anyoffset_id): Declare. (new_var_info): Initialize is_heap_var. (get_constraint_for): Add HEAP variables to the symbol table. Mark them with is_heap_var. (update_alias_info): New. Taken mostly from the old compute_points_to_and_addr_escape. (handle_ptr_arith): New. (find_func_aliases): Call update_alias_info. Call handle_ptr_info for tcc_binary expressions. Call mark_stmt_modified. (create_variable_info_for): If DECL has subvars, do not create variables for its subvars. Always add all the fields. (set_uids_in_ptset): If the solution includes ANYOFFSET and SFTs, then add all the SFTs of the structure. If VI->DECL is an aggregate with subvariables, add the SFT at VI->OFFSET. (find_what_p_points_to): If VI is an artificial variable, translate to bitfields in SSA_NAME_PTR_INFO. If the solution is empty, set pi->pt_vars to NULL (init_base_vars): Create ANYOFFSET. (compute_points_to_sets): Rename from create_alias_vars. Make extern. (pass_build_pta): Remove. (delete_points_to_sets): Rename from delete_alias_vars. (pass_del_pta): Remove. * tree-ssa-structalias.h (struct alias_info): Move from tree-ssa-alias.h. (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC, NUM_REFERENCES_SET): Likewise. (compute_points_to_sets, delete_points_to_sets): Declare. testsuite/ChangeLog * gcc.dg/tree-ssa/pta-fp.c: Use -fdump-tree-alias1. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101841 138bc75d-0d04-0410-961f-82ee72b054a4
* Update FSF address.kcook2005-06-251-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101317 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-ssa-structalias.c (dump_solution_for_var): Reformatdnovillo2005-06-151-3/+7
| | | | | | | | | | | | | output. (dump_sa_points_to_info): Make extern. (debug_sa_points_to_info): New. * tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from TREE_ALIAS_COMMON. (dump_sa_points_to_info): Declare. (debug_sa_points_to_info): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100987 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-06-08 Daniel Berlin <dberlin@dberlin.org>dberlin2005-06-091-0/+33
* Makefile.in (OBJS-common): Add tree-ssa-structalias.o. * tree-flow.h (find_what_p_points_to): Add prototype. (push_fields_onto_fieldstack): Ditto. (sort_fieldstack): Ditto. * tree-optimize.c (init_tree_optimization_passes): Add pass_build_pta and pass_del_pta. * tree-pass.h (pass_build_pta): New structure. (pass_del_pta): Ditto. * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate using new alias analyzer. (push_fields_onto_fieldstack): Removed from here. (bitpos_of_field): Ditto. (fieldoff_compare): Ditto. * tree-ssa-structalias.c: New file. * tree-ssa-structalias.h: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100800 138bc75d-0d04-0410-961f-82ee72b054a4