Commit Graph

61 Commits

Author SHA1 Message Date
Toon Moene
0698a1d2bd options.c (gfc_init_options): Initialize flag_argument_noalias to 3.
2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>

	* fortran/options.c (gfc_init_options): Initialize
	flag_argument_noalias to 3.
	* doc/invoke.texi: Document new flag -fargument-noalias-anything.
	* tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
	argument pointers may not alias any other storage.
	* common.opt: Define option -fargument-noalias-anything.
	* tree-ssa-structalias.c (intra_create_variable_infos): Fortran
	alias semantics is specified by flag_argument_noalias > 2.

From-SVN: r112243
2006-03-21 06:32:57 +00:00
Richard Guenther
6f1be8e1f4 re PR tree-optimization/26587 (strict aliasing incorrectly pre-loads an array element with loops)
2006-03-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/26587
	* tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.

	* gcc.dg/torture/pr26587.c: New testcase.

From-SVN: r111808
2006-03-07 16:23:38 +00:00
Kazu Hirata
c0220ea4c5 builtins.c, [...]: Fix comment typos.
* builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
	combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
	config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
	config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
	df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
	loop-invariant.c, omp-low.c, opts.c, passes.c,
	rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
	tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
	tree-ssa-structalias.c, tree-ssa-threadedge.c,
	tree-ssa-threadupdate.c, tree-vect-patterns.c,
	tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
	unwind-dw2.c: Fix comment typos.  Follow spelling conventions.

