public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs
@ 2013-10-18 16:23 jakub at gcc dot gnu.org
  2013-10-18 16:30 ` [Bug tree-optimization/58791] " jakub at gcc dot gnu.org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-10-18 16:23 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 58791
           Summary: [4.9 Regression] Reassoc reuses SSA_NAMEs
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: jakub at gcc dot gnu.org
          Reporter: jakub at gcc dot gnu.org

volatile char v;

unsigned
foo (unsigned x)
{
  if (x > 7)
    return 0;

  unsigned a = x + 1;
  unsigned b = x + 2;
  unsigned c = a + b;
  unsigned d = 3 * x + 4;
  unsigned e = x + 3;
  unsigned f = d + c + e;
  unsigned a2 = a;
  unsigned b2 = b;
  unsigned c2 = c;
  unsigned d2 = d;
  unsigned e2 = e;
  unsigned f2 = f;
  v++;
  return f;
}

look at -O2 -fdump-tree-reassoc1-alias, the range info is definitely wrong
there for many of the SSA_NAMEs.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
  2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
@ 2013-10-18 16:30 ` jakub at gcc dot gnu.org
  2013-10-18 19:06 ` ktietz at gcc dot gnu.org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-10-18 16:30 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 31043
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31043&action=edit
gcc49-pr58791.patch

Preliminary patch that fixes linearize_tree and rewrite_expr_tree.  There are
various other places that need verification.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
  2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
  2013-10-18 16:30 ` [Bug tree-optimization/58791] " jakub at gcc dot gnu.org
@ 2013-10-18 19:06 ` ktietz at gcc dot gnu.org
  2013-10-18 19:17 ` jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: ktietz at gcc dot gnu.org @ 2013-10-18 19:06 UTC (permalink / raw)
  To: gcc-bugs

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

Kai Tietz <ktietz at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ktietz at gcc dot gnu.org

--- Comment #2 from Kai Tietz <ktietz at gcc dot gnu.org> ---
well, by applying this patch I see an ICE for testcase provided in pr/58775. 
There is an ssa-name generated with NULL-type.
Might be a side-effect.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
  2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
  2013-10-18 16:30 ` [Bug tree-optimization/58791] " jakub at gcc dot gnu.org
  2013-10-18 19:06 ` ktietz at gcc dot gnu.org
@ 2013-10-18 19:17 ` jakub at gcc dot gnu.org
  2013-10-21  8:43 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-10-18 19:17 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The patch is WIP, untested (except the single testcase here), and I've already
changed some further things in it.  It is premature to test it now.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
  2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2013-10-18 19:17 ` jakub at gcc dot gnu.org
@ 2013-10-21  8:43 ` rguenth at gcc dot gnu.org
  2013-10-22  9:52 ` jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-10-21  8:43 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code, wrong-debug
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-10-21
   Target Milestone|---                         |4.9.0
     Ever confirmed|0                           |1

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed, an issue in earlier releases because of wrong-debug.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
  2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2013-10-21  8:43 ` rguenth at gcc dot gnu.org
@ 2013-10-22  9:52 ` jakub at gcc dot gnu.org
  2013-10-23 16:19 ` jakub at gcc dot gnu.org
  2013-10-25 10:31 ` rguenth at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-10-22  9:52 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #31043|0                           |1
        is obsolete|                            |

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 31068
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31068&action=edit
gcc49-pr58791.patch

Updated patch that I'm bootstrapping/regtesting now.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
  2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2013-10-22  9:52 ` jakub at gcc dot gnu.org
@ 2013-10-23 16:19 ` jakub at gcc dot gnu.org
  2013-10-25 10:31 ` rguenth at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-10-23 16:19 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed Oct 23 16:19:17 2013
New Revision: 203979

URL: http://gcc.gnu.org/viewcvs?rev=203979&root=gcc&view=rev
Log:
    PR tree-optimization/58775
    PR tree-optimization/58791
    * tree-ssa-reassoc.c (reassoc_stmt_dominates_stmt_p): New function.
    (insert_stmt_after): Rewritten, don't move the stmt, but really
    insert it.
    (get_stmt_uid_with_default): Remove.
    (build_and_add_sum): Use insert_stmt_after and
    reassoc_stmt_dominates_stmt_p.  Fix up uid if bb contains only
    labels.
    (update_range_test): Set uid on stmts added by
    force_gimple_operand_gsi.  Don't immediately modify statements
    in inter-bb optimization, just update oe->op values.
    (optimize_range_tests): Return bool whether any changed have
    been made.
    (update_ops): New function.
    (struct inter_bb_range_test_entry): New type.
    (maybe_optimize_range_tests): Perform statement changes here.
    (not_dominated_by, appears_later_in_bb, get_def_stmt,
    ensure_ops_are_available): Remove.
    (find_insert_point): Rewritten.
    (rewrite_expr_tree): Remove MOVED argument, add CHANGED argument,
    return LHS of the (new resp. old) stmt.  Don't call
    ensure_ops_are_available, don't reuse SSA_NAMEs, recurse first
    instead of last, move new stmt at the right place.
    (linearize_expr, repropagate_negates): Don't reuse SSA_NAMEs.
    (negate_value): Likewise.  Set uids.
    (break_up_subtract_bb): Initialize uids.
    (reassociate_bb): Adjust rewrite_expr_tree caller.
    (do_reassoc): Don't call renumber_gimple_stmt_uids.

    * gcc.dg/guality/pr58791-1.c: New test.
    * gcc.dg/guality/pr58791-2.c: New test.
    * gcc.dg/guality/pr58791-3.c: New test.
    * gcc.dg/guality/pr58791-4.c: New test.
    * gcc.dg/guality/pr58791-5.c: New test.
    * gcc.c-torture/compile/pr58775.c: New test.
    * gcc.dg/tree-ssa/reassoc-28.c: Don't scan reassoc1 dump.

Added:
    trunk/gcc/testsuite/gcc.c-torture/compile/pr58775.c
    trunk/gcc/testsuite/gcc.dg/guality/pr58791-1.c
    trunk/gcc/testsuite/gcc.dg/guality/pr58791-2.c
    trunk/gcc/testsuite/gcc.dg/guality/pr58791-3.c
    trunk/gcc/testsuite/gcc.dg/guality/pr58791-4.c
    trunk/gcc/testsuite/gcc.dg/guality/pr58791-5.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/tree-ssa/reassoc-28.c
    trunk/gcc/tree-ssa-reassoc.c


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
  2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2013-10-23 16:19 ` jakub at gcc dot gnu.org
@ 2013-10-25 10:31 ` rguenth at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-10-25 10:31 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed.  I'm not sure we want to backport any of this (well, I'm sure we won't).


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-10-25 10:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
2013-10-18 16:30 ` [Bug tree-optimization/58791] " jakub at gcc dot gnu.org
2013-10-18 19:06 ` ktietz at gcc dot gnu.org
2013-10-18 19:17 ` jakub at gcc dot gnu.org
2013-10-21  8:43 ` rguenth at gcc dot gnu.org
2013-10-22  9:52 ` jakub at gcc dot gnu.org
2013-10-23 16:19 ` jakub at gcc dot gnu.org
2013-10-25 10:31 ` rguenth at gcc dot gnu.org

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).