public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu
@ 2014-01-08  6:37 su at cs dot ucdavis.edu
  2014-01-08  6:58 ` [Bug tree-optimization/59715] " steven at gcc dot gnu.org
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: su at cs dot ucdavis.edu @ 2014-01-08  6:37 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 59715
           Summary: wrong code at -Os and above on x86_64-linux-gnu
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: su at cs dot ucdavis.edu

The current gcc trunk (as well as 4.8.x and 4.7.x) miscompiles the following
code on x86_64-linux at -Os and above in both 32-bit and 64-bit modes.

This is a regression from 4.6.x. 


$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-trunk/configure --prefix=/usr/local/gcc-trunk
--enable-languages=c,c++ --disable-werror --enable-multilib
Thread model: posix
gcc version 4.9.0 20140107 (experimental) [trunk revision 206387] (GCC) 
$ 
$ gcc-trunk -O1 small.c; a.out
0
$ gcc-4.6 -Os small.c; a.out
0
$ gcc-trunk -Os small.c; a.out
2
$ gcc-4.8 -Os small.c; a.out
2
$ gcc-4.7 -Os small.c; a.out
2
$ 


----------------------------------


int printf (const char *, ...);

int a = 2, b;

int
main ()
{
  int c;
  if (!b)
    {
      b = a;
      c = a == 0 ? 1 : 1 % a;
      if (c)
    b = 0;
    }
  printf ("%d\n", b);
  return 0;
}


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

* [Bug tree-optimization/59715] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
@ 2014-01-08  6:58 ` steven at gcc dot gnu.org
  2014-01-08  7:07 ` jakub at gcc dot gnu.org
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: steven at gcc dot gnu.org @ 2014-01-08  6:58 UTC (permalink / raw)
  To: gcc-bugs

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

Steven Bosscher <steven at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #1 from Steven Bosscher <steven at gcc dot gnu.org> ---
b is used uninitialized => undefined behavior


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

* [Bug tree-optimization/59715] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
  2014-01-08  6:58 ` [Bug tree-optimization/59715] " steven at gcc dot gnu.org
@ 2014-01-08  7:07 ` jakub at gcc dot gnu.org
  2014-01-08  7:12 ` [Bug tree-optimization/59715] [4.7/4.8/4.9 Regression] " jakub at gcc dot gnu.org
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-01-08  7:07 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
   Last reconfirmed|                            |2014-01-08
                 CC|                            |jakub at gcc dot gnu.org
         Resolution|INVALID                     |---
     Ever confirmed|0                           |1

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Nope, b is initialized to 0.


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

