aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-structalias.c
AgeCommit message (Collapse)AuthorFilesLines
2006-01-14re PR tree-optimization/22548 (Aliasing can not tell array members apart)Richard Guenther1-4/+84
2006-01-14 Richard Guenther <rguenther@suse.de> PR tree-optimization/22548 PR tree-optimization/22555 PR tree-optimization/22501 * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H). * params.def (salias-max-array-elements): New parameter. * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define. * doc/invoke.texi (salias-max-array-elements): Document. * tree-flow-inline.h (var_can_have_subvars): We also handle arrays now. * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like COMPONENT_REF. * tree-ssa-structalias.c (params.h): Include. (push_fields_onto_fieldstack): Handle ARRAY_TYPE. (find_func_aliases): Handle multiple constraints from ARRAY_REF. (get_constraint_for): For ADDR_EXPR operating on something containing an ARRAY_REF, add all subvars to the solution. (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types. * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF for creating MUST_DEFs. (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars. * gcc.dg/tree-ssa/alias-4.c: New testcase. * gcc.dg/tree-ssa/alias-5.c: Likewise. * gcc.dg/tree-ssa/alias-6.c: Likewise. * gcc.dg/tree-ssa/alias-7.c: Likewise. * gcc.dg/tree-ssa/alias-8.c: Likewise. * gcc.dg/tree-ssa/alias-9.c: Likewise. * gcc.dg/tree-ssa/alias-10.c: Likewise. * gcc.dg/tree-ssa/alias-11.c: Likewise. * gcc.dg/tree-ssa/alias-12.c: Likewise. From-SVN: r109703
2006-01-10tree-ssa-structalias.c (get_constraint_for_component_ref): Never override ↵Richard Guenther1-14/+3
with anything constraint. 2006-01-10 Richard Guenther <rguenther@suse.de> * tree-ssa-structalias.c (get_constraint_for_component_ref): Never override with anything constraint. From-SVN: r109544
2006-01-08tree-ssa-structalias.c (get_constraint_for): Remove anyoffset argument.Richard Guenther1-27/+19
2006-01-08 Richard Guenther <rguenther@suse.de> * tree-ssa-structalias.c (get_constraint_for): Remove anyoffset argument. (get_constraint_for_component_ref): Likewise. (do_deref): Likewise. (get_constraint_for): Likewise. (do_structure_copy): Likewise. (handle_ptr_arith): Likewise. (find_func_aliases): Likewise. Remove unused need_anyoffset variable. From-SVN: r109472
2006-01-06re PR tree-optimization/25528 (missed LIM on the tree level (complex types))Andrew Pinski1-0/+18
2006-01-06 Andrew Pinski <pinskia@physics.uc.edu> PR tree-opt/25528 * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR and IMAGPART_EXPR. * tree-flow-inline.h (var_can_have_subvars): Handle complex types on non gimple variables. Also add checks at the top for decls and mtags. * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle complex types. * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR and IMAGPART_EXPR for creating MUST_DEFs. (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG, and NAME_MEMORY_TAG separately from the DECLs. From-SVN: r109419
2006-01-05tree-flow.h (struct fieldoff): Decompose field to type, size and decl.Richard Guenther1-11/+13
2006-01-05 Richard Guenther <rguenther@suse.de> * tree-flow.h (struct fieldoff): Decompose field to type, size and decl. * tree-ssa-alias.c (create_sft): Take type as parameter. (create_overlap_variables_for): Store type, size and decl in the fieldoff structure. * tree-ssa-structalias.c (fieldoff_compare): Adjust users of struct fieldoff. (push_fields_onto_fieldstack): Likewise. (create_variable_info_for): Likewise. Use offset for the SFT name if the decl is not available. From-SVN: r109376
2005-12-19tree-ssa-structalias.c (update_alias_info): Remove handling of ↵Zdenek Dvorak1-5/+3
may_be_aliased (SSA_NAME_VAR (op)) case. * tree-ssa-structalias.c (update_alias_info): Remove handling of may_be_aliased (SSA_NAME_VAR (op)) case. From-SVN: r108776
2005-12-18re PR tree-optimization/25481 (Segfault in tree-ssa-structalias.c)Richard Guenther1-3/+7
2005-12-18 Richard Guenther <rguenther@suse.de> PR tree-optimization/25481 * tree-ssa-structalias.c (handle_ptr_arith): Handle accesses we don't have a varinfo for. * gcc.dg/torture/pr25481.c: New testcase. From-SVN: r108763
2005-12-16basic-block.h, [...]: Fix comment typos.Kazu Hirata1-2/+2
* basic-block.h, config/i386/winnt.c, config/pa/pa.c, config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def, reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos. * doc/invoke.texi, doc/tm.texi: Fix typos. From-SVN: r108626
2005-12-15tree-flow.h (okay_component_ref_for_subvars): Remove.Richard Guenther1-9/+5
2005-12-15 Richard Guenther <rguenther@suse.de> * tree-flow.h (okay_component_ref_for_subvars): Remove. (get_ref_base_and_extent): Declare. * tree-dfa.c (okay_component_ref_for_subvars): Remove. (get_ref_base_and_extent): New function. * tree-ssa-alias.c (find_used_portions): Use it. * tree-ssa-structalias.c (get_constraint_for_component_ref): Likewise. * tree-ssa-operands.c (get_expr_operands): Likewise. From-SVN: r108568
2005-12-11tree-ssa-structalias.c (process_constraint): Remove code to transform ↵Daniel Berlin1-426/+1152
addressofs into scalar. 2005-12-11 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-structalias.c (process_constraint): Remove code to transform addressofs into scalar. (create_variable_info_for): In whole-program IPA, globals don't point to ANYTHING by default. 2005-12-11 Daniel Berlin <dberlin@dberlin.org> * timevar.def (TV_IPA_PTA): New. * tree-pass.h (pass_ipa_pta): New * tree-ssa-structalias.c: Include cgraph.h (in_ipa_mode): New. (predbitmap_obstack): New. (EXECUTE_IF_IN_NONNULL_BITMAP): New. (struct constraint_stats): Add num_edges. (new_var_info): Don't call bitmap_clear. (struct constraint_edge): Update docs. (new_constraint_edge): Remove src param. (struct constraint_graph): Add zero_weight_succs, zero_weight_preds. Update docs. (constraint_expr_equal): Reformat. (constraint_edge_equal): Update for removal of src. (constraint_edge_less): Ditto. (constraint_edge_vec_find): Ditto. (erase_graph_self_edge): Update for removal of src and and zero weight bitmap. (clear_edges_for_node): Ditto. (add_graph_edge): Ditto. (get_graph_weights): Ditto. (allocate_graph_weights): Ditto. (merge_graph_nodes): Ditto. (int_add_graph_edge): Ditto. (valid_graph_edge): Ditto. (valid_weighted_graph_edge): Ditto. (build_constraint_graph): Ditto. (scc_visit): Ditto. (collapse_nodes): Ditto. (process_unification_queue): Ditto. (topo_visit): Ditto. (solve_graph): Ditto. (do_structure_copy): Ditto. (perform_var_substitution): Ditto. Init and release obstack. (handle_ptr_arith): Try to resolve directly. (find_func_aliases): Don't call update_alias_info here Handle RETURN_EXPR, and CALL_EXPR's in IPA mode. (do_sd_constraint): Add code for propagating faster. Update. (do_ds_constraint): Ditto. (count_num_arguments): New function. (create_function_info_for): Ditto. (create_variable_info_for): Handle FUNCTION_DECL. (intra_create_variable_infos): Use make_constraint_to_anything. (init_alias_vars): Init obstacks here. (need_to_solve): Handle zero weight graph changes. (compute_points_to_sets): Call update_alias_info here. (delete_points_to_sets): Free zero weight preds/succs here. (gate_ipa_pta): New. (ipa_pta_execute): New 2005-12-11 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-structalias.c (var_anyoffset): Removed. (anyoffset_tree): Ditto. (anyoffset_id): Ditto. (do_deref): Take vector of constraints, no return value. Update to work on vector. (get_constraint_for): Ditto. (get_constraint_for_component_ref): Ditto. (do_structure_copy): Ditto. (handle_ptr_arith): Ditto. (find_func_aliases): Ditto. (set_uids_in_ptset): Remove anyoffset handling. (init_base_vars): Ditto. From-SVN: r108384
2005-11-22re PR middle-end/22561 (ACATS ca11c01 wrong code)Eric Botcazou1-0/+1
PR middle-end/22561 * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF. From-SVN: r107377
2005-11-10* tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.Hans-Peter Nilsson1-2/+2
From-SVN: r106746
2005-11-10tree-ssa-alias.c (compute_may_aliases): Remove call to delete_old_heap_vars.Daniel Berlin1-47/+55
2005-11-10 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-alias.c (compute_may_aliases): Remove call to delete_old_heap_vars. * tree-dfa.c (referenced_var_remove): Remove function. * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars. (delete_tree_ssa): Remove call to delete_old_heapvars. Add call to delete_alias_heapvars. * tree-flow.h (referenced_var_remove): Remove prototype (init_alias_heapvars): New prototype. (delete_alias_heapvars): Ditto. * Makefile.in (tree-ssa-structalias.o): Add gt-tree-ssa-structalias.o (GTFILES): Add tree-ssa-structalias.h and tree-ssa-structalias.c. (s-gtype): Add gt-tree-ssa-structalias.h. * tree-ssa-structalias.c (heapvars): Remove. (oldheapvars): Remove. (heapvar_for_stmt): New variable. (heapvar_lookup): New function. (heapvar_insert): Ditto. (get_constraint_for): See if we have an old heapvar to reuse. (init_alias_heapvars): New function. (delete_alias_heapvars): Ditto. Add include of gt-tree-ssa-structalias.h. From-SVN: r106743
2005-11-08re PR tree-optimization/23382 (Does not remove the old HEAP virtual ↵Daniel Berlin1-0/+47
variables in clobbered) 2005-11-08 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/23382 * tree-ssa-alias.c (compute_may_aliases): Call delete_old_heap_vars. * tree-dfa.c (referenced_var_remove): New function. * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars. * tree-flow.h (referenced_var_remove): Add prototype. (delete_old_heap_vars): Ditto. * tree-ssa-structalias.c (heapvars): New variable. (oldheapvars): Ditto. (get_constraint_for): Put heap vars on heapvars list. (delete_old_heap_vars): New function. From-SVN: r106643
2005-11-04tree-flow.h (ref_contains_indirect_ref): Rename to ↵Richard Guenther1-1/+0
array_ref_contains_indirect_ref. 2005-11-04 Richard Guenther <rguenther@suse.de> * tree-flow.h (ref_contains_indirect_ref): Rename to array_ref_contains_indirect_ref. * tree-flow-inline.h (ref_contains_indirect_ref): Likewise. (array_ref_contains_indirect_ref): Make comment match the code and vice-versa. (ref_contains_array_ref): Likewise. * tree-ssa-structalias.c (find_func_aliases): Remove call to ref_contains_indirect_ref. * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Rename calls to ref_contains_indirect_ref. From-SVN: r106499
2005-11-03re PR tree-optimization/24351 (ICE in do_simple_structure_copy with some C++ ↵Daniel Berlin1-15/+79
code) 2005-11-03 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/24351 * tree-ssa-structalias.c (struct variable_info): Add collapsed_into. (get_varinfo_fc): New function to follow collapsing. (new_var_info): Set collapsed_to to NULL. (dump_constraint): Follow collapsing. (build_constraint_graph): Handle collapsing. (do_simple_structure_copy): Return false if something bad happened. (collapse_rest_of_var): New function. (do_structure_copy): Collapse if do_simple_structure_copy returns false. From-SVN: r106437
2005-10-06tree-ssa-structalias.c (check_for_overlaps): Fix bug in last change.Daniel Berlin1-1/+1
2005-10-06 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last change. From-SVN: r105059
2005-10-06re PR c++/22488 (C++ frontend generates RECORD_TYPEs with overlapping ↵Daniel Berlin1-2/+30
FIELD_DECLs) 2005-10-06 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/22488 * tree-ssa-structalias.c (check_for_overlaps): New function. (create_variable_info_for): Use it. From-SVN: r105052
2005-09-29re PR tree-optimization/24117 (struct is not marked fully as call clobbered)Daniel Berlin1-2/+4
2005-09-29 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/24117 * tree-ssa-structalias.c (find_func_aliases): Strip nops before considering whether to use anyoffset. From-SVN: r104791
2005-09-22tree-data-ref.c (analyze_array_indexes): Only estimate when estimate_only is ↵Daniel Berlin1-23/+6
true. 2005-09-20 Daniel Berlin <dberlin@dberlin.org> * tree-data-ref.c (analyze_array_indexes): Only estimate when estimate_only is true. * tree-flow.h (ref_contains_indirect_ref): New prototype. * tree-flow-inline.h (ref_contains_indirect_ref): Moved from tree-ssa-structalias.c * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use ref_contains_indirect_ref. * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved. From-SVN: r104518
2005-09-21tree-ssa-structalias.c (get_constraint_for_component_ref): Add argument.Daniel Berlin1-19/+25
2005-09-20 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-structalias.c (get_constraint_for_component_ref): Add argument. Allow and set any offset if needs_anyoffset is passed in. (get_constraint_for): Add argument here too. Pass it down. (do_structure_copy): Pass NULL to get_constraint_for. (handle_ptr_arith): Ditto. (find_func_aliases): Ditto. From-SVN: r104476
2005-08-14re PR tree-optimization/22615 (ICE in first_vi_for_offset, at ↵Daniel Berlin1-4/+11
tree-ssa-structalias.c:2858) 2005-08-14 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/22615 * tree-ssa-structalias.c (solution_set_add): Handle first_vi_for_offset returning NULL. (do_da_constraint): Ditto. (do_sd_constraint): Ditto. (do_ds_constraint): Ditto (find_func_aliases): Ditto. (build_constraint_graph): RHS is allowed be ANYTHING. (first_vi_for_offset): Return NULL if we couldn't find anything at the offset. From-SVN: r103083
2005-08-06Makefile.in, [...]: Fix comment/doc typos.Kazu Hirata1-1/+1
* Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c, config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c, tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h, config/linux.h, config/alpha/alpha.h, config/alpha/linux.h, config/alpha/predicates.md, config/arc/arc.h, config/arm/arm.h, config/arm/ieee754-df.S, config/arm/ieee754-sf.S, config/bfin/bfin.c, config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c, config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h, config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/mips/mips.c, config/mips/mips.h, config/mips/openbsd.h, config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.h, config/rs6000/linux-unwind.h, config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c, config/sh/sh.c, config/sh/sh.h, config/sparc/linux.h, config/sparc/linux64.h, config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h, doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc typos. Follow spelling conventions. From-SVN: r102809
2005-07-27tree-ssa-structalias.c (push_fields_onto_fieldstack): Avoid pushing again if ↵Richard Guenther1-1/+4
current struct contains only fields we decomposed. 2005-07-27 Richard Guenther <rguenther@suse.de> * tree-ssa-structalias.c (push_fields_onto_fieldstack): Avoid pushing again if current struct contains only fields we decomposed. * gcc.dg/tree-ssa/salias-1.c: New testcase. From-SVN: r102424
2005-07-26calls.c, [...]: Fix comment typos.Kazu Hirata1-2/+2
* calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c, tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h, config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix comment typos. * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos. From-SVN: r102385
2005-07-22tree-ssa-alias.c (count_ptr_derefs): Do not consider &PTR->FLD a dereference ↵Diego Novillo1-2/+37
of PTR. * tree-ssa-alias.c (count_ptr_derefs): Do not consider &PTR->FLD a dereference of PTR. * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD a potential dereference of PTR. testsuite/ChangeLog * gcc.dg/tree-ssa/20050719-1.c: New test. From-SVN: r102283
2005-07-22tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised warnings.Manfred Hollstein1-0/+5
gcc/ChangeLog: * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised warnings. (int_add_graph_edge): Likewise. (collapse_nodes): Likewise. (process_unification_queue): Likewise. gcc/cp/ChangeLog: * parser.c (cp_parser_declaration): Fix unitialised warnings. gcc/fortran/ChangeLog: * match.c (gfc_match_symbol): Fix uninitialised warnings. * matchexp.c (gfc_match_expr): Likewise. gcc/java/ChangeLog: * verify-impl.c (check_class_constant): Fix uninitialised warnings. (check_constant): Likewise. (check_wide_constant): Likewise. From-SVN: r102273
2005-07-16tree-ssa-structalias.c (need_to_solve): Need to check for preds, too.Daniel Berlin1-1/+5
2005-07-16 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-structalias.c (need_to_solve): Need to check for preds, too. From-SVN: r102100
2005-07-15re PR tree-optimization/22376 (PTA is slow on a silly unrealistic test case)Daniel Berlin1-15/+50
2005-07-13 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/22376 * tree-ssa-structalias.c (build_constraint_graph): We really meant special var here. (need_to_solve): New function. (compute_points_to_sets): Use it. From-SVN: r102056
2005-07-13Missed part of commitDaniel Berlin1-3/+2
From-SVN: r101969
2005-07-13re PR tree-optimization/22422 (ICE in first_vi_for_offset, at ↵Daniel Berlin1-13/+34
tree-ssa-structalias.c:2843) 2005-07-12 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/22422 * tree-ssa-structalias.c (struct variable_info): Add flag for special vars. (get_varinfo): Now a static function. (new_varinfo): init has_union and is_special_var to false. (solution_set_add): Check has_union. (do_da_constraint): Move temporary variable so it gets reset properly. Also check for special variable. (do_ds_constraint): Ditto. (do_sd_constraint): Ditto. (do_structure_copy): Check for special variable. (find_func_aliases): Ditto. (init_base_vars): Set special vars properly. From-SVN: r101959
2005-07-11re PR tree-optimization/22404 (ICE in first_vi_for_offset)Daniel Berlin1-0/+1
2005-07-11 Daniel Berlin <dberlin@dberlin.org> * print-tree.c (print_node): Use DECL_ARGUMENT_FLD. * tree.h (DECL_ARGUMENT_FLD): New macro. 2005-07-11 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/22404 * tree-ssa-structalias.c (create_variable_info_for): Use correct offset. From-SVN: r101894
2005-07-11tree-ssa-structalias.c (struct variable_info): Heapify complex.Daniel Berlin1-47/+67
2005-07-07 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-structalias.c (struct variable_info): Heapify complex. (varmap): Heapify varmap. (constraints): Heapify constraints. (struct constraint_graph): Heapify succs and preds. (constraint_vec_find): Update for heapification. (constraint_set_union): Ditto. (insert_into_complex): Ditto. (constraint_edge_vec_find): Ditto. (erase_graph_self_edge): Ditto. (add_graph_edge): Ditto. (get_graph_weights): Ditto. (merge_graph_nodes): Ditto. (build_constraint_graph): Ditto. (topo_visit): Ditto. (solve_graph): Ditto. (create_variable_info_for): Ditto. (init_base_vars): Ditto. (delete_points_to_sets): Free graph, varmap, and complex constraints. (condese_varmap_nodes): Free complex vector. (clear_edges_for_node): Clear succs and preds vector. From-SVN: r101862
2005-07-11tree-ssa-structalias.c (update_alias_info): Change counting of references to ↵Daniel Berlin1-5/+16
not include vdefs. 2005-07-10 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-structalias.c (update_alias_info): Change counting of references to not include vdefs. From-SVN: r101861
2005-07-09Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.hDiego Novillo1-201/+449
* Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h * 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. From-SVN: r101841
2005-07-06Fix PR tree-optimization/22319 Fix PR tree-optimization/22140 Fix PR ↵Daniel Berlin1-5/+24
tree-optimization/22310 2005-07-06 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/22319 Fix PR tree-optimization/22140 Fix PR tree-optimization/22310 * tree-ssa-structalias.c (do_structure_copy): Give up earlier on variable sized types. Use correct type for intermediate structure on *a = *b structure copies. From-SVN: r101658
2005-07-05tree-ssa-structalias.c (get_constraint_exp_from_ssa_var): Only fall back to ↵Daniel Berlin1-3/+4
saying it points to readonly memory if we can't do better. 2005-07-04 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var): Only fall back to saying it points to readonly memory if we can't do better. From-SVN: r101625
2005-07-04* tree-ssa-structalias.c: Don't include expr.h.Diego Novillo1-1/+0
From-SVN: r101609
2005-07-04re PR tree-optimization/22279 (ICE in first_vi_for_offset, at ↵Daniel Berlin1-1/+1
tree-ssa-structalias.c:2566) 2005-07-04 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/22279 * tree-ssa-structalias.c (offset_overlaps_with_access): Use correct operator. From-SVN: r101603
2005-07-01re PR tree-optimization/22071 (ICE in first_vi_for_offset, at ↵Daniel Berlin1-2/+40
tree-ssa-structalias.c:2506) 2005-06-29 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/22071 * tree-ssa-structalias.c (offset_overlaps_with_access): New function. (get_constraint_for_component_ref): Use it. From-SVN: r101516
2005-06-30[multiple changes]Daniel Berlin1-2/+2
2005-06-29 Daniel Berlin <dberlin@dberlin.org> * tree-complex.c (complex_variable_components): Now a hashtable. (cvc_lookup): Ditto. (cvc_insert): Ditto. (create_components): Use referenced var iterator. Initialize hashtable. Use cvc_insert/lookup. (extract_components): Use cvc_insert/lookup. (update_complex_components): Ditto. (update_complex_components_on_edge): Ditto. * tree-dfa.c (referenced_vars): Now a hashtable. (dump_referenced_vars): Use iterator. (referenced_var_lookup): New function. (referenced_var_insert): Ditto. (add_referenced_var): Use referenced_var_insert. (mark_new_vars_to_rename): Use DECL_UID. * tree-flow-inline.h (first_htab_element): New function. (end_htab_p): Ditto. (next_htab_element): Ditto. (first_referenced_var): Ditto. (end_referenced_vars_p): Ditto. (next_referenced_var): Ditto. (is_call_clobbered): Use DECL_UID. (mark_call_clobbered): Ditto. (clear_call_clobbered): Ditto. (mark_non_addressable): Ditto. * tree-flow.h (htab_iterator): New struct. (FOR_EACH_HTAB_ELEMENT): New macro. (struct int_tree_map): New struct. (int_tree_map_hash): Prototype. (int_tree_map_eq): Ditto. (referenced_var_iterator): Ditto. (FOR_EACH_REFERENCED_VAR): New macro. (referenced_vars): Now a hashtable. * tree-into-ssa.c (symbol_marked_for_renaming): Use DECL_UID. (add_new_name_mapping): Ditto. (mark_def_sites): Ditto. (insert_phi_nodes): Use referenced_var iterator. (mark_def_site_blocks): Ditto. (mark_sym_for_renaming): Use DECL_UID. * tree-sra.c (is_sra_candidate_decl): Use DECL_UID. (lookup_element): Ditto. (find_candidates_for_sra): Use referenced_vars iterator. Use DECL_UID. * tree-ssa-alias.c (NUM_REFERENCES): New macro. (NUM_REFERENCES_CLEAR): Ditto. (NUM_REFERENCES_INC): Ditto. (NUM_REFERENCES_SET): Ditto. (alias_obstack): New bitmap obstack. (struct alias_map_d): Use bitmap, not sbitmap. (struct alias_info): Remove num_references. (init_alias_info): Use referenced_var iterator. Initialize bitmap obstack. (delete_alias_info): Use referenced_var iterator. Free bitmap obstack. (compute_points_to_and_addr_escape): Use DECL_UID. Use new NUM_REFERENCES macros. (compute_flow_sensitive_aliasing): may_aliases is now a bitmap. Use new NUM_REFERENCES macros. (group_aliases_into): Update prototype to use bitmap. (setup_pointers_and_addressables): Use referenced_vars iterator. Use DECL_UID. Use new NUM_REFERENCES macros. (add_pointed_to_var): Use DECL_UID. (dump_alias_info): Use referenced_var iterator. (add_type_alias): Ditto. (used_portions): Now a hashtable. (used_part_map_eq): New function. (used_part_map_hash): Ditto. (free_used_part_map): Ditto. (up_lookup): Ditto. (up_insert): Ditto. (get_or_create_used_part_for): Use up_lookup. (create_overlap_variables_for): Ditto. (find_used_portions): Use up_insert. Use DECL_UID. (create_structure_vars): Init used_portions hashtable, use referenced_vars iterator. * tree-ssa-live.c (create_ssa_var_map): sbitmaps became bitmaps. Use DECL_UID. * tree-ssa-loop-im.c (gather_mem_refs_stmt): Use DECL_UID. * tree-ssa-operands.c (get_asm_expr_operands): Ditto. (note_addressable): Ditto. * tree-ssa-structalias.c (set_uids_in_ptset): Ditto. * tree-ssa.c (verify_flow_insensitive_alias_info): Use referenced_var iterator. Use DECL_UID. (delete_tree_ssa): Ditto. (int_tree_map_eq): New function. (int_tree_map_hash): Ditto. * tree-stdarg.c (find_va_list_reference): Use DECL_UID. (va_list_ptr_read): Ditto. (va_list_counter_struct_op): Ditto. (va_list_ptr_write): Ditto. (check_va_list_escapes): Ditto. (check_all_va_list_escapes): Ditto. (execute_optimize_stdarg): Ditto. * tree-tailcall.c (suitable_for_tail_opt_p): Used referenced_var iterator. 2005-06-30 Daniel Berlin <dberlin@dberlin.org> * hashtab.h (HTAB_DELETED_ENTRY): New macro. (HTAB_EMPTY_ENTRY): New macro. 2005-06-30 Daniel Berlin <dberlin@dberlin.org> * hashtab.c (EMPTY_ENTRY): Moved and renamed. (DELETED_ENTRY): Ditto. From-SVN: r101480
2005-06-30re PR middle-end/22247 (tree-ssa-structalias.c: `uint' undeclared)Francois-Xavier Coudert1-25/+25
PR middle-end/22247 * tree-ssa-structalias.c (build_constraint_graph, scc_visit, process_unification_queue, init_topo_info, topo_visit, init_scc_info, free_scc_info, perform_var_substitution, solve_graph): Use unsigned instead of uint. From-SVN: r101475
2005-06-25Update FSF address.Kelley Cook1-1/+1
From-SVN: r101317
2005-06-21c-typeck.c (build_function_call): Set fundecl = function again.Daniel Berlin1-18/+46
2005-06-20 Daniel Berlin <dberlin@dberlin.org> * c-typeck.c (build_function_call): Set fundecl = function again. * tree-ssa-alias.c (find_used_portions): Address taking causes the entire variable to be used. * tree-ssa-structalias.c (do_structure_copy): Fix handling of unknown size variables, and structure copies from addressof operations. Simplify how we do *a = *b type structure copies. (init_base_vars): Add ANYTHING = &ANYTHING constraint the right way. READONLY's address is not taken by default. INTEGER dereference should point to anything. (create_variable_info_for): It's okay for the first field to not start at 0. From-SVN: r101227
2005-06-15tree-ssa-structalias.c (dump_solution_for_var): Reformat output.Diego Novillo1-10/+26
* tree-ssa-structalias.c (dump_solution_for_var): Reformat 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. From-SVN: r100987
2005-06-12cgraphunit.c, [...]: Fix comment typos.Kazu Hirata1-6/+6
* cgraphunit.c, tree-ssa-loop-ivopts.c, tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h, config/sparc/sparc.c: Fix comment typos. From-SVN: r100856
2005-06-12Fix PR tree-optimization/22005 Fix PR tree-optimization/22025Daniel Berlin1-11/+39
2005-06-11 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/22005 Fix PR tree-optimization/22025 * tree-ssa-structalias.c (struct variable_info): Add has_union member. (create_variable_info_for): Mark variables containing unions. Don't sort the field stack if notokay is true. (find_what_p_points_to): Convert variables containing unions back to their SFT's if necessary. From-SVN: r100851
2005-06-09Makefile.in (OBJS-common): Add tree-ssa-structalias.o.Daniel Berlin1-0/+3165
2005-06-08 Daniel Berlin <dberlin@dberlin.org> * 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. From-SVN: r100800