[Bug tree-optimization/61221] [4.10 Regression] ICE on valid code at -O1 and above on x86_64-linux-gnu

2014-05-19 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61221

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-05-19
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
   Target Milestone|--- |4.10.0
Summary|ICE on valid code at -O1|[4.10 Regression] ICE on
   |and above on|valid code at -O1 and above
   |x86_64-linux-gnu|on x86_64-linux-gnu
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener  ---
Confirmed, mine.


[Bug tree-optimization/61221] [4.10 Regression] ICE on valid code at -O1 and above on x86_64-linux-gnu

2014-05-19 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61221

--- Comment #2 from Richard Biener  ---
Interesting ;)  We do some non-sensical simplification on dead code and ICE.
But our dead-CFG compute code in SCCVN isn't up to recognizing a dead loop
because it's conservative and not optimistic.

Ultimatively this all is because of replacing a call with sth that doesn't
have a VDEF and gsi_replace/update_stmt being called which releases an SSA
name which corrupts the value-numbering lattice.


[Bug tree-optimization/61221] [4.10 Regression] ICE on valid code at -O1 and above on x86_64-linux-gnu

2014-05-19 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61221

--- Comment #3 from Richard Biener  ---
Author: rguenth
Date: Mon May 19 14:33:31 2014
New Revision: 210614

URL: http://gcc.gnu.org/viewcvs?rev=210614&root=gcc&view=rev
Log:
2014-05-19  Richard Biener  

PR tree-optimization/61221
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
Do nothing for unreachable blocks.
* tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
Improve unreachability detection.

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

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr61221.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-pre.c
trunk/gcc/tree-ssa-sccvn.c


[Bug tree-optimization/61221] [4.10 Regression] ICE on valid code at -O1 and above on x86_64-linux-gnu

2014-05-19 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61221

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #4 from Richard Biener  ---
Fixed (worked around, real fix in testing).


[Bug tree-optimization/61221] [4.10 Regression] ICE on valid code at -O1 and above on x86_64-linux-gnu

2014-05-20 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61221

--- Comment #5 from Richard Biener  ---
Author: rguenth
Date: Tue May 20 08:16:13 2014
New Revision: 210633

URL: http://gcc.gnu.org/viewcvs?rev=210633&root=gcc&view=rev
Log:
2014-05-20  Richard Biener  

PR tree-optimization/61221
* tree-ssa-pre.c (el_to_update): Remove.
(eliminate_dom_walker::before_dom_children): Handle released
VDEFs by value-numbering them to the associated VUSE.  Update
stmt immediately for substituted call address.
(eliminate): Remove delayed stmt updating code.
* tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
possibly late re-numbered vuses.
(vn_reference_lookup_2): Adjust.
(vn_reference_lookup_pieces): Likewise.
(vn_reference_lookup): Likewise.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-pre.c
trunk/gcc/tree-ssa-sccvn.c