* [Bug tree-optimization/59715] [4.7/4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
  2014-01-08  6:58 ` [Bug tree-optimization/59715] " steven at gcc dot gnu.org
  2014-01-08  7:07 ` jakub at gcc dot gnu.org
@ 2014-01-08  7:12 ` jakub at gcc dot gnu.org
  2014-01-08  9:06 ` steven at gcc dot gnu.org
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-01-08  7:12 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vries at gcc dot gnu.org
   Target Milestone|---                         |4.7.4
            Summary|wrong code at -Os and above |[4.7/4.8/4.9 Regression]
                   |on x86_64-linux-gnu         |wrong code at -Os and above
                   |                            |on x86_64-linux-gnu

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r179275.


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

* [Bug tree-optimization/59715] [4.7/4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
                   ` (2 preceding siblings ...)
  2014-01-08  7:12 ` [Bug tree-optimization/59715] [4.7/4.8/4.9 Regression] " jakub at gcc dot gnu.org
@ 2014-01-08  9:06 ` steven at gcc dot gnu.org
  2014-01-08 11:08 ` vries at gcc dot gnu.org
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: steven at gcc dot gnu.org @ 2014-01-08  9:06 UTC (permalink / raw)
  To: gcc-bugs

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

Steven Bosscher <steven at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |NEW

--- Comment #4 from Steven Bosscher <steven at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #2)
> Nope, b is initialized to 0.

Eh, right, sorry!


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

* [Bug tree-optimization/59715] [4.7/4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
                   ` (3 preceding siblings ...)
  2014-01-08  9:06 ` steven at gcc dot gnu.org
@ 2014-01-08 11:08 ` vries at gcc dot gnu.org
  2014-01-08 11:46 ` rguenth at gcc dot gnu.org
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: vries at gcc dot gnu.org @ 2014-01-08 11:08 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from vries at gcc dot gnu.org ---
The test passes with -fno-tree-tail-merge. But I don't see anything wrong with
the transformation (merging of empty blocks) done by the pass. 

AFAICT, the problem is introduced by pass_dominator. test.c.126t.slsr looks ok,
but test.c.127t.dom2 look wrong. The test passes with -fno-tree-dominator-opts.

test.c.126t.slsr:
...
  <bb 2>:
  b.0_4 = b;
  if (b.0_4 == 0)
    goto <bb 4>;
  else
    goto <bb 3>;

  <bb 3>:
  goto <bb 7>;

  <bb 4>:
  a.1_5 = a;
  if (a.1_5 != 0)
    goto <bb 5>;
  else
    goto <bb 6>;

  <bb 5>:
  b = a.1_5;
  c_7 = 1 % a.1_5;
  if (c_7 != 0)
    goto <bb 6>;
  else
    goto <bb 3>;

  <bb 6>:
  b = 0;

  <bb 7>:
  b.0_9 = b;
  printf ("%d\n", b.0_9);
  return 0;
...
we're taking the path bb2 -> bb4 -> bb5 (b = 2) -> bb6 (b = 0) -> bb7

test.c.127t.dom2:
...
  <bb 2>:
  b.0_4 = b;
  if (b.0_4 == 0)
    goto <bb 4>;
  else
    goto <bb 3>;

  <bb 3>:
  goto <bb 6>;

  <bb 4>:
  a.1_5 = a;
  if (a.1_5 != 0)
    goto <bb 5>;
  else
    goto <bb 6>;

  <bb 5>:
  b = a.1_5;
  c_7 = 1 % a.1_5;
  if (c_7 != 0)
    goto <bb 6>;
  else
    goto <bb 3>;

  <bb 6>:
  b.0_9 = b;
  printf ("%d\n", b.0_9);
  return 0;
...
we're taking the path bb2 -> bb4 -> bb5 (b = 2) -> bb6


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

* [Bug tree-optimization/59715] [4.7/4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
                   ` (4 preceding siblings ...)
  2014-01-08 11:08 ` vries at gcc dot gnu.org
@ 2014-01-08 11:46 ` rguenth at gcc dot gnu.org
  2014-01-08 12:32 ` rguenth at gcc dot gnu.org
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-01-08 11:46 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
           Priority|P3                          |P2


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

* [Bug tree-optimization/59715] [4.7/4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
                   ` (5 preceding siblings ...)
  2014-01-08 11:46 ` rguenth at gcc dot gnu.org
@ 2014-01-08 12:32 ` rguenth at gcc dot gnu.org
  2014-01-08 13:08 ` rguenth at gcc dot gnu.org
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-01-08 12:32 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot gnu.org

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
Mine then.


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

* [Bug tree-optimization/59715] [4.7/4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
                   ` (6 preceding siblings ...)
  2014-01-08 12:32 ` rguenth at gcc dot gnu.org
@ 2014-01-08 13:08 ` rguenth at gcc dot gnu.org
  2014-01-08 13:54 ` rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-01-08 13:08 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
virtual SSA form is broken, we have overlapping life-ranges - a virtual PHI
node is missing in bb 6, seems to be broken by store sinking (-fno-tree-sink
fixes it).  The virtual SSA form updating is too simple:

      /* Update virtual operands of statements in the path we
         do not sink to.  */
      if (gimple_vdef (stmt))
        {
          imm_use_iterator iter;
          use_operand_p use_p;
          gimple vuse_stmt;

          FOR_EACH_IMM_USE_STMT (vuse_stmt, iter, gimple_vdef (stmt))
            if (gimple_code (vuse_stmt) != GIMPLE_PHI)
              FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
                SET_USE (use_p, gimple_vuse (stmt));
        }

as in this case we sink

    store
     |  \
     x   |
    / \  |
   /   \ y ---
  /           \
needed-here    \
              but not here

sinking assumes that critical edges are split - but tail-merging breaks this
assumption, breaking sinking.  With critical edges split we can insert
on the edge to needed-here.

Either dumb down sinking (detect the critical edge case and don't sink),
make it insert on edges instead, or restore previous behavior to have
critical edges split after PRE (note it may be already partly broken
before as cfg-cleanup unsplits edges again).

So it is tail-merging introducing this after all, but not necessarily
tail-mergings fault.


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

* [Bug tree-optimization/59715] [4.7/4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
                   ` (7 preceding siblings ...)
  2014-01-08 13:08 ` rguenth at gcc dot gnu.org
@ 2014-01-08 13:54 ` rguenth at gcc dot gnu.org
  2014-01-08 14:20 ` rguenth at gcc dot gnu.org
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-01-08 13:54 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
Created attachment 31774
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31774&action=edit
untested patch

Like with the attached patch which performs edge-insertion.  But it doesn't
work that way because incrementally sinking then isn't able to figure out
a destination gsi (we can't do gsi_for_stmt on an edge-insertion-queued stmt,
bah).

But otherwise it fixes the bug ...

Leaves to disable the sinking, it's not the optimal insertion place anyway
(if not inserting on the edge).  Or to re-run critical edge splitting.


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

* [Bug tree-optimization/59715] [4.7/4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
                   ` (8 preceding siblings ...)
  2014-01-08 13:54 ` rguenth at gcc dot gnu.org
@ 2014-01-08 14:20 ` rguenth at gcc dot gnu.org
  2014-01-09  9:21 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-01-08 14:20 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
Created attachment 31775
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31775&action=edit
alternative patch

Alternative patch splitting critical edges again.  I'm going to test that, it
fixes optimization regressions from at least 4.3 where critical edges were
still
split reliably.


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

* [Bug tree-optimization/59715] [4.7/4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
                   ` (9 preceding siblings ...)
  2014-01-08 14:20 ` rguenth at gcc dot gnu.org
@ 2014-01-09  9:21 ` rguenth at gcc dot gnu.org
  2014-01-09  9:30 ` [Bug tree-optimization/59715] [4.7/4.8 " rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-01-09  9:21 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Thu Jan  9 09:21:02 2014
New Revision: 206460

URL: http://gcc.gnu.org/viewcvs?rev=206460&root=gcc&view=rev
Log:
2014-01-09  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/59715
    * tree-cfg.h (split_critical_edges): Declare.
    * tree-cfg.c (split_critical_edges): Export.
    * tree-ssa-sink.c (execute_sink_code): Split critical edges.

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

Added:
    trunk/gcc/testsuite/gcc.dg/torture/pr59715.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-cfg.c
    trunk/gcc/tree-cfg.h
    trunk/gcc/tree-ssa-sink.c


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

* [Bug tree-optimization/59715] [4.7/4.8 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
                   ` (10 preceding siblings ...)
  2014-01-09  9:21 ` rguenth at gcc dot gnu.org
@ 2014-01-09  9:30 ` rguenth at gcc dot gnu.org
  2014-01-10  8:37 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-01-09  9:30 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|                            |4.9.0
            Summary|[4.7/4.8/4.9 Regression]    |[4.7/4.8 Regression] wrong
                   |wrong code at -Os and above |code at -Os and above on
                   |on x86_64-linux-gnu         |x86_64-linux-gnu
      Known to fail|                            |4.8.2

--- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed on trunk sofar.


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

* [Bug tree-optimization/59715] [4.7/4.8 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
                   ` (11 preceding siblings ...)
  2014-01-09  9:30 ` [Bug tree-optimization/59715] [4.7/4.8 " rguenth at gcc dot gnu.org
@ 2014-01-10  8:37 ` rguenth at gcc dot gnu.org
  2014-05-07 10:02 ` [Bug tree-optimization/59715] [4.7 " rguenth at gcc dot gnu.org
  2014-05-07 10:07 ` rguenth at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-01-10  8:37 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Fri Jan 10 08:37:07 2014
New Revision: 206511

URL: http://gcc.gnu.org/viewcvs?rev=206511&root=gcc&view=rev
Log:
2014-01-10  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/59715
    * tree-flow.h (split_critical_edges): Declare.
    * tree-cfg.c (split_critical_edges): Export.
    * tree-ssa-sink.c (execute_sink_code): Split critical edges.

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

Added:
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/torture/pr59715.c
Modified:
    branches/gcc-4_8-branch/gcc/ChangeLog
    branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_8-branch/gcc/tree-cfg.c
    branches/gcc-4_8-branch/gcc/tree-flow.h
    branches/gcc-4_8-branch/gcc/tree-ssa-sink.c


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

* [Bug tree-optimization/59715] [4.7 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
                   ` (12 preceding siblings ...)
  2014-01-10  8:37 ` rguenth at gcc dot gnu.org
@ 2014-05-07 10:02 ` rguenth at gcc dot gnu.org
  2014-05-07 10:07 ` rguenth at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-05-07 10:02 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED
      Known to fail|                            |4.7.3

--- Comment #15 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed.


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

* [Bug tree-optimization/59715] [4.7 Regression] wrong code at -Os and above on x86_64-linux-gnu
  2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
                   ` (13 preceding siblings ...)
  2014-05-07 10:02 ` [Bug tree-optimization/59715] [4.7 " rguenth at gcc dot gnu.org
@ 2014-05-07 10:07 ` rguenth at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-05-07 10:07 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #16 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Wed May  7 10:07:09 2014
New Revision: 210147

URL: http://gcc.gnu.org/viewcvs?rev=210147&root=gcc&view=rev
Log:
2014-05-07  Richard Biener  <rguenther@suse.de>

    Backport from mainline
    2013-11-29  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/59334
    * tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
    in previous commit.

    2013-11-28  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/59330
    * tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
    and fix delayed marking of free calls not necessary.

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

    2014-01-09  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/59715
    * tree-cfg.h (split_critical_edges): Declare.
    * tree-cfg.c (split_critical_edges): Export.
    * tree-ssa-sink.c (execute_sink_code): Split critical edges.

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

Modified:
    branches/gcc-4_7-branch/gcc/tree-flow.h


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

end of thread, other threads:[~2014-05-07 10:07 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-08  6:37 [Bug tree-optimization/59715] New: wrong code at -Os and above on x86_64-linux-gnu su at cs dot ucdavis.edu
2014-01-08  6:58 ` [Bug tree-optimization/59715] " steven at gcc dot gnu.org
2014-01-08  7:07 ` jakub at gcc dot gnu.org
2014-01-08  7:12 ` [Bug tree-optimization/59715] [4.7/4.8/4.9 Regression] " jakub at gcc dot gnu.org
2014-01-08  9:06 ` steven at gcc dot gnu.org
2014-01-08 11:08 ` vries at gcc dot gnu.org
2014-01-08 11:46 ` rguenth at gcc dot gnu.org
2014-01-08 12:32 ` rguenth at gcc dot gnu.org
2014-01-08 13:08 ` rguenth at gcc dot gnu.org
2014-01-08 13:54 ` rguenth at gcc dot gnu.org
2014-01-08 14:20 ` rguenth at gcc dot gnu.org
2014-01-09  9:21 ` rguenth at gcc dot gnu.org
2014-01-09  9:30 ` [Bug tree-optimization/59715] [4.7/4.8 " rguenth at gcc dot gnu.org
2014-01-10  8:37 ` rguenth at gcc dot gnu.org
2014-05-07 10:02 ` [Bug tree-optimization/59715] [4.7 " rguenth at gcc dot gnu.org
2014-05-07 10:07 ` 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).