From-SVN: r111721
2006-03-04 23:05:24 +00:00
Daniel Berlin
c2924966db tree-vrp.c (execute_vrp): Return value.
2006-03-02  Daniel Berlin <dberlin@dberlin.org>

	* gcc/tree-vrp.c (execute_vrp): Return value.
	* gcc/regrename.c (rest_of_handle_regrename): Ditto.
	* gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
	* gcc/tree-complex.c (tree_lower_complex): Ditto.
	(tree_lower_complex_O0): Ditto.
	* gcc/tracer.c (rest_of_handle_tracer): Ditto.
	* gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
	* gcc/postreload.c (rest_of_handle_postreload): Ditto.
	* gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
	(execute_tail_calls): Ditto.
	* gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
	* gcc/tree.h (init_function_for_compilation): Ditto.
	* gcc/ipa-cp.c (ipcp_driver): Ditto.
	* gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
	* gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
	* gcc/final.c (compute_alignments): Ditto.
	(rest_of_handle_final): Ditto.
	(rest_of_handle_shorten_branches): Ditto.
	(rest_of_clean_state): Ditto.
	* gcc/omp-low.c (execute_expand_omp): Ditto.
	(execute_lower_omp): Ditto.
	* gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
	* gcc/ipa-reference.c (static_execute): Ditto.
	* gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
	* gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
	(rest_of_handle_machine_reorg): Ditto.
	* gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
	* gcc/flow.c (recompute_reg_usage): Ditto.
	(rest_of_handle_remove_death_notes): Ditto.
	(rest_of_handle_life): Ditto.
	(rest_of_handle_flow2): Ditto.
	* gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
	* gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
	(do_ssa_store_ccp): Ditto.
	(execute_fold_all_builtins): Ditto.
	* gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
	* gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
	* gcc/ipa-pure-const.c (static_execute): Ditto.
	* gcc/cse.c (rest_of_handle_cse): Ditto.
	(rest_of_handle_cse2): Ditto.
	* gcc/web.c (rest_of_handle_web): Ditto.
	* gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
	* gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
	* gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
	* gcc/tree-nrv.c (tree_nrv): Ditto.
	(execute_return_slot_opt): Ditto.
	* gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
	(create_structure_vars): Ditto.
	* gcc/loop-init.c (rtl_loop_init): Ditto.
	(rtl_loop_done): Ditto.
	(rtl_move_loop_invariants): Ditto.
	(rtl_unswitch): Ditto.
	(rtl_unroll_and_peel_loops): Ditto.
	(rtl_doloop): Ditto.
	* gcc/gimple-low.c (lower_function_body): Ditto.
	(mark_used_blocks): Ditto.
	* gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
	* gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
	(cgraph_early_inlining): Ditto.
	* gcc/global.c (rest_of_handle_global_alloc): Ditto.
	* gcc/jump.c (cleanup_barriers): Ditto.
	(purge_line_number_notes): Ditto.
	* gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
	(rest_of_handle_if_after_reload): Ditto.
	* gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
	(tree_ssa_loop_im): Ditto.
	(tree_ssa_loop_unswitch): Ditto.
	(tree_vectorize): Ditto.
	(tree_linear_transform): Ditto.
	(tree_ssa_loop_ivcanon): Ditto.
	(tree_ssa_empty_loop): Ditto.
	(tree_ssa_loop_bounds): Ditto.
	(tree_complete_unroll): Ditto.
	(tree_ssa_loop_prefetch): Ditto.
	(tree_ssa_loop_ivopts): Ditto.
	(tree_ssa_loop_done): Ditto.
	* gcc/predict.c (tree_estimate_probability): Ditto.
	* gcc/recog.c (split_all_insns_noflow): Ditto.
	(rest_of_handle_peephole2): Ditto.
	(rest_of_handle_split_all_insns): Ditto.
	* gcc/tree-eh.c (lower_eh_constructs): Ditto.
	* gcc/regmove.c (rest_of_handle_regmove): Ditto.
	(rest_of_handle_stack_adjustments): Ditto.
	* gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
	* gcc/function.c (instantiate_virtual_regs): Ditto.
	(init_function_for_compilation): Ditto.
	(rest_of_handle_check_leaf_regs): Ditto.
	* gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
	(rest_of_handle_gcse): Ditto.
	* gcc/ipa-type-escape.c (type_escape_execute): Ditto.
	* gcc/alias.c (rest_of_handle_cfg): Ditto.
	* gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
	* gcc/profile.c (rest_of_handle_branch_prob): Ditto.
	* gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
	* gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
	* gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
	* gcc/tree-dfa.c (find_referenced_vars): Ditto.
	* gcc/except.c (set_nothrow_function_flags): Ditto.
	(convert_to_eh_region_ranges): Ditto.
	(rest_of_handle_eh): Ditto.
	* gcc/emit-rtl.c (unshare_all_rtl): Ditto.
	(remove_unnecessary_notes): Ditto.
	* gcc/except.h (set_nothrow_function_flags): Ditto.
	(convert_to_eh_region_ranges): Ditto.
	* gcc/cfgexpand.c (tree_expand_cfg): Ditto.
	* gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
	* gcc/tree-ssa-pre.c (do_pre): Ditto.
	(execute_fre): Ditto.
	* gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
	(rest_of_handle_jump2): Ditto.
	* gcc/tree-sra.c (tree_sra): Ditto.
	* gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
	(execute_mudflap_function_decls): Ditto.
	* gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
	(do_store_copy_prop): Ditto.
	* gcc/ipa-prop.h (ipcp_driver): Ditto.
	* gcc/cfglayout.c (insn_locators_initialize): Ditto.
	* gcc/tree-ssa-forwprop.c
	(tree_ssa_forward_propagate_single_use_vars): Ditto.
	* gcc/cfglayout.h (insn_locators_initialize): Ditto.
	* gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
	* gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
	(execute_late_warn_uninitialized): Ditto.
	* gcc/rtl.h (cleanup_barriers): Ditto.
	(split_all_insns_noflow): Ditto.
	(purge_line_number_notes): Ditto.
	(unshare_all_rtl): Ditto.
	(remove_unnecessary_notes): Ditto.
	(recompute_reg_usage): Ditto.
	(variable_tracking_main): Ditto.
	* gcc/integrate.c (emit_initial_value_sets): Ditto.
	* gcc/integrate.h (emit_initial_value_sets): Ditto.
	* gcc/tree-optimize.c (execute_free_datastructures): Ditto
	(execute_free_cfg_annotations): Ditto.
	(execute_fixup_cfg): Ditto.
	(execute_cleanup_cfg_pre_ipa): Ditto.
	(execute_cleanup_cfg_post_optimizing): Ditto.
	(execute_init_datastructures): Ditto.
	* gcc/tree-object-size.c (compute_object_sizes): Ditto.
	* gcc/combine.c (rest_of_handle_combine): Ditto.
	* gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
	* gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
	(rest_of_handle_reorder_blocks): Ditto.
	(rest_of_handle_partition_blocks): Ditto.
	* gcc/var-tracking.c (variable_tracking_main): Ditto.
	* gcc/tree-profile.c (tree_profiling): Ditto.
	* gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
	* gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
	* gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
	(rest_of_handle_sched2): Ditto.
	* gcc/basic-block.h (free_bb_insn): Ditto.
	* gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
	* gcc/tree-cfg.c (execute_build_cfg): Ditto.
	(remove_useless_stmts): Ditto.
	(split_critical_edges): Ditto.
	(execute_warn_function_return): Ditto.
	(execute_warn_function_noreturn): Ditto.
	* gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
	* gcc/cfgrtl.c (free_bb_for_insn): Ditto.
	* gcc/passes.c (execute_one_pass): Run additional
	todos returned by execute function.
	* gcc/tree-pass.h (struct tree_opt_pass): Make execute
	return a value.

