[Bug tree-optimization/57521] [4.7/4.8 Regression] wrong code for expressions in loop at -O3

2013-09-09 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57521

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Mon Sep  9 09:51:18 2013
New Revision: 202388

URL: http://gcc.gnu.org/viewcvs?rev=202388root=gccview=rev
Log:
2013-09-09  Richard Biener  rguent...@suse.de

Backport from mainline
2013-08-27  Richard Biener  rguent...@suse.de

PR tree-optimization/57521
* tree-if-conv.c (if_convertible_bb_p): Verify that at least
one edge is non-critical.
(find_phi_replacement_condition): Make sure to use a non-critical
edge.  Cleanup and remove old bug workarounds.
(bb_postdominates_preds): Remove.
(if_convertible_loop_p_1): Do not compute post-dominators.
(combine_blocks): Do not free post-dominators.
(main_tree_if_conversion): Likewise.

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

Added:
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/torture/pr57521.c
Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
branches/gcc-4_8-branch/gcc/tree-if-conv.c


[Bug tree-optimization/57521] [4.7/4.8 Regression] wrong code for expressions in loop at -O3

2013-08-27 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57521

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 for expressions  |code for expressions in
   |in loop at -O3  |loop at -O3
  Known to fail||4.8.1

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Tue Aug 27 10:10:34 2013
New Revision: 202019

URL: http://gcc.gnu.org/viewcvs?rev=202019root=gccview=rev
Log:
2013-08-27  Richard Biener  rguent...@suse.de

PR tree-optimization/57521
* tree-if-conv.c (if_convertible_bb_p): Verify that at least
one edge is non-critical.
(find_phi_replacement_condition): Make sure to use a non-critical
edge.  Cleanup and remove old bug workarounds.
(bb_postdominates_preds): Remove.
(if_convertible_loop_p_1): Do not compute post-dominators.
(combine_blocks): Do not free post-dominators.
(main_tree_if_conversion): Likewise.
(pass_data_if_conversion): Add TODO_verify_ssa.

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

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr57521.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-if-conv.c