public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "dberlin at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/32328] [4.2/4.3 Regression] -fstrict-aliasing causes skipped code
Date: Sun, 19 Aug 2007 23:24:00 -0000	[thread overview]
Message-ID: <20070819232356.28951.qmail@sourceware.org> (raw)
In-Reply-To: <bug-32328-14702@http.gcc.gnu.org/bugzilla/>



------- Comment #21 from dberlin at gcc dot gnu dot org  2007-08-19 23:23 -------
Subject: Bug 32328

Author: dberlin
Date: Sun Aug 19 23:23:29 2007
New Revision: 127629

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=127629
Log:
2007-08-19  Daniel Berlin  <dberlin@dberlin.org>

        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.



Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/tree-flow.h
    trunk/gcc/tree-ssa-alias.c
    trunk/gcc/tree-ssa-loop-ivopts.c
    trunk/gcc/tree-ssa-operands.c
    trunk/gcc/tree-ssa-structalias.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32328


  parent reply	other threads:[~2007-08-19 23:24 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-13 21:18 [Bug c/32328] New: 4.2.0: -O2 " tdragon at tdragon dot net
2007-06-13 21:20 ` [Bug c/32328] " tdragon at tdragon dot net
2007-06-13 22:21 ` [Bug rtl-optimization/32328] " pinskia at gcc dot gnu dot org
2007-06-13 22:27 ` [Bug tree-optimization/32328] " tdragon at tdragon dot net
2007-06-13 22:36 ` tdragon at tdragon dot net
2007-06-13 22:47 ` tdragon at tdragon dot net
2007-06-20 14:45 ` tdragon at tdragon dot net
2007-06-20 14:47 ` tdragon at tdragon dot net
2007-06-20 14:52 ` tdragon at tdragon dot net
2007-06-20 15:13 ` [Bug tree-optimization/32328] [4.2 Regression] -fstrict-aliasing " rguenth at gcc dot gnu dot org
2007-06-20 15:16 ` [Bug tree-optimization/32328] [4.2/4.3 " rguenth at gcc dot gnu dot org
2007-06-20 15:36 ` tdragon at tdragon dot net
2007-06-20 20:04 ` dberlin at dberlin dot org
2007-06-20 20:09 ` dberlin at gcc dot gnu dot org
2007-07-04  3:29 ` mmitchel at gcc dot gnu dot org
2007-07-04 14:16   ` Daniel Berlin
2007-07-04 14:17 ` dberlin at dberlin dot org
2007-07-16 13:39 ` giovannibajo at libero dot it
2007-07-16 13:58 ` dberlin at dberlin dot org
2007-07-16 14:27 ` rguenth at gcc dot gnu dot org
2007-07-16 15:51 ` rguenth at gcc dot gnu dot org
2007-07-16 22:29 ` dberlin at dberlin dot org
2007-07-20  3:50 ` mmitchel at gcc dot gnu dot org
2007-08-19 23:24 ` dberlin at gcc dot gnu dot org [this message]
2007-08-20  1:54 ` dberlin at gcc dot gnu dot org
2007-08-22 15:52 ` rguenth at gcc dot gnu dot org
2007-08-23 12:42 ` [Bug tree-optimization/32328] [4.2 " rguenth at gcc dot gnu dot org
2007-09-05  6:47 ` giovannibajo at libero dot it
2007-09-05  8:29 ` rguenth at gcc dot gnu dot org
2007-09-05 11:51 ` dberlin at dberlin dot org
2007-10-09 19:30 ` mmitchel at gcc dot gnu dot org
2008-02-01 17:05 ` jsm28 at gcc dot gnu dot org
2008-02-22 18:15 ` tdragon at tdragon dot net
2008-02-22 18:48 ` pinskia at gcc dot gnu dot org
2008-05-19 20:27 ` jsm28 at gcc dot gnu dot org
2009-03-30 22:07 ` jsm28 at gcc dot gnu dot org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070819232356.28951.qmail@sourceware.org \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).