From-SVN: r111643
2006-03-02 19:00:11 +00:00
Daniel Berlin
6df11ca1be tree-ssa-structalias.c (get_constraint_for): Move code to deal with aggregates here.
2006-02-27  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (get_constraint_for): Move code to deal
	with aggregates here.
	(find_func_aliases): Remove code for &<aggregate> from here.

From-SVN: r111487
2006-02-27 17:25:17 +00:00
Daniel Berlin
4b0e73469f re PR tree-optimization/26376 (K+R style function compiled with -fipa-pta ICEs)
2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
	
	Fix PR tree-optimization/26376
	* tree-ssa-structalias.c (find_func_aliases):  Use get_id_for_tree,
	remove assert.

From-SVN: r111392
2006-02-23 18:16:12 +00:00
Richard Guenther
98b2060a0d re PR middle-end/26439 (missing VOPs for complex assignments)
2006-02-23  Richard Guenther  <rguenther@suse.de>

	PR middle-end/26439
	* tree-ssa-structalias.c (find_func_aliases): Handle complex types
	like aggregate types.

From-SVN: r111389
2006-02-23 16:03:47 +00:00
Daniel Berlin
4cf4d6a323 invoke.texi: Document -fipa-pta.
2006-02-19  Daniel Berlin  <dberlin@dberlin.org>

	* doc/invoke.texi: Document -fipa-pta.
	* common.opt: Add ipa-pta option.
	* tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
	(do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
	(do_ds_constraint): Ditto.
	(get_constraint_for): Only add to referenced_vars if
	referenced_vars exists.
	(insert_into_field_list): Rewrite to do this unsorted.
	(insert_into_field_list_sorted): Rename old insert_into_field_list
	to this.
	(create_function_info_for): Use insert_into_field_list_sorted.
	(create_variable_info_for): Rewrite so it uses unsorted version,
	since the field list is sorted.
	(intra_create_variable_infos): Only add to referenced_vars if
	referenced_vars exists.
	(ipa_pta_execute): Init heapvars, and delete when done.
	* passes.c (init_optimization_passes): Add call to pass_ipa_pta.

From-SVN: r111273
2006-02-19 18:26:00 +00:00
Daniel Berlin
98035a75ac re PR tree-optimization/26260 (PTA is slow with large structs (hits clisp))
2006-02-14  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/26260

	* doc/invoke.texi (max-fields-for-field-sensitive): Document
	param.
	* params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
	* params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
	* tree-ssa-structalias.c (create_variable_info_for): Use
	MAX_FIELDS_FOR_FIELD_SENSITIVE.

From-SVN: r110972
2006-02-14 14:49:13 +00:00
Richard Guenther
0a4288d92e re PR tree-optimization/26258 (Wrong alias information for struct addresses in PHIs)
2006-02-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/26258
	* tree-ssa-structalias.c (find_func_aliases): Handle aggregates
	in PHI argument processing.

	* gcc.dg/torture/pr26258.c: New testcase.

From-SVN: r110963
2006-02-14 09:58:57 +00:00
Marcin Dalecki
5ed6ace578 tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
2006-01-31  Marcin Dalecki  <martin@dalecki.de>

	* tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
	* regrename.c: Ditto.
	* tree-ssa-loop-im.c: Ditto.
	* tree-dump.c: Ditto.
	* tree-complex.c: Ditto.
	* genrecog.c: Ditto.
	* tree-ssa-threadupdate.c: Ditto.
	* tracer.c: Ditto.
	* java/class.c: Ditto.
	* java/jcf-parse.c: Ditto.
	* java/resource.c: Ditto.
	* java/except.c: Ditto.
	* java/jvspec.c: Ditto.
	* java/jcf-write.c: Ditto.
	* java/jcf-path.c: Ditto.
	* java/gjavah.c: Ditto.
	* java/zextract.c: Ditto.
	* java/jcf-io.c: Ditto.
	* java/jcf.h: Ditto.
	* java/buffer.c: Ditto.
	* java/lang.c: Ditto.
	* java/parse-scan.y: Ditto.
	* java/lex.c: Ditto.
	* java/lex.h: Ditto.
	* cfgloopmanip.c: Ditto.
	* postreload-gcse.c: Ditto.
	* tree-ssa-loop-manip.c: Ditto.
	* postreload.c: Ditto.
	* tree-ssa-loop-ch.c: Ditto.
	* loop.c: Ditto.
	* ipa-cp.c: Ditto.
	* cppspec.c: Ditto.
	* diagnostic.c: Ditto.
	* final.c: Ditto.
	* genoutput.c: Ditto.
	* gcc.c: Ditto.
	* cfghooks.c: Ditto.
	* cfgloopanal.c: Ditto.
	* objc/objc-act.c: Ditto.
	* gcov.c: Ditto.
	* genextract.c: Ditto.
	* genautomata.c: Ditto.
	* pretty-print.c: Ditto.
	* genemit.c: Ditto.
	* cgraphunit.c: Ditto.
	* flow.c: Ditto.
	* df-scan.c: Ditto.
	* haifa-sched.c: Ditto.
	* dominance.c: Ditto.
	* dbxout.c: Ditto.
	* tree-ssa-loop-ivopts.c: Ditto.
	* df-core.c: Ditto.
	* mode-switching.c: Ditto.
	* modulo-sched.c: Ditto.
	* graph.c: Ditto.
	* ipa-pure-const.c: Ditto.
	* cse.c: Ditto.
	* fix-header.c: Ditto.
	* web.c: Ditto.
	* tree-stdarg.c: Ditto.
	* ipa-utils.c: Ditto.
	* loop-init.c: Ditto.
	* ipa-inline.c: Ditto.
	* cfganal.c: Ditto.
	* global.c: Ditto.
	* alloc-pool.c: Ditto.
	* dwarf2out.c: Ditto.
	* opts.c: Ditto.
	* genattrtab.c: Ditto.
	* tree-ssa-loop-ivcanon.c: Ditto.
	* predict.c: Ditto.
	* timevar.c: Ditto.
	* lcm.c: Ditto.
	* fortran/gfortranspec.c: Ditto.
	* regmove.c: Ditto.
	* local-alloc.c: Ditto.
	* langhooks.c: Ditto.
	* function.c: Ditto.
	* tree-vectorizer.c: Ditto.
	* gcse.c: Ditto.
	* ipa-type-escape.c: Ditto.
	* alias.c: Ditto.
	* tree-if-conv.c: Ditto.
	* profile.c: Ditto.
	* ipa.c: Ditto.
	* tree-data-ref.c: Ditto.
	* loop-unroll.c: Ditto.
	* treelang/treetree.c: Ditto.
	* calls.c: Ditto.
	* bt-load.c: Ditto.
	* ggc-common.c: Ditto.
	* except.c: Ditto.
	* coverage.c: Ditto.
	* cselib.c: Ditto.
	* tree-cfgcleanup.c: Ditto.
	* tree-ssa-pre.c: Ditto.
	* cfgcleanup.c: Ditto.
	* loop-invariant.c: Ditto.
	* loop-iv.c: Ditto.
	* ipa-prop.c: Ditto.
	* print-tree.c: Ditto.
	* conflict.c: Ditto.
	* ggc-page.c: Ditto.
	* sched-deps.c: Ditto.
	* regclass.c: Ditto.
	* tree-object-size.c: Ditto.
	* combine.c: Ditto.
	* bb-reorder.c: Ditto.
	* resource.c: Ditto.
	* var-tracking.c: Ditto.
	* cfgloop.c: Ditto.
	* df-problems.c: Ditto.
	* reg-stack.c: Ditto.
	* tlink.c: Ditto.
	* gccspec.c: Ditto.
	* sched-rgn.c: Ditto.
	* tree-ssa-structalias.c: Ditto.
	* tree-ssa-reassoc.c: Ditto.
	* config/darwin-c.c: Ditto.
	* config/darwin.c: Ditto.
	* config/arm/arm.c: Ditto.
	* cfgrtl.c: Ditto.
	* collect2.c: Ditto.
	* reload1.c: Ditto.

From-SVN: r110446
2006-01-31 20:56:55 +01:00
Richard Guenther
7cc92f92ce tree-ssa-structalias.c (intra_create_variable_infos): Create heap variables for incoming parameters if flag_argument_noalias > 1.
2006-01-26  Richard Guenther  <rguenther@suse.de>
            Andrew Pinski  <pinskia@physics.uc.edu>

        * tree-ssa-structalias.c (intra_create_variable_infos):
        Create heap variables for incoming parameters if
        flag_argument_noalias > 1.  
        (find_what_p_points_to): Look through default defs of
        parameter decls.


Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>

From-SVN: r110262
2006-01-26 09:48:20 -08:00
Daniel Berlin
d16a5e3669 tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
2006-01-16  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
	(ssa_ro_call_cache_valid): Ditto.
	* tree-ssa-alias.c (sort_tags_by_id): New function.
	(init_transitive_clobber_worklist): Ditto.
	(add_to_worklist): Ditto.
	(mark_aliases_call_clobbered): Ditto.
	(compute_tag_properties): Ditto.
	(set_initial_properties): Ditto.
	(compute_call_clobbered): Ditto.
	(compute_may_aliases):	Call compute_call_clobbered and grouping.
	(compute_flow_sensitive_aliasing): Remove clobbering related code.
	(compute_flow_insensitive_aliasing): Grouping now happens in our
	caller.
	(setup_pointers_and_addressables): Remove clobbering related code.
	(add_may_alias): Ditto.
	(replace_may_alias): Ditto.
	(get_nmt_for): Ditto.
	(create_global_var): 
	(is_escape_site): Return an escape_type enumeration.
	* tree-flow-inline.h (is_call_clobbered):  Global var does not
	imply call clobbered.
	(mark_call_clobbered): Take a reason for marking this. Remove
	marking of globalness, and cache invalidation.
	(clear_call_clobbered): Remove cache invalidation code.
	* tree-dfa.c (dump_variable): If details is on, dump the reason
	for escaping.
	* tree-outof-ssa.c (create_temp): Copy escape mask from original
	variable. 
	* tree-flow.h (struct ptr_info_def): Add escape mask member.
	(struct var_ann_d): Ditto.
	(enum escape_type): New.
	(mark_call_clobbered): Adjust prototype.
	* tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
	are never call clobbered. 
	Record reasons for escaping.
	* tree-ssa-structalias.h (is_escape_site): Update prototype.
	* tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
	(ssa_ro_call_cache_valid): Ditto.
	(clobbered_v_may_defs): Ditto.
	(clobbered_vuses): Ditto.
	(ro_call_vuses): Ditto.
	(clobber_stats): New.
	(init_ssa_operands): Zero out clobber stats.
	(fini_ssa_operands): Print out clobber stats.
	(get_call_expr_operands): Pass callee fndecl to
	add_call_read_ops).
	(add_call_clobber_ops): Remove use of cache.
	Add use of PURE_CONST information.
	(add_call_read_ops): Remove use of cache.
	Add use of static not_read information.

