summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-alias.c
Commit message (Collapse)AuthorAgeFilesLines
* Update Copyright years for files modified in 2008 and/or 2009.jakub2009-02-201-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144324 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-01-26 Richard Guenther <rguenther@suse.de>rguenth2009-01-261-0/+2
| | | | | | | | | PR tree-optimization/38745 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL from special handling. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143676 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-01-26 Richard Guenther <rguenther@suse.de>rguenth2009-01-261-0/+16
| | | | | | | | | | | | | | | PR tree-optimization/38745 * tree-ssa.c (execute_update_addresses_taken): Do not include variables that cannot possibly be a register in not_reg_needs. Do not clear TREE_ADDRESSABLE on vars that may not become registers. * tree-ssa.c (update_alias_info_1): Include those in the set of addressable vars. * g++.dg/torture/pr38745.C: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143673 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-12-04 Richard Guenther <rguenther@suse.de>rguenth2008-12-041-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | PR middle-end/36509 PR c++/38334 * Makefile.in (tree-ssa-alias-warnings.o): Remove. (tree-ssa-structalias.o): Remove errors.h dependency. (tree-ssa-reassoc.o): Likewise. * tree-ssa-reassoc.c: Do not include errors.h. * tree-ssa-alias-warnings.c: Remove. * tree-ssa-alias.c (compute_may_aliases): Remove call to strict_aliasing_warning_backend. * tree-ssa-structalias.c (emit_pointer_definition): New function. (emit_alias_warning): Likewise. (set_uids_in_ptset): Warn for clear cases of type-punning. * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING on INDIRECT_REFs. cp/ * typeck.c (get_member_function_from_ptrfunc): Mark the vtbl pointer access with TREE_NO_WARNING. * gcc.dg/Wstrict-aliasing-float-ptr-int-obj.c: Adjust, remove XFAIL. * gcc.dg/Wstrict-aliasing-converted-assigned.c: Adjust. * g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142437 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-11-25 Richard Guenther <rguenther@suse.de>rguenth2008-11-251-56/+34
| | | | | | | | | | | | | | | | | | | | | | | PR middle-end/38151 PR middle-end/38236 * tree-ssa-alias.c (struct alias_info): Remove written_vars. Remove dereferenced_ptrs_store and dereferenced_ptrs_load in favor of dereferenced_ptrs. (init_alias_info): Adjust. (delete_alias_info): Likewise. (compute_flow_insensitive_aliasing): Properly include all aliased variables. (update_alias_info_1): Use dereferenced_ptrs. (setup_pointers_and_addressables): Likewise. (get_smt_for): Honor ref-all pointers and pointers with known alias set properly. * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers. * gcc.c-torture/execute/pr38151.c: New testcase. * gcc.c-torture/execute/pr38236.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142189 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-11-15 Richard Guenther <rguenther@suse.de>rguenth2008-11-151-15/+20
| | | | | | | | | | | PR tree-optimization/38051 * tree-ssa-alias.c (update_alias_info_1): Manually find written variables. * gcc.c-torture/execute/pr38051.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141887 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-10-19 Richard Guenther <rguenther@suse.de>rguenth2008-10-191-10/+0
| | | | | | | * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141229 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_releasejakub2008-09-151-1/+3
| | | | | | | | in every call starting with the second one, instead of only when alias_bitmap_obstack.elements != NULL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140377 138bc75d-0d04-0410-961f-82ee72b054a4
* ./:ian2008-09-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND or REG_LABEL_TARGET. * calls.c (emit_library_call_value_1): Use MEM_P rather than comparing MODE with MEM. * gimple.c (gimple_build_predict): Cast END_PREDICTORS before comparing with GF_PREDICT_TAKEN. (gimple_get_lhs): Change code to enum gimple_code. (gimple_set_lhs): Likewise. * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE. * omp-low.c (find_omp_clause): Change kind parameter to enum omp_clause_code. * tree-flow.h (find_omp_clause): Update declaration. * regrename.c (clear_dead_regs): Change kind parameter to enum reg_note. * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than GET_MODE. * see.c (see_get_extension_data): Change return type to enum entry_type. Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF. (see_gen_normalized_extension): Change extension_code parameter to enum entry_type. (see_seek_pre_extension_expr): Change extension_code to enum entry_type. (see_merge_one_def_extension): Likewise. (see_handle_relevant_defs): Likewise. (see_handle_relevant_uses): Likewise. (see_analyze_one_def): Likewise. * tree-cfg.c (need_fake_edge_p): Compare gimple code with GIMPLE_ASM rather than ASM_EXPR. * tree-ssa-alias.c (is_escape_site): Compare gimple code with GIMPLE_RETURN rather than RETURN_EXPR. * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code. (evaluate_stmt): Likewise. * tree-vect-analyze.c (vect_analyze_operations): Change relevance to enum vect_relevant. (vect_mark_stmts_to_be_vectorized): Change assertion to not compare gimple codes with tree codes. cp/: * parser.c (check_no_duplicate_clause): Change code parameter to enum omp_clause_code. fortran/: * symbol.c (generate_isocbinding_symbol): Compare gfc_notification_std with ERROR rather than FAILURE. * resolve.c (check_assumed_size_reference): Compare array type with AR_FULL rather than DIMEN_ELEMENT. (resolve_actual_arglist): Compare with EXPR_VARIABLE rather than FL_VARIABLE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139991 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-07-28 Richard Guenther <rguenther@suse.de>rguenth2008-07-281-113/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge from gimple-tuples-branch. * ChangeLog.tuples: ChangeLog from gimple-tuples-branch. * gimple.def: New file. * gsstruct.def: Likewise. * gimple-iterator.c: Likewise. * gimple-pretty-print.c: Likewise. * tree-gimple.c: Removed. Merged into ... * gimple.c: ... here. New file. * tree-gimple.h: Removed. Merged into ... * gimple.h: ... here. New file. * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h. * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the --enable-checking=gimple flag. * config.in: Likewise. * configure: Regenerated. * tree-ssa-operands.h: Tuplified. * tree-vrp.c: Likewise. * tree-loop-linear.c: Likewise. * tree-into-ssa.c: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-dump.c: Likewise. * tree-complex.c: Likewise. * cgraphbuild.c: Likewise. * tree-ssa-threadupdate.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-pretty-print.c: Likewise. * tracer.c: Likewise. * gengtype.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-ssa-loop-unswitch.c: Likewise. * cgraph.c: Likewise. * cgraph.h: Likewise. * tree-ssa-loop-manip.c: Likewise. * value-prof.c: Likewise. * tree-ssa-loop-ch.c: Likewise. * tree-tailcall.c: Likewise. * value-prof.h: Likewise. * tree.c: Likewise. * tree.h: Likewise. * tree-pass.h: Likewise. * ipa-cp.c: Likewise. * tree-scalar-evolution.c: Likewise. * tree-scalar-evolution.h: Likewise. * target.h: Likewise. * lambda-mat.c: Likewise. * tree-phinodes.c: Likewise. * diagnostic.h: Likewise. * builtins.c: Likewise. * tree-ssa-alias-warnings.c: Likewise. * cfghooks.c: Likewise. * fold-const.c: Likewise. * cfghooks.h: Likewise. * omp-low.c: Likewise. * tree-ssa-dse.c: Likewise. * ipa-reference.c: Likewise. * tree-ssa-uncprop.c: Likewise. * toplev.c: Likewise. * tree-gimple.c: Likewise. * tree-gimple.h: Likewise. * tree-chrec.c: Likewise. * tree-chrec.h: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-sccvn.h: Likewise. * cgraphunit.c: Likewise. * tree-ssa-copyrename.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-loop-ivopts.c: Likewise. * tree-nomudflap.c: Likewise. * tree-call-cdce.c: Likewise. * ipa-pure-const.c: Likewise. * c-format.c: Likewise. * tree-stdarg.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-dom.c: Likewise. * tree-nrv.c: Likewise. * tree-ssa-propagate.c: Likewise. * ipa-utils.c: Likewise. * tree-ssa-propagate.h: Likewise. * tree-ssa-alias.c: Likewise. * gimple-low.c: Likewise. * tree-ssa-sink.c: Likewise. * ipa-inline.c: Likewise. * c-semantics.c: Likewise. * dwarf2out.c: Likewise. * expr.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * predict.c: Likewise. * tree-ssa-loop.c: Likewise. * tree-parloops.c: Likewise. * tree-ssa-address.c: Likewise. * tree-ssa-ifcombine.c: Likewise. * matrix-reorg.c: Likewise. * c-decl.c: Likewise. * tree-eh.c: Likewise. * c-pretty-print.c: Likewise. * lambda-trans.c: Likewise. * function.c: Likewise. * langhooks.c: Likewise. * ebitmap.h: Likewise. * tree-vectorizer.c: Likewise. * function.h: Likewise. * langhooks.h: Likewise. * tree-vectorizer.h: Likewise. * ipa-type-escape.c: Likewise. * ipa-type-escape.h: Likewise. * domwalk.c: Likewise. * tree-if-conv.c: Likewise. * profile.c: Likewise. * domwalk.h: Likewise. * tree-data-ref.c: Likewise. * tree-data-ref.h: Likewise. * tree-flow-inline.h: Likewise. * tree-affine.c: Likewise. * tree-vect-analyze.c: Likewise. * c-typeck.c: Likewise. * gimplify.c: Likewise. * coretypes.h: Likewise. * tree-ssa-phiopt.c: Likewise. * calls.c: Likewise. * tree-ssa-coalesce.c: Likewise. * tree.def: Likewise. * tree-dfa.c: Likewise. * except.c: Likewise. * except.h: Likewise. * cfgexpand.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-live.c: Likewise. * tree-sra.c: Likewise. * tree-ssa-live.h: Likewise. * tree-predcom.c: Likewise. * lambda.h: Likewise. * tree-mudflap.c: Likewise. * ipa-prop.c: Likewise. * print-tree.c: Likewise. * tree-ssa-copy.c: Likewise. * ipa-prop.h: Likewise. * tree-ssa-forwprop.c: Likewise. * ggc-page.c: Likewise. * c-omp.c: Likewise. * tree-ssa-dce.c: Likewise. * tree-vect-patterns.c: Likewise. * tree-ssa-ter.c: Likewise. * tree-nested.c: Likewise. * tree-ssa.c: Likewise. * lambda-code.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-inline.c: Likewise. * tree-inline.h: Likewise. * tree-iterator.c: Likewise. * tree-optimize.c: Likewise. * tree-ssa-phiprop.c: Likewise. * tree-vect-transform.c: Likewise. * tree-object-size.c: Likewise. * tree-outof-ssa.c: Likewise. * cfgloop.c: Likewise. * system.h: Likewise. * tree-profile.c: Likewise. * cfgloop.h: Likewise. * c-gimplify.c: Likewise. * c-common.c: Likewise. * tree-vect-generic.c: Likewise. * tree-flow.h: Likewise. * c-common.h: Likewise. * basic-block.h: Likewise. * tree-ssa-structalias.c: Likewise. * tree-switch-conversion.c: Likewise. * tree-ssa-structalias.h: Likewise. * tree-cfg.c: Likewise. * passes.c: Likewise. * ipa-struct-reorg.c: Likewise. * ipa-struct-reorg.h: Likewise. * tree-ssa-reassoc.c: Likewise. * cfgrtl.c: Likewise. * varpool.c: Likewise. * stmt.c: Likewise. * tree-ssanames.c: Likewise. * tree-ssa-threadedge.c: Likewise. * langhooks-def.h: Likewise. * tree-ssa-operands.c: Likewise. * config/alpha/alpha.c: Likewise. * config/frv/frv.c: Likewise. * config/s390/s390.c: Likewise. * config/m32c/m32c.c: Likewise. * config/m32c/m32c-protos.h: Likewise. * config/spu/spu.c: Likewise. * config/sparc/sparc.c: Likewise. * config/i386/i386.c: Likewise. * config/sh/sh.c: Likewise. * config/xtensa/xtensa.c: Likewise. * config/stormy16/stormy16.c: Likewise. * config/ia64/ia64.c: Likewise. * config/rs6000/rs6000.c: Likewise. * config/pa/pa.c: Likewise. * config/mips/mips.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138207 138bc75d-0d04-0410-961f-82ee72b054a4
* * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.hubicka2008-07-251-11/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (build_cgraph_edges): Likewise. * cgraph.c (cgraph_node): Do not update assembler hash. (cgraph_remove_node): Drop non-unit-at-a-time code. * tree-pass.h (pass_O0_always_inline): Remove. * ipa-reference.c (gate_reference): Remove unit-at-a-time check. * toplev.c (process_options): Flag unit-at-a-time does not imply no section anchors. * cgraphunit.c: Update comments. (decide_is_function_needed): Drop non-unit-at-a-time mode. (cgraph_assemble_pending_functions): Remove. (cgraph_reset_node): Drop non-unit-at-a-time code. (cgraph_finalize_function): Likewise. (cgraph_analyze_function): Likewise. (cgraph_finalize_compilation_unit): Likewise. (cgraph_expand_function): Likewise. (cgraph_optimize): Likesise. (save_inline_function_body): Likewise. * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check. * tree-ssa-alias.c (maybe_be_aliased): Likewise. * ipa-inline.c: Update comments. (enum inlining_mode): remove INLINE_SPEED. (cgraph_clone_inlined_nodes): Drop unit-at-a-time check. (cgraph_mark_inline_edge): Likewise. (try_inline): Likewise. (cgraph_decide_inlining_incrementally): Likewise. (cgraph_gate_inlining): Remove. (cgraph_early_inlining): Remove flag_unit_at_a_time checks. (cgraph_gate_early_inlining): Likewise. (gate_inline_passes): Remove. (pass_inline_parameters, pass_ipa_inline): Remove gates. (cgraph_gate_O0_always_inline, cgraph_O0_always_inline, pass_O0_always_inline): Remove. * c-pch.c (c_pch_matching): Remove -funit-at-a-time. * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check. * opts.c (no_unit_at_a_time_default): Remove. (decode_options): Remove flag_unit_at_a_time reset and warning. * opts.h (no_unit_at_a_time_default): Remove. * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword early in GNU dialect. (merge_decls): Update comment; drop unit-at-a-time check. (finish_decl): Likewise. (grok_declaration): Remove flag_inline_trees code. (finish_functions): Return on function returning non-void on all statics. * ipa-tye-escape.c (gate_type_escape_vars): Remove. * cfgexpand.c (expand_one_static_var): Remove. (expand_one_var): Remove expand_one_static_var call. (expand_used_vars_for_block): Remove flag_unit_a_time check. * c-opts.c (c_common_post_options): Remove flag_inline_trees code and flag_unit_at_a-time compatibility checks. * varasm.c (assemble_alias): Remove flag_unit_at_a_time check. * tree-inline.c (flag_inline_trees): Remove. (inlinable_function_p): Don't check it. (expand_call_inline): Remove non-unit-at-a-time code. * tree-inline.h (flag_inline_trees): Remove. * tree-optimize.c (execute_early_local_optimizations): Remove unit-at-a-time checks. (tree_rest_of_compilation): Likewise. * combine.c (setup_incoming_promotions): Likewise. * tree-profile.c (tree_gen_ic_func_profiler): Likewise. * tree-ssa-structalias.c (delete_points_to_sets): Likewise. * passes.c (pass_inline_parameters): Update comments; remove O0_alwaysinline pass. (execute_one_ipa_transform_pass): Do not reset in_gimple_form. (execute_one_pass): Likewise. * i386.c (ix86_function_regparm): Remove unit-at-a-time check. (ix86_function_sseregparm): Likewise. * arm.c (arm_function_in_section_p): Likewise. * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise. * varpool.c: Update comments. (decide_is_variable_needed): Remove unit-at-a-time checks. (varpool_finalize_decl): Likewise. * ada/utils.c (end_subprog_body): Remove inline trees check. * ada/misc.c (gnat_post_options): Do not set flag_inline_trees. * fortran/options.c (gfc_post_options): Remove flag_unline_trees code. * gcc.dg/winline-4.c: Remove. * gcc.dg/pch/valid-3.hs: Remove. * gcc.dg/pch/valid-3.c: Remove. * g++.old-deja/g++.brendan/crash52.C: Accept returning void warning * g++.old-deja/g++.jason/report.C: Likewise. * testsuite/g++.dg/warn/pr23075.C: We get returning void warning instead of control flow warning. * cp/decl.c (duplicate_decls): Update comment and unit-at-a-time. (grogfndecl): Drop flag_inline_trees code. * cp/pt.c (instantiate_decl): Drop flag_iline_trees code. * cp/lex.c (cxx_init): Do not set unit-at-a-time. * java/decl.c: Include cgraph.h (end_java_method): Remove non-unit-at-a-time code. (java_mark_decl_local): Likewise; sanity check that we don't touch finalized nodes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138140 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-07-11 Richard Guenther <rguenther@suse.de>rguenth2008-07-111-0/+20
| | | | | | | | | | | PR tree-optimization/36765 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add aliases from HEAP vars to SMTs. * gcc.c-torture/execute/pr36765.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137715 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-07-07 Richard Guenther <rguenther@suse.de>rguenth2008-07-071-1/+0
| | | | | | | | | | | * tree-ssa-structalias.h (set_used_smts): Remove. * tree-ssa-structalias.c (used_smts): Likewise. (set_used_smts): Likewise. * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove call to set_used_smts. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137574 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-06-29 Richard Guenther <rguenther@suse.de>rguenth2008-06-291-1/+305
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-ssa-structalias.h (compute_points_to_sets): Adjust prototype. (struct alias_info): Move ... * tree-ssa-alias.c: ... here. (update_alias_info): Declare. (compute_may_aliases): Call it. (update_alias_info): New function. * tree-ssa-structalias.c (update_alias_info): Move ... * tree-ssa-alias.c (update_alias_info_1): ... here. * tree-ssa-structalias.c (process_constraint_1): Remove unused from_call argument. Rename to ... (process_constraint): ... this. Delete old wrapper. (make_constraint_to): Adjust callers. (handle_const_call): Likewise. (handle_pure_call): Likewise. (init_base_vars): Likewise. (handle_lhs_call): Likewise. Remove unnecessary constraint. (find_func_aliases): We don't need structure copies for complex types. (make_constraint_from_anything): Remove. (create_variable_info_for): For globals make constraints from escaped, not from anything. (compute_points_to_sets): Do not call update_alias_info. (ipa_pta_execute): Use make_constraint_from. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137252 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-06-28 Richard Guenther <rguenther@suse.de>rguenth2008-06-281-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-ssa-structalias.c (callused_id, var_callused, callused_tree): Add. (handle_pure_call): New function. (find_func_aliases): Call it. (find_what_p_points_to): Handle the call-used set. (clobber_what_escaped): Likewise. (compute_call_used_vars): New function. (init_base_vars): Init the call-used variable. (do_sd_constraint): Do not propagate the solution from CALLUSED but use CALLUSED as a placeholder. (solve_graph): Likewise. * tree-flow-inline.h (gimple_call_used_vars): New function. * tree-flow.h (struct gimple_df): Add call_used_vars bitmap. (compute_call_used_vars): Declare. * tree-ssa-alias.c (set_initial_properties): Call compute_call_used_vars. (reset_alias_info): Clear call-used variables. (add_call_clobber_ops): Assert we are not called for const/pure functions. Remove handling of them. (add_call_read_ops): Handle pure functions by adding the call-used set of variables as VUSEs. * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap. (delete_tree_ssa): Free it. * tree-dfa.c (remove_referenced_var): Clear the var from the call-used bitmap. * gcc.dg/tree-ssa/pr24287.c: Remove XFAIL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137222 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-06-27 Richard Guenther <rguenther@suse.de>rguenth2008-06-271-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR tree-optimization/36400 PR tree-optimization/36373 PR tree-optimization/36344 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id, var_nonlocal, nonlocal_tree, nonlocal_id): New globals (update_alias_info): Remove call clobbering code. (make_constraint_to): New helper function. (make_escape_constraint): Likewise. (handle_rhs_call): Use it on all pointer containing arguments. Also mark the static chain escaped. (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED instead of ANYTHING. (make_constraint_from): New helper split out from ... (make_constraint_from_anything): ... here. (find_func_aliases): Add constraints for escape sites. (intra_create_variable_infos): Make constraints from NONLOCAL for parameters. (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same as ANYTHING. (clobber_what_p_points_to): Remove. (clobber_what_escaped): New function. (init_base_vars): Init NONLOCAL and ESCAPED. (do_sd_constraint): Do not propagate the solution from ESCAPED but use ESCAPED as a placeholder. (solve_graph): Likewise. * tree-flow.h (clobber_what_p_points_to): Remove. (clobber_what_escaped): Declare. * tree-ssa-alias.c (set_initial_properties): Call it. Remove code clobbering escaped pointers. * gcc.dg/torture/pr36373-1.c: New testcase. * gcc.dg/torture/pr36373-2.c: Likewise. * gcc.dg/torture/pr36373-3.c: Likewise. * gcc.dg/torture/pr36373-4.c: Likewise. * gcc.dg/torture/pr36373-5.c: Likewise. * gcc.dg/torture/pr36373-6.c: Likewise. * gcc.dg/torture/pr36373-7.c: Likewise. * gcc.dg/torture/pr36373-8.c: Likewise. * gcc.dg/torture/pr36373-9.c: Likewise. * gcc.dg/torture/pr36373-10.c: Likewise. * gcc.dg/torture/pr36400.c: Likewise. * gcc.c-torture/execute/pta-field-1.c: Likewise. * gcc.c-torture/execute/pta-field-2.c: Likewise. * gcc.dg/tree-ssa/loadpre8.c: Remove XFAIL. * gcc.dg/tree-ssa/pr24287.c: XFAIL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137197 138bc75d-0d04-0410-961f-82ee72b054a4
* * ggc.h (GGC_RESIZEVAR): New, reorder macros.ghazi2008-06-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tracer.c (tail_duplicate): Fix for -Wc++-compat. * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise. * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name, move_stmt_r, new_label_mapper): Likewise. * tree-complex.c (cvc_lookup): Likewise. * tree-dfa.c (create_function_ann): Likewise. * tree-dump.c (dump_register): Likewise. * tree-if-conv.c (tree_if_conversion, add_to_predicate_list, find_phi_replacement_condition): Likewise. * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1, tree_function_versioning): Likewise. * tree-into-ssa.c (cmp_dfsnum): Likewise. * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise. * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl, get_nonlocal_debug_decl, convert_nonlocal_reference, convert_nonlocal_omp_clauses, get_local_debug_decl, convert_local_reference, convert_local_omp_clauses, convert_nl_goto_reference, convert_nl_goto_receiver, convert_tramp_reference, convert_call_expr): Likewise. * tree-outof-ssa.c (contains_tree_r): Likewise. * tree-parloops.c (reduction_phi, initialize_reductions, eliminate_local_variables_1, add_field_for_reduction, add_field_for_name, create_phi_for_local_result, create_call_for_reduction_1, create_loads_for_reductions, create_stores_for_reduction, create_loads_and_stores_for_name): Likewise. * tree-phinodes.c (allocate_phi_node): Likewise. * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise. * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise. * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise. * tree-ssa-coalesce.c (compare_pairs): Likewise. * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq, memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores): Likewise. * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference, vn_nary_op_insert): Likewise. * tree-ssa.c (redirect_edge_var_map_add, redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise. * tree-vectorizer.c (vectorize_loops): Likewise. * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide, build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat, build1_stat, build_variant_type_copy, decl_init_priority_lookup, decl_fini_priority_lookup, decl_priority_info, decl_restrict_base_lookup, decl_restrict_base_insert, decl_debug_expr_lookup, decl_debug_expr_insert, decl_value_expr_lookup, decl_value_expr_insert, type_hash_eq, type_hash_lookup, type_hash_add, get_file_function_name, tree_check_failed, tree_not_check_failed, tree_range_check_failed, omp_clause_range_check_failed, build_omp_clause, build_vl_exp_stat): Likewise. * value-prof.c (gimple_histogram_value, gimple_duplicate_stmt_histograms): Likewise. * var-tracking.c (attrs_list_insert, attrs_list_copy, unshare_variable, variable_union_info_cmp_pos, variable_union, dataflow_set_different_1, dataflow_set_different_2, vt_find_locations, variable_was_changed, set_variable_part, emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise. * varasm.c (prefix_name, emutls_decl, section_entry_eq, section_entry_hash, object_block_entry_eq, object_block_entry_hash, create_block_symbol, initialize_cold_section_name, default_function_rodata_section, strip_reg_name, set_user_assembler_name, const_desc_eq, build_constant_desc, output_constant_def, lookup_constant_def, const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1, create_constant_pool, force_const_mem, compute_reloc_for_rtx_1, default_internal_label): Likewise. * varray.c (varray_init, varray_grow): Likewise. * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136992 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-06-12 Richard Guenther <rguenther@suse.de>rguenth2008-06-121-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR tree-optimization/36345 * tree-flow.h (struct ptr_info_def): Align escape_mask, add memory_tag_needed flag. (may_alias_p): Declare. * tree-ssa-alias.c (may_alias_p): Export. (set_initial_properties): Use memory_tag_needed flag. (update_reference_counts): Likewise. (reset_alias_info): Reset memory_tag_needed flag. (create_name_tags): Check memory_tag_needed flag. (dump_points_to_info_for): Dump it. * tree-ssa-structalias.c (struct variable_info): Remove directly_dereferenced flag. (new_var_info): Do not initialize it. (process_constraint_1): Do not set it. (update_alias_info): Set is_dereferenced flag. (set_uids_in_ptset): Use may_alias_p. (set_used_smts): Check memory_tag_needed flag. (find_what_p_points_to): Likewise. Pass is_dereferenced flag. * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check memory_tag_needed flag. * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover from broken design. * gcc.c-torture/execute/20020619-1.c: Remove broken part of the testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136695 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-06-11 Richard Guenther <rguenther@suse.de>rguenth2008-06-111-0/+17
| | | | | | | | | * tree-flow.h (may_point_to_global_var): Declare. * tree-ssa-alias.c (may_point_to_global_var): New function. * tree-ssa-sink.c (is_hidden_global_store): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136657 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-06-04 Richard Guenther <rguenther@suse.de>rguenth2008-06-041-21/+11
| | | | | | | | | | | | | | | | | * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs. (is_call_clobbered): Always check var_ann->call_clobbered. (mark_call_clobbered): Always set var_ann->call_clobbered. (clear_call_clobbered): Always clear var_ann->call_clobbered. * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered. (reset_alias_info): Clear call clobbering info on MTAGs and globals as well. (set_pt_anything): Set pt_global_mem. (create_tag_raw): Adjust comment. (may_be_aliased): Do not check TREE_PUBLIC on MTAGs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136360 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-05-29 Richard Guenther <rguenther@suse.de>rguenth2008-05-291-20/+15
| | | | | | | | | | | | | | | | | | | PR tree-optimization/36343 PR tree-optimization/36346 PR tree-optimization/36347 * tree-flow.h (clobber_what_p_points_to): Declare. * tree-ssa-structalias.c (set_uids_in_ptset): Whether the pointed-to variable is dereferenced is irrelevant to whether the pointer can access the pointed-to variable. (clobber_what_p_points_to): New function. * tree-ssa-alias.c (set_initial_properties): Use it. * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust call clobber check for NMTs. * gcc.c-torture/execute/pr36343.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136152 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-05-28 Richard Guenther <rguenther@suse.de>rguenth2008-05-281-13/+19
| | | | | | | | | PR tree-optimization/36339 * tree-ssa-alias.c (set_initial_properties): Move pt_anything and clobbering code out of the loop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136100 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-05-27 Richard Guenther <rguenther@suse.de>rguenth2008-05-271-0/+16
| | | | | | | | | | | | PR tree-optimization/36339 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything pointers cause all addressable variables to be call clobbered. * gcc.c-torture/execute/pr36339.c: New testcase. * gcc.dg/tree-ssa/loadpre8.c: XFAIL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136030 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-05-15 Diego Novillo <dnovillo@google.com>dnovillo2008-05-151-5/+5
| | | | | | | | | | | | | | http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html * treestruct.def (TS_STRUCT_FIELD_TAG): Remove. * tree-ssa-alias.c (new_type_alias): Remove references to sub-variables from comment. * tree-ssa-operands.c (swap_tree_operands): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135357 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-05-15 Richard Guenther <rguenther@suse.de>rguenth2008-05-151-1/+0
| | | | | | | | | | | | PR middle-end/36244 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY. * tree-flow-inline.h (unmodifiable_var_p): Memory tags never represent unmodifiable vars. * gcc.dg/torture/pr36244.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135336 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-05-15 Richard Guenther <rguenther@suse.de>rguenth2008-05-151-2/+5
| | | | | | | | | | | PR tree-optimization/34330 * tree-ssa-alias.c (get_smt_for): Only assert that accesses through the pointer will alias the SMT. * gcc.dg/torture/pr34330.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135329 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.tomby2008-05-091-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise. * tree-ssa-structalias.c (get_constraint_for): Likewise. * c-common.c (c_common_truthvalue_conversion): Likewise. * tree-object-size.c (compute_object_offset): Likewise. * tree-inline.c (estimate_num_insns_1): Likewise. * varasm.c (const_hash_1, compare_constant, copy_constant) (compute_reloc_for_constant, output_addressed_constants) (initializer_constant_valid_p): Likewise. * c-omp.c (check_omp_for_incr_expr): Likewise. * gimplify.c (gimplify_expr): Likewise. * c-typeck.c (c_finish_return): Likewise. * tree-vectorizer.c (supportable_widening_operation) (supportable_narrowing_operation): Likewise. * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise. * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise. * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise. * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info) (descr_info_loc): Likewise. * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise. * fold-const.c (operand_equal_p, make_range, extract_muldiv_1) (fold_unary): Likewise. * builtins.c (get_pointer_alignment): Likewise. * tree-scalar-evolution.c (interpret_rhs_modify_stmt) (instantiate_parameters_1): Likewise. * tree.c (expr_align, stabilize_reference): Likewise. * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise. * convert.c (strip_float_extensions): Use CONVERT_EXPR_P. * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise. * config/alpha/alpha.c (va_list_skip_additions): Likewise. * c-common.c (c_alignof_expr, check_function_arguments_recurse): Likewise. * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise. * varasm.c (initializer_constant_valid_p, output_constant): Likewise. * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from) (forward_propagate_addr_expr_1, forward_propagate_addr_expr) (forward_propagate_comparison) (tree_ssa_forward_propagate_single_use_vars): Likewise. * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise. * emit-rtl.c (component_ref_for_mem_expr) (set_mem_attributes_minus_bitpos): Likewise. * tree-ssa-phiopt.c (conditional_replacement): Likewise. * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr): Likewise. * c-typeck.c (default_function_array_conversion, build_indirect_ref) (build_function_call, pointer_diff, build_compound_expr) (c_finish_return): Likewise. * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise. * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1): Likewise. * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise. * expr.c (is_aligning_offset): Likewise. * tree-ssa-alias.c (is_escape_site): Likewise. * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes) (check_all_va_list_escapes): Likewise. * tree-ssa-loop-ivopts.c (determine_base_object) (determine_common_wider_type): Likewise. * dojump.c (do_jump): Likewise. * tree-ssa-sccvn.c (simplify_unary_expression): Likewise. * tree-gimple.c (is_gimple_cast): Likewise. * fold-const.c (decode_field_reference, ) (fold_sign_changed_comparison, fold_unary, fold_comparison) (fold_binary): Likewise. * tree-ssa-alias-warnings.c (find_alias_site_helper) (already_warned_in_frontend_p): Likewise. * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise. * tree.c (really_constant_p, get_unwidened): Likewise. * tree-ssa-loop-niter.c (expand_simple_operations): Likewise. * tree-ssa-loop-im.c (rewrite_bittest): Likewise. * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1): Likewise. * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use CONVERT_EXPR_P. (CONVERT_EXPR_P): Define. (CASE_CONVERT): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135114 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-05-08 Richard Guenther <rguenther@suse.de>rguenth2008-05-091-40/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/invoke.texi (-fdump-tree-salias): Remove documentation. (-ftree-salias): Likewise. (salias-max-implicit-fields): Remove param documentation. (salias-max-array-elements): Likewise. * tree-pass.h (pass_create_structure_vars): Remove. * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove. (SALIAS_MAX_ARRAY_ELEMENTS): Likewise. * tree-ssa-alias.c (create_structure_vars): Remove. (gate_structure_vars): Likewise. (pass_create_structure_vars): Likewise. (gate_build_alias): Likewise. (pass_build_alias): Adjust to run always and dump the function. * common.opt (ftree-salias): Hide. * passes.c (init_optimization_passes): Remove pass_create_structure_vars, adjust comment. * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove. (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise. * opts.c (decode_options): Do not set flag_tree_salias. (common_handle_option): Add OPT_ftree_salias to the backward compatibility section. * gcc.dg/tree-ssa/20040911-1.c: Adjust. * gcc.dg/tree-ssa/20040517-1.c: Likewise. * gcc.dg/tree-ssa/pr26421.c: Likewise. * gcc.dg/tree-ssa/pr23382.c: Likewise. * gcc.dg/tree-ssa/alias-15.c: Likewise. * gcc.dg/tree-ssa/inline_asm-1.c: Likewise. * gcc.dg/tree-ssa/inline_asm-2.c: Likewise. * gcc.dg/tree-ssa/pta-fp.c: Likewise. * gcc.dg/tree-ssa/20031015-1.c: Likewise. * gcc.dg/tree-ssa/alias-12.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135111 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-05-08 Richard Guenther <rguenther@suse.de>rguenth2008-05-081-681/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS. * tree-data-ref.h (struct dr_alias): Remove subvars field. (DR_SUBVARS): Remove. * tree-dfa.c (dump_subvars_for): Remove. (debug_subvars_for): Likewise. (dump_variable): Do not dump subvars. (remove_referenced_var): Do not remove subvars. * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist. (lookup_subvars_for_var): Remove. (get_subvars_for_var): Likewise. (get_subvars_at): Likewise. (get_first_overlapping_subvar): Likewise. (overlap_subvar): Likewise. * tree-flow.h (subvar_t): Remove. (struct var_ann_d): Remove subvars field. * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued argument. Remove special handling of SFTs. (compute_tag_properties): Likewise. (set_initial_properties): Likewise. (compute_call_clobbered): Likewise. (count_mem_refs): Likewise. (compute_memory_partitions): Likewise. (compute_flow_insensitive_aliasing): Likewise. (setup_pointers_and_addressables): Likewise. (new_type_alias): Likewise. (struct used_part): Remove. (used_portions): Likewise. (struct used_part_map): Likewise. (used_part_map_eq): Likewise. (used_part_map_hash): Likewise. (free_used_part_map): Likewise. (up_lookup): Likewise. (up_insert): Likewise. (get_or_create_used_part_for): Likewise. (create_sft): Likewise. (create_overlap_variables_for): Likewise. (find_used_portions): Likewise. (create_structure_vars): Likewise. * tree.def (STRUCT_FIELD_TAG): Remove. * tree.h (MTAG_P): Adjust. (struct tree_memory_tag): Remove base_for_components and unpartitionable flags. (struct tree_struct_field_tag): Remove. (SFT_PARENT_VAR): Likewise. (SFT_OFFSET): Likewise. (SFT_SIZE): Likewise. (SFT_NONADDRESSABLE_P): Likewise. (SFT_ALIAS_SET): Likewise. (SFT_UNPARTITIONABLE_P): Likewise. (SFT_BASE_FOR_COMPONENTS_P): Likewise. (union tree_node): Remove sft field. * alias.c (get_alias_set): Remove special handling of SFTs. * print-tree.c (print_node): Remove handling of SFTs. * tree-dump.c (dequeue_and_dump): Likewise. * tree-into-ssa.c (mark_sym_for_renaming): Likewise. * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs. * tree-predcom.c (set_alias_info): Do not set subvars. * tree-pretty-print.c (dump_generic_node): Do not handle SFTs. * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise. * tree-ssa-operands.c (access_can_touch_variable): Likewise. (add_vars_for_offset): Remove. (add_virtual_operand): Remove special handling of SFTs. (add_call_clobber_ops): Likewise. (add_call_read_ops): Likewise. (get_asm_expr_operands): Likewise. (get_modify_stmt_operands): Likewise. (get_expr_operands): Likewise. (add_to_addressable_set): Likewise. * tree-ssa.c (verify_ssa_name): Do not handle SFTs. * tree-tailcall.c (suitable_for_tail_opt_p): Likewise. * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars. * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization. (tree_code_size): Remove STRUCT_FIELD_TAG handling. (tree_node_structure): Likewise. * tree-ssa-structalias.c (set_uids_in_ptset): Remove special handling of SFTs. (find_what_p_points_to): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135077 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-04-29 Richard Guenther <rguenther@suse.de>rguenth2008-04-291-140/+66
| | | | | | | | | | | | | | | | | | * tree-ssa-alias.c (finalize_ref_all_pointers): Remove. (compute_may_aliases): Do not call finalize_ref_all_pointers. (compute_flow_insensitive_aliasing): Do not treat PTR_IS_REF_ALL pointers special. (get_smt_for): Likewise. (may_alias_p): Re-structure. (is_escape_site): A ref-all pointer conversion is not an escape site. * tree-ssa-structalias.c (find_what_p_points_to): Do not treat PTR_IS_REF_ALL pointers special. * tree-ssa-structalias.h (struct alias_info): Remove ref_all_symbol_mem_tag field. (PTR_IS_REF_ALL): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134797 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-04-23 Richard Guenther <rguenther@suse.de>rguenth2008-04-231-14/+13
| | | | | | | | | | | | | | | | | | | PR tree-optimization/27799 PR tree-optimization/32921 PR tree-optimization/32624 * tree-ssa-structalias.c (merge_smts_into): Only merge the SMTs aliases and the tag itself into the solution. * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not merge the points-to solution back into the SMT aliases. (may_alias_p): Use alias_set_subset_of instead of aliases_conflict_p. A pointer which points to memory with alias set zero may access any variable. * gcc.dg/tree-ssa/pr27799.c: New testcase. * gcc.dg/tree-ssa/20030807-7.c: Remove xfail, scan vrp dump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134598 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-04-23 Richard Guenther <rguenther@suse.de>rguenth2008-04-231-15/+7
| | | | | | | | | | | * alias.c (alias_set_subset_of): Correctly handle asking if zero is a subset of an alias set with zero child. * tree-ssa-alias.c (have_common_aliases_p): Simplify logic. (compute_flow_insensitive_aliasing): Correctly walk all pointers. Do not unnecessarily union sets. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134597 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.dg/20050811-2.c: Update dumping flags.hubicka2008-03-191-9/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gcc.dg/sms-2.c: Update dumping flags. * gcc.dg/var-expand1.c: Update dumping flags. * gcc.dg/var-expand3.c: Update dumping flags. * gcc.dg/pr30957-1.c: Update dumping flags. * gcc.dg/20050811-1.c: Update dumping flags. * gcc.dg/cpp/cmdlne-dI-M.C: Do not xfail. * gcc.dg/cpp/cmdlne-dM-M.C: Do not xfail. PR other/35094 * toplev.c (decode_d_option): Handle all CPP flags. * tree-vrp.c: Update tree_pass descriptors. * regrename.c: Update tree_pass descriptors. * fwprop.c: Update tree_pass descriptors. * doc/invoke.texi: Remove documentation of dropped -d? flags. * tree-into-ssa.c: Update tree_pass descriptors. * tree-dump.c: Update tree_pass descriptors. * tree-complex.c: Update tree_pass descriptors. * tree-dump.h: Update tree_pass descriptors. * see.c: Update tree_pass descriptors. * cgraphbuild.c: Update tree_pass descriptors. * tracer.c: Update tree_pass descriptors. * tree-loop-distribution.c: Update tree_pass descriptors. * cgraph.c: Update tree_pass descriptors. * postreload-gcse.c: Update tree_pass descriptors. * postreload.c: Update tree_pass descriptors. * tree-ssa-loop-ch.c: Update tree_pass descriptors. * tree-tailcall.c: Update tree_pass descriptors. * tree-pass.h (tree_opt_pass): Rename to ... (opt_pass) ... this one; add "type" field and remove letter field. (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New. (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes, all_lowering_passes): Update declaration. * ipa-cp.c: Update tree_pass descriptors. * final.c: Update tree_pass descriptors. * omp-low.c: Update tree_pass descriptors. * tree-ssa-dse.c: Update tree_pass descriptors. * ipa-reference.c: Update tree_pass descriptors. * tree-ssa-uncprop.c: Update tree_pass descriptors. * auto-inc-dec.c: Update tree_pass descriptors. * reorg.c: Update tree_pass descriptors. * cgraphunit.c: Update tree_pass descriptors. * tree-ssa-copyrename.c: Update tree_pass descriptors. * tree-ssa-ccp.c: Update tree_pass descriptors. * df-core.c: Update tree_pass descriptors. * mode-switching.c: Update tree_pass descriptors. * tree-nomudflap.c: Update tree_pass descriptors. * modulo-sched.c: Update tree_pass descriptors. * ipa-pure-const.c: Update tree_pass descriptors. * cse.c: Update tree_pass descriptors. * web.c: Update tree_pass descriptors. * tree-stdarg.c: Update tree_pass descriptors. * tree-ssa-math-opts.c: Update tree_pass descriptors. * tree-ssa-dom.c: Update tree_pass descriptors. * tree-nrv.c: Update tree_pass descriptors. * tree-ssa-alias.c: Update tree_pass descriptors. * loop-init.c: Update tree_pass descriptors. * gimple-low.c: Update tree_pass descriptors. * ipa-inline.c: Update tree_pass descriptors. * tree-ssa-sink.c: Update tree_pass descriptors. * global.c: Update tree_pass descriptors. * ifcvt.c: Update tree_pass descriptors. * jump.c: Update tree_pass descriptors. * predict.c: Update tree_pass descriptors. * tree-ssa-loop.c: Update tree_pass descriptors. * recog.c: Update tree_pass descriptors. * dse.c: Update tree_pass descriptors. * tree-ssa-ifcombine.c: Update tree_pass descriptors. * tree-eh.c: Update tree_pass descriptors. * regmove.c: Update tree_pass descriptors. * local-alloc.c * function.c: Update tree_pass descriptors. * tree-vectorizer.c: Update tree_pass descriptors. * gcse.c: Update tree_pass descriptors. * ipa-type-escape.c: Update tree_pass descriptors. * tree-if-conv.c: Update tree_pass descriptors. * init-regs.c: Update tree_pass descriptors. * ipa.c: Update tree_pass descriptors. * tree-ssa-phiopt.c: Update tree_pass descriptors. * rtl-factoring.c: Update tree_pass descriptors. * lower-subreg.c: Update tree_pass descriptors. * bt-load.c: Update tree_pass descriptors. * tree-dfa.c: Update tree_pass descriptors. * except.c: Update tree_pass descriptors. * emit-rtl.c: Update tree_pass descriptors. * cfgexpand.c: Update tree_pass descriptors. * tree-cfgcleanup.c: Update tree_pass descriptors. * cfgcleanup.c: Update tree_pass descriptors. * tree-ssa-pre.c: Update tree_pass descriptors. * tree-sra.c: Update tree_pass descriptors. * tree-mudflap.c: Update tree_pass descriptors. * tree-ssa-copy.c: Update tree_pass descriptors. * cfglayout.c: Update tree_pass descriptors. * tree-ssa-forwprop.c: Update tree_pass descriptors. * tree-ssa-dce.c: Update tree_pass descriptors. * tree-ssa.c: Update tree_pass descriptors. * regclass.c: Update tree_pass descriptors. * integrate.c: Update tree_pass descriptors. * tree-optimize.c: Update tree_pass descriptors. * tree-ssa-phiprop.c: Update tree_pass descriptors. * tree-object-size.c: Update tree_pass descriptors. * combine.c: Update tree_pass descriptors. * tree-outof-ssa.c: Update tree_pass descriptors. * bb-reorder.c: Update tree_pass descriptors. * stack-ptr-mod.c: Update tree_pass descriptors. * var-tracking.c: Update tree_pass descriptors. * tree-profile.c: Update tree_pass descriptors. * tree-vect-generic.c: Update tree_pass descriptors. * reg-stack.c: Update tree_pass descriptors. * sched-rgn.c: Update tree_pass descriptors. * tree-ssa-structalias.c: Update tree_pass descriptors. * tree-cfg.c: Update tree_pass descriptors. * passes.c (current_pass): Update declaration. (finish_optimization_passes): Update. (all_passes, all_ipa_passes, all_lowering_passes): Update declaration. (register_one_dump_file, register_dump_files_1, next_pass_1): Update arguments. (init_optimization_passes): Update handling of new types. (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update. * ipa-struct-reorg.c: Update tree_pass descriptors. * tree-ssa-reassoc.c: Update tree_pass descriptors. * combine-stack-adj.c: Update tree_pass descriptors. * cfgrtl.c: Update tree_pass descriptors. * dce.c: Update tree_pass descriptors. * tree-ssanames.c: Update tree_pass descriptors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133342 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-02-28 Richard Guenther <rguenther@suse.de>rguenth2008-02-281-22/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert: 2008-02-26 Richard Guenther <rguenther@suse.de> * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ... * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here. (lookup_decl_from_uid): Declare. (remove_decl_from_map): Likewise. * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ... * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here. (decl_for_uid_map): New global hashtable mapping DECL_UID to the decl tree. (init_ttree): Allocate it. (insert_decl_to_uid_decl_map): New helper function. (make_node_stat): Insert new decls into the map. (copy_node_stat): Likewise. (lookup_decl_from_uid): New function. (remove_decl_from_map): Likewise. (print_decl_for_uid_map_statistics): New helper. (dump_tree_statistics): Call it. cp/ * decl.c (duplicate_decls): Remove decl from global mapping before ggc_freeing it. * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap. (referenced_var_iterator): Adjust. (FOR_EACH_REFERENCED_VAR): Adjust. (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator. (num_referenced_vars): Adjust. * tree-flow-inline.h (gimple_referenced_vars): Adjust. (first_referenced_var): Remove. (end_referenced_vars_p): Likewise. (next_referenced_var): Likewise. (referenced_var_iterator_set): New helper function. * tree-dfa.c (referenced_var_lookup): Adjust. (referenced_var_check_and_insert): Likewise. (remove_referenced_var): Likewise. * tree-ssa.c (verify_flow_insensitive_alias_info): Use FOR_EACH_REFERENCED_VAR_IN_BITMAP. (verify_call_clobbering): Likewise. (verify_memory_partitions): Likewise. (init_tree_ssa): Allocate bitmap instead of hashtable for referenced_vars. (delete_tree_ssa): Adjust. * tree-ssa-alias.c (mark_aliases_call_clobbered): Use FOR_EACH_REFERENCED_VAR_IN_BITMAP. (compute_tag_properties): Likewise. (set_initial_properties): Likewise. (find_partition_for): Likewise. (update_reference_counts): Likewise. (dump_may_aliases_for): Likewise. * tree-ssa-operands.c (add_virtual_operand): Likewise. (add_call_clobber_ops): Likewise. (add_call_read_ops): Likewise. (get_asm_expr_operands): Likewise. * tree-into-ssa.c (dump_decl_set): Likewise. (update_ssa): Likewise. * tree-sra.c (scan_function): Likewise. (decide_instantiations): Likewise. (scalarize_parms): Likewise. * tree-ssa-alias-warnings.c (build_reference_table): Likewise. (dsa_named_for): Likewise. * tree-ssa-structalias.c (update_alias_info): Likewise. (merge_smts_into): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132740 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-02-26 Richard Guenther <rguenther@suse.de>rguenth2008-02-261-36/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ... * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here. (lookup_decl_from_uid): Declare. (remove_decl_from_map): Likewise. * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ... * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here. (decl_for_uid_map): New global hashtable mapping DECL_UID to the decl tree. (init_ttree): Allocate it. (insert_decl_to_uid_decl_map): New helper function. (make_node_stat): Insert new decls into the map. (copy_node_stat): Likewise. (lookup_decl_from_uid): New function. (remove_decl_from_map): Likewise. (print_decl_for_uid_map_statistics): New helper. (dump_tree_statistics): Call it. cp/ * decl.c (duplicate_decls): Remove decl from global mapping before ggc_freeing it. * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap. (referenced_var_iterator): Adjust. (FOR_EACH_REFERENCED_VAR): Adjust. (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator. (num_referenced_vars): Adjust. * tree-flow-inline.h (gimple_referenced_vars): Adjust. (first_referenced_var): Remove. (end_referenced_vars_p): Likewise. (next_referenced_var): Likewise. (referenced_var_iterator_set): New helper function. * tree-dfa.c (referenced_var_lookup): Adjust. (referenced_var_check_and_insert): Likewise. (remove_referenced_var): Likewise. * tree-ssa.c (verify_flow_insensitive_alias_info): Use FOR_EACH_REFERENCED_VAR_IN_BITMAP. (verify_call_clobbering): Likewise. (verify_memory_partitions): Likewise. (init_tree_ssa): Allocate bitmap instead of hashtable for referenced_vars. (delete_tree_ssa): Adjust. * tree-ssa-alias.c (mark_aliases_call_clobbered): Use FOR_EACH_REFERENCED_VAR_IN_BITMAP. (compute_tag_properties): Likewise. (set_initial_properties): Likewise. (find_partition_for): Likewise. (update_reference_counts): Likewise. (dump_may_aliases_for): Likewise. * tree-ssa-operands.c (add_virtual_operand): Likewise. (add_call_clobber_ops): Likewise. (add_call_read_ops): Likewise. (get_asm_expr_operands): Likewise. * tree-into-ssa.c (dump_decl_set): Likewise. (update_ssa): Likewise. * tree-sra.c (scan_function): Likewise. (decide_instantiations): Likewise. (scalarize_parms): Likewise. * tree-ssa-alias-warnings.c (build_reference_table): Likewise. (dsa_named_for): Likewise. * tree-ssa-structalias.c (update_alias_info): Likewise. (merge_smts_into): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132676 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-02-25 Richard Guenther <rguenther@suse.de>rguenth2008-02-251-22/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert: 2008-02-25 Richard Guenther <rguenther@suse.de> * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ... * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here. (lookup_decl_from_uid): Declare. * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ... * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here. (decl_for_uid_map): New global hashtable mapping DECL_UID to the decl tree. (init_ttree): Allocate it. (insert_decl_to_uid_decl_map): New helper function. (make_node_stat): Insert new decls into the map. (copy_node_stat): Likewise. (lookup_decl_from_uid): New function. (print_decl_for_uid_map_statistics): New helper. (dump_tree_statistics): Call it. * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap. (referenced_var_iterator): Adjust. (FOR_EACH_REFERENCED_VAR): Adjust. (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator. (num_referenced_vars): Adjust. * tree-flow-inline.h (gimple_referenced_vars): Adjust. (first_referenced_var): Remove. (end_referenced_vars_p): Likewise. (next_referenced_var): Likewise. (referenced_var_iterator_set): New helper function. * tree-dfa.c (referenced_var_lookup): Adjust. (referenced_var_check_and_insert): Likewise. (remove_referenced_var): Likewise. * tree-ssa.c (verify_flow_insensitive_alias_info): Use FOR_EACH_REFERENCED_VAR_IN_BITMAP. (verify_call_clobbering): Likewise. (verify_memory_partitions): Likewise. (init_tree_ssa): Allocate bitmap instead of hashtable for referenced_vars. (delete_tree_ssa): Adjust. * tree-ssa-alias.c (mark_aliases_call_clobbered): Use FOR_EACH_REFERENCED_VAR_IN_BITMAP. (compute_tag_properties): Likewise. (set_initial_properties): Likewise. (find_partition_for): Likewise. (update_reference_counts): Likewise. (dump_may_aliases_for): Likewise. * tree-ssa-operands.c (add_virtual_operand): Likewise. (add_call_clobber_ops): Likewise. (add_call_read_ops): Likewise. (get_asm_expr_operands): Likewise. * tree-into-ssa.c (dump_decl_set): Likewise. (update_ssa): Likewise. * tree-sra.c (scan_function): Likewise. (decide_instantiations): Likewise. (scalarize_parms): Likewise. * tree-ssa-alias-warnings.c (build_reference_table): Likewise. (dsa_named_for): Likewise. * tree-ssa-structalias.c (update_alias_info): Likewise. (merge_smts_into): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132643 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-02-25 Richard Guenther <rguenther@suse.de>rguenth2008-02-251-36/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ... * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here. (lookup_decl_from_uid): Declare. * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ... * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here. (decl_for_uid_map): New global hashtable mapping DECL_UID to the decl tree. (init_ttree): Allocate it. (insert_decl_to_uid_decl_map): New helper function. (make_node_stat): Insert new decls into the map. (copy_node_stat): Likewise. (lookup_decl_from_uid): New function. (print_decl_for_uid_map_statistics): New helper. (dump_tree_statistics): Call it. * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap. (referenced_var_iterator): Adjust. (FOR_EACH_REFERENCED_VAR): Adjust. (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator. (num_referenced_vars): Adjust. * tree-flow-inline.h (gimple_referenced_vars): Adjust. (first_referenced_var): Remove. (end_referenced_vars_p): Likewise. (next_referenced_var): Likewise. (referenced_var_iterator_set): New helper function. * tree-dfa.c (referenced_var_lookup): Adjust. (referenced_var_check_and_insert): Likewise. (remove_referenced_var): Likewise. * tree-ssa.c (verify_flow_insensitive_alias_info): Use FOR_EACH_REFERENCED_VAR_IN_BITMAP. (verify_call_clobbering): Likewise. (verify_memory_partitions): Likewise. (init_tree_ssa): Allocate bitmap instead of hashtable for referenced_vars. (delete_tree_ssa): Adjust. * tree-ssa-alias.c (mark_aliases_call_clobbered): Use FOR_EACH_REFERENCED_VAR_IN_BITMAP. (compute_tag_properties): Likewise. (set_initial_properties): Likewise. (find_partition_for): Likewise. (update_reference_counts): Likewise. (dump_may_aliases_for): Likewise. * tree-ssa-operands.c (add_virtual_operand): Likewise. (add_call_clobber_ops): Likewise. (add_call_read_ops): Likewise. (get_asm_expr_operands): Likewise. * tree-into-ssa.c (dump_decl_set): Likewise. (update_ssa): Likewise. * tree-sra.c (scan_function): Likewise. (decide_instantiations): Likewise. (scalarize_parms): Likewise. * tree-ssa-alias-warnings.c (build_reference_table): Likewise. (dsa_named_for): Likewise. * tree-ssa-structalias.c (update_alias_info): Likewise. (merge_smts_into): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132629 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>manu2008-01-221-0/+24
| | | | | | | | | | | | | | | PR middle-end/33092 * tree-pass.h (pass_build_alias): New pass. * tree-ssa-alias.c (gate_build_alias): New. (pass_build_alias): New. * passes.c (init_optimization_passes): Add pass_build_alias after pass_create_structure_vars. testsuite/ * gcc.dg/pr33092.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131717 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-11-21 Richard Guenther <rguenther@suse.de>rguenth2007-11-211-1/+1
| | | | | | | | | | | PR tree-optimization/34148 * tree-ssa-structalias.c (create_variable_info_for): Do not use field-sensitive PTA for single-element structures. * tree-ssa-alias.c (create_overlap_variables_for): Do not create SFTs for single-element structures. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130329 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-11-16 Richard Guenther <rguenther@suse.de>rguenth2007-11-161-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR tree-optimization/33870 * tree.h (struct tree_memory_tag): Add base_for_components flag. (struct tree_struct_field_tag): Remove nesting_level field. (SFT_NESTING_LEVEL): Remove. (SFT_BASE_FOR_COMPONENTS_P): Add. * tree-flow.h (struct fieldoff): Remove nesting_level field. Add base_for_components flag. (push_fields_onto_fieldstack): Remove nesting_level parameter. * tree-ssa-alias.c (create_sft): Likewise. Add base_for_components parameter. (create_overlap_variables_for): Deal with it. * tree-dfa.c (dump_subvars_for): Likewise. (dump_variable): Likewise. * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise. Set base_for_components for first elements of sub-structures. (create_variable_info_for): Handle base_for_components. (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set. * tree-ssa-operands.c (ref_nesting_level): Remove. (add_vars_for_offset): Remove full_ref parameter, always add the offset of the pointed-to SFT. (add_virtual_operand): Adjust for changed signature of add_vars_for_offset. * gcc.dg/torture/pr33870.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130231 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-11-15 Richard Guenther <rguenther@suse.de>rguenth2007-11-151-1/+4
| | | | | | | | | | * tree-ssa-alias.c (create_overlap_variables_for): Make sure to only create SFTs if we also create variable infos for PTA. * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130197 138bc75d-0d04-0410-961f-82ee72b054a4
* pr 33870dnovillo2007-11-131-8/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree.h (strcut tree_memory_tag): add field unpartitionable. remove field in_nested_struct. (struct tree_struct_field_tag): add field nesting_level. (sft_in_nested_struct): remove. (sft_nesting_level): define. (sft_unpartitionable_p): define. * tree-ssa-alias.c (mem_sym_score): if mp->var is not partitionable, return long_max. (compute_memory_partitions): do not partition sfts marked unpartitionable. (create_sft): add argument nesting_level. set sft_nesting_level with it. update all users. (create_overlap_variables_for): show nesting level. * tree-dfa.c (dump_subvars_for): likewise. (dump_variable): likewise. show whether the sft is partitionable or not. * tree-flow.h (struct fieldoff): remove field in_nested_struct. add field nesting_level. * tree-ssa-structalias.c (struct variable_info): remove field in_nested_struct. (push_fields_onto_fieldstack): add argument nesting_level. update all users. update documentation. update pair->nesting_level with nesting_level. make recursive calls with nesting_level + 1. (set_uids_in_ptset): if an sft is added to the points-to set, mark it as unpartitionable. * tree-ssa-operands.c (ref_nesting_level): new. (add_vars_for_offset): call it. add argument full_ref. update callers. if var is inside a nested structure and the nesting level of full_ref is lower than the nesting level of var, adjust offset by the offset of var. testsuite/ChangeLog PR 33870 * gcc.c-torture/execute/pr33870-1.c: New test. * gcc.dg/tree-ssa/alias-16.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130141 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-11-09 Richard Guenther <rguenther@suse.de>rguenth2007-11-091-2/+3
| | | | | | | | | | * bitmap.h (bitmap_single_bit_set_p): Declare. * bitmap.c (bitmap_single_bit_set_p): New function. * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it. (maybe_create_global_var): Use bitmap_empty_p. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130045 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-10-28 Richard Guenther <rguenther@suse.de>rguenth2007-10-281-34/+37
| | | | | | | | | | | | | | | | | | | | | | | | | * tree-flow.h (subvar_t): Make it a VEC. (struct subvar): Remove. (struct var_ann_d): Use VEC(tree,gc) to store subvars. * tree-flow-inline.h (get_subvar_at): Adjust iterators over variable subvars. * tree-into-ssa.c (mark_sym_for_renaming): Likewise. * tree-nrv.c (dest_safe_for_nrv_p): Likewise. * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise. (set_initial_properties): Likewise. (setup_pointers_and_addressables): Likewise. (new_type_alias): Likewise. (create_overlap_variables_for): Likewise. * tree-dfa.c (dump_subvars_for): Likewise. * tree-ssa-operands.c (add_vars_for_offset): Likewise. (get_expr_operands): Likewise. (add_to_addressable_set): Likewise. * tree-ssa-structalias.c (set_uids_in_ptset): Likewise. * gcc.dg/tree-ssa/alias-15.c: Adjust pattern. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129699 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-10-25 Richard Guenther <rguenther@suse.de>rguenth2007-10-251-37/+77
| | | | | | | | | | | | | | | | | * tree-flow.h (mem_sym_stats): Remove. (dump_mem_sym_stats_for_var): Declare. * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var. (mem_sym_stats): Move ... * tree-ssa-alias.c (mem_sym_stats): ... here and make it static. (mem_sym_score): Rename from ... (pscore): ... this. Remove. (dump_mem_sym_stats_for_var): New function. Dump the score, but not the frequencies. (compare_mp_info_entries): Make sort stable by disambiguating on DECL_UID. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129625 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-21 Richard Guenther <rguenther@suse.de>rguenth2007-09-211-14/+36
| | | | | | | | | | | PR tree-optimization/33508 * tree-ssa-alias.c (mark_aliases_call_clobbered): Avoid quadratic loop by keeping a bitmap of variables we have to clobber all subvariables for. (set_initial_properties): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128645 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-01 Richard Guenther <rguenther@suse.de>rguenth2007-09-011-1/+1
| | | | | | | | | | | | | | * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE instead of TREE_THIS_VOLATILE. * tree-ssa-operands.c (add_virtual_operand): Do not set has_volatile_ops. Do not check s_ann for NULL. (get_indirect_ref_operands): Likewise. (get_expr_operands): Likewise. For all reference trees set has_volatile_ops based on TREE_THIS_VOLATILE. Also check base of reference for TREE_THIS_VOLATILE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128012 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-08-27 Daniel Berlin <dberlin@dberlin.org>dberlin2007-08-271-1/+1
| | | | | | | | | Fix PR tree-optimization/33173 * tree-ssa-alias.c (find_used_portions): Fix reversed test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127834 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-08-19 Daniel Berlin <dberlin@dberlin.org>dberlin2007-08-191-23/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix PR 32772 Fix PR 32716 Fix PR 32328 Fix PR 32303 * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call. * tree-ssa-alias.c (init_transitive_clobber_worklist): Add on_worklist argument and avoid adding things to worklist multiple times. (add_to_worklist): Ditto. (mark_aliases_call_clobbered): Mark entire structure clobbered if single SFT is clobbered. (set_initial_properties): Ditto. (compute_call_clobbered): Update for changes to function arguments. (create_overlap_variables_for): Always create SFT for offset 0. (create_structure_vars): Handle PHI's, since we are in SSA form at this point. * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars. * tree-ssa-operands.c (access_can_touch_variable): Don't handle TARGET_MEM_REF. (add_vars_for_offset): Figure out aliases from access + points-to. (add_virtual_operand): Use add_vars-for_offset. (get_tmr_operands): Update for NMT changes, rewrite to be correct. (add_call_clobber_ops): Remove makes_clobbering_call set. (get_expr_operands): Always pass through the INDIRECT_REF reference. * tree-ssa-structalias.c (struct constraint_graph): Remove variables member. Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to, address_taken, pt_used, number_incoming. (FIRST_ADDR_NODE): Removed. (merge_graph_nodes): Remove broken code for the moment. (init_graph): New function. (build_pred_graph): Remove code to init_graph. Add location equivalence support. (struct scc_info): Rename roots to deleted. (scc_visit): Ditto. (init_scc_info): Ditto (init_topo_info): Use graph->size. (compute_topo_order): Ditto. (do_da_constraint): Removed. (do_sd_constraint): Remove calls to find(). set_union_with_increment should always get 0 as last arg here. (do_complex_constraint): Replace do_da_constraint with assert. Stop calling find. (struct equiv_class_label): New. (pointer_equiv_class_table): Ditto. (location_equiv_class_table): Ditto. (equiv_class_label_hash): Ditto. (equiv_class_label_eq): Ditto (equiv_class_lookup): Ditto. (equiv_class_ladd): Ditto. (pointer_equiv_class): Ditto. (location_equiv_class): Ditto. (condense_visit): Rename and rewrite from label_visit to do only SCC related stuff for HU. (label_visit): Do HU work for HU. (perform_var_substitution): Update to do HU and location equivalence. (free_var_substitution_info): Update to free HU and location equivalence structures. */ (find_equivalent_node): Update for pointer but not location equivalence. (unite_pointer_equivalences): New function. (move_complex_constraints): Rewrite to only do moving. (rewrite_constraints): Split out of move_complex_constraints. (solve_graph): Use graph->size. (process_constraint_1): Add from_call argument, use it. Split *a = &b into two constraints. (process_constraint): Use new process_constraint_1. (get_constraint_for_component_ref): Handle bitmaxsize == -1 case. (get_constraint_for): Handle non-pointer integers properly. Remove code that used to handle structures. (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling with unknown addends. (handle_rhs_call): New function. (find_func_aliases): Use handle_rhs_call. (set_uids_in_ptset): Add an assert. (set_used_smts): Fix bug in not considering unified vars. (compute_tbaa_pruning): Stop initing useless iteration_obstack. (compute_points_to_sets): Update for other function changes. (delete_points_to_sets): Ditto. (ipa_pta_execute): Ditto. (pass_ipa_pta): We need to update SSA after ipa_pta. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127629 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-ssa-alias.c (compute_memory_partitions): Usednovillo2007-08-151-69/+103
| | | | | | | | | | | | | | | | alias_bitmap_obstack to allocate bitmaps. (reset_alias_info): Factor out of init_alias_info. Mark all name tags not associated to an SSA name for renaming. (init_alias_info): Call it. (create_name_tags): Tidy. Add comments. (dump_points_to_info_for): Do not call get_mem_sym_stats_for. testsuite/ChangeLog gcc.dg/tree-ssa/20070815.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127520 138bc75d-0d04-0410-961f-82ee72b054a4