public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/37868] code that breaks TBAA is misoptimized even with -fno-strict-aliasing
Date: Sat, 18 Oct 2008 22:44:00 -0000	[thread overview]
Message-ID: <20081018224254.29308.qmail@sourceware.org> (raw)
In-Reply-To: <bug-37868-15165@http.gcc.gnu.org/bugzilla/>



------- Comment #4 from rguenth at gcc dot gnu dot org  2008-10-18 22:42 -------
4.3 is broken because PTA figures

D.1187_2 = { x.a }

from the constraints

x.0_1 = &x
D.1187_2 = x.0_1 + 64

because the 4.3 branch doesn't have the PTA fixes, in particular

          /* If the found variable is not exactly at the pointed to
             result, we have to include the next variable in the
             solution as well.  Otherwise two increments by offset / 2
             do not result in the same or a conservative superset
             solution.  */
          if (temp->offset != curr->offset + rhsoffset
              && temp->next != NULL)
            {
              struct constraint_expr c2;
              c2.var = temp->next->id;
              c2.type = ADDRESSOF;
              c2.offset = 0;
              VEC_safe_push (ce_s, heap, *results, &c2);
            }

see rev. 137573:

 2008-07-07  Richard Guenther  <rguenther@suse.de>

+       * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
+       (new_var_info): Set it to false.
+       (solution_set_add): Correctly handle pointers outside a var and
+       inside a field.
+       (type_safe): Treat variables with is_full_var properly.
+       (do_sd_constraint): Likewise.
+       (do_ds_constraint): Likewise.
+       (process_constraint): Remove zeroing offset for !use_field_sensitive.
+       (get_constraint_for_ptr_offset): New function.
+       (get_constraint_for_component_ref): For addresses at least include
+       the last field of the variable.  Handle is_full_vars properly.
+       (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
+       (handle_ptr_arith): Remove.
+       (find_func_aliases): Simplify assignment handling.
+       (create_function_info_for): For parameter and result varinfos set
+       is_full_var flag.
+       (create_variable_info_for): Set is_full_var flag whenever we
+       just created a single varinfo for a decl.
+       (init_alias_vars): Initialize use_field_sensitive from
+       max-fields-for-field-sensitive parameter.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |wrong-code
   Last reconfirmed|0000-00-00 00:00:00         |2008-10-18 22:42:54
               date|                            |


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


  parent reply	other threads:[~2008-10-18 22:44 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-18 18:17 [Bug tree-optimization/37868] New: code that doesn't " edwintorok at gmail dot com
2008-10-18 18:30 ` [Bug tree-optimization/37868] code that " sabre at nondot dot org
2008-10-18 18:58 ` rguenth at gcc dot gnu dot org
2008-10-18 22:36 ` rguenth at gcc dot gnu dot org
2008-10-18 22:44 ` rguenth at gcc dot gnu dot org [this message]
2008-10-22 11:48 ` [Bug tree-optimization/37868] [4.3 Regression] " rguenth at gcc dot gnu dot org
2008-10-22 13:50 ` rguenth at gcc dot gnu dot org
2008-11-03 11:29 ` jakub at gcc dot gnu dot org
2008-11-07 12:51 ` rguenth at gcc dot gnu dot org
2008-11-20 12:14 ` rguenth at gcc dot gnu dot org
2008-11-20 12:15 ` rguenth at gcc dot gnu dot org
2008-11-20 12:28 ` rguenth 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=20081018224254.29308.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).