From-SVN: r109938
2006-01-19 01:42:48 +00:00
Richard Guenther
a916f21d3c re PR tree-optimization/22548 (Aliasing can not tell array members apart)
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-14 14:30:33 +00:00
Richard Guenther
a555a02ce6 tree-ssa-structalias.c (get_constraint_for_component_ref): Never override 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-10 14:55:59 +00:00
Richard Guenther
1d85354c98 tree-ssa-structalias.c (get_constraint_for): Remove anyoffset argument.
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-08 16:11:27 +00:00
Andrew Pinski
8ae5e6f215 re PR tree-optimization/25528 (missed LIM on the tree level (complex types))
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-06 07:00:50 -08:00
Richard Guenther
35ed859b0d tree-flow.h (struct fieldoff): Decompose field to type, size and decl.
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
2006-01-05 09:58:57 +00:00
Zdenek Dvorak
fd0bd27803 tree-ssa-structalias.c (update_alias_info): Remove handling of 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-19 00:56:31 +00:00
Richard Guenther
04743a370f re PR tree-optimization/25481 (Segfault in tree-ssa-structalias.c)
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-18 22:20:31 +00:00
Kazu Hirata
6416ae7f28 basic-block.h, [...]: Fix comment typos.
* 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-16 06:09:31 +00:00
Richard Guenther
6bec927194 tree-flow.h (okay_component_ref_for_subvars): Remove.
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-15 10:34:44 +00:00
Daniel Berlin
4ee00913ca tree-ssa-structalias.c (process_constraint): Remove code to transform 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-12-11 22:44:19 +00:00
Eric Botcazou
32961db554 re PR middle-end/22561 (ACATS ca11c01 wrong code)
PR middle-end/22561
	* tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.

