[Bug tree-optimization/63380] [5 Regression] Wrong constant folding

2014-10-10 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63380

--- Comment #7 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Fri Oct 10 11:05:39 2014
New Revision: 216066

URL: https://gcc.gnu.org/viewcvs?rev=216066root=gccview=rev
Log:
2014-10-10  Richard Biener  rguent...@suse.de

PR tree-optimization/63380
* tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
may trap.

* gcc.dg/torture/pr63380-1.c: New testcase.
* gcc.dg/torture/pr63380-2.c: Likewise.

Added:
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr63380-1.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr63380-2.c
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
branches/gcc-4_9-branch/gcc/tree-ssa-tail-merge.c


[Bug tree-optimization/63380] [5 Regression] Wrong constant folding

2014-10-09 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63380

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
*** Bug 63381 has been marked as a duplicate of this bug. ***


[Bug tree-optimization/63380] [5 Regression] Wrong constant folding

2014-10-09 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63380

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug tree-optimization/63380] [5 Regression] Wrong constant folding

2014-10-09 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63380

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Thu Oct  9 12:45:07 2014
New Revision: 216038

URL: https://gcc.gnu.org/viewcvs?rev=216038root=gccview=rev
Log:
2014-10-09  Richard Biener  rguent...@suse.de

PR tree-optimization/63380
* tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
may trap.

* gcc.dg/torture/pr63380-1.c: New testcase.
* gcc.dg/torture/pr63380-2.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr63380-1.c
trunk/gcc/testsuite/gcc.dg/torture/pr63380-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-tail-merge.c


[Bug tree-optimization/63380] [5 Regression] Wrong constant folding

2014-10-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63380

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Hmm.  We end up with

main ()
{
  int d.0_4;
  int e.1_5;
  int _7;
  int b.7_11;
  int a.8_12;

  bb 2:
  d.0_4 = d;
  e.1_5 = 1  d.0_4;
  e = e.1_5;
  _7 = 31 / 0;

in the end.  Which is caused by tail-merging (part of PRE) optimizing

  bb 2:
  d.0_4 = d;
  e.1_5 = 1  d.0_4;
  e = e.1_5;
  if (e.1_5 = 0)
goto bb 10;
  else
goto bb 3;

  bb 10:
  goto bb 4;

  bb 3:
  _7 = 31 / 0;

  bb 4:

by removing bb 3 as having no side-effect appearantly (_7 is unused).  It
produces

  bb 2:
  d.0_4 = d;
  e.1_5 = 1  d.0_4;
  e = e.1_5;

  bb 3:
  _7 = 31 / 0;

  bb 4:

not sure how it ends up doing that (I suppose it has code to merge an
if diamond).


[Bug tree-optimization/63380] [5 Regression] Wrong constant folding

2014-10-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63380

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 #2 from Richard Biener rguenth at gcc dot gnu.org ---
Mine.


[Bug tree-optimization/63380] [5 Regression] Wrong constant folding

2014-10-02 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63380

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-10-02
 CC||mpolacek at gcc dot gnu.org
   Target Milestone|--- |5.0
Summary|Wrong constant folding  |[5 Regression] Wrong
   ||constant folding
 Ever confirmed|0   |1

--- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org ---
Works with -fno-tree-vrp.  Seems to have started with r211904.