From-SVN: r107377
2005-11-22 22:35:55 +00:00
Hans-Peter Nilsson
f5d7990b73 * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
From-SVN: r106746
2005-11-10 18:53:24 +00:00
Daniel Berlin
c900f6aa99 tree-ssa-alias.c (compute_may_aliases): Remove call to delete_old_heap_vars.
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-10 17:23:49 +00:00
Daniel Berlin
973162ec9d re PR tree-optimization/23382 (Does not remove the old HEAP virtual 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-08 16:34:48 +00:00
Richard Guenther
8d66aecaff tree-flow.h (ref_contains_indirect_ref): Rename to 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-04 18:02:51 +00:00
Daniel Berlin
031905948a re PR tree-optimization/24351 (ICE in do_simple_structure_copy with some C++ 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-11-03 15:39:48 +00:00
Daniel Berlin
30d2662cc2 tree-ssa-structalias.c (check_for_overlaps): Fix bug in last change.
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-06 21:36:52 +00:00
Daniel Berlin
6c11790df9 re PR c++/22488 (C++ frontend generates RECORD_TYPEs with overlapping 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-10-06 19:38:00 +00:00
Daniel Berlin
8d2c775f01 re PR tree-optimization/24117 (struct is not marked fully as call clobbered)
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-29 19:38:00 +00:00
Daniel Berlin
b13476386f tree-data-ref.c (analyze_array_indexes): Only estimate when estimate_only is 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-22 00:42:28 +00:00
Daniel Berlin
d52225bef5 tree-ssa-structalias.c (get_constraint_for_component_ref): Add argument.
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-09-21 01:42:53 +00:00
Daniel Berlin
8971094d72 re PR tree-optimization/22615 (ICE in first_vi_for_offset, at 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-14 19:23:56 +00:00
Kazu Hirata
a4d0554781 Makefile.in, [...]: Fix comment/doc typos.
* 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-08-06 13:26:35 +00:00
Richard Guenther
c11b02311a tree-ssa-structalias.c (push_fields_onto_fieldstack): Avoid pushing again if 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-27 11:15:32 +00:00
Kazu Hirata
a4174ebf41 calls.c, [...]: Fix comment typos.
* 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-26 13:53:54 +00:00
Diego Novillo
17c7e33e8c tree-ssa-alias.c (count_ptr_derefs): Do not consider &PTR->FLD a dereference 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-22 09:39:18 -04:00
Manfred Hollstein
32cafd7366 tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised warnings.
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-22 07:31:32 +00:00
Daniel Berlin
b6e0bdbdc8 tree-ssa-structalias.c (need_to_solve): Need to check for preds, too.
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-16 22:27:21 +00:00
Daniel Berlin
27811bfe0a re PR tree-optimization/22376 (PTA is slow on a silly unrealistic test case)
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-15 15:53:55 +00:00
Daniel Berlin
5c3b86aff6 Missed part of commit
From-SVN: r101969
2005-07-13 14:30:08 +00:00
Daniel Berlin
13c2c08bad re PR tree-optimization/22422 (ICE in first_vi_for_offset, at 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-13 02:25:48 +00:00
Daniel Berlin
046a69e067 re PR tree-optimization/22404 (ICE in first_vi_for_offset)
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-11 18:28:36 +00:00
Daniel Berlin
b5efa47076 tree-ssa-structalias.c (struct variable_info): Heapify complex.
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-11 02:38:30 +00:00
Daniel Berlin
0bfac35f9d tree-ssa-structalias.c (update_alias_info): Change counting of references to 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-11 02:16:20 +00:00
Diego Novillo
e8ca415995 Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
* 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-09 20:28:01 -04:00
Daniel Berlin
4e422b8bf1 Fix PR tree-optimization/22319 Fix PR tree-optimization/22140 Fix PR 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-06 16:49:57 +00:00
Daniel Berlin
47bcb538b4 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.
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-05 15:31:17 +00:00