[Bug tree-optimization/95679] [11 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in type_has_mode_precision_p, at tree.h:6231

2020-07-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95679

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #7 from Richard Biener  ---
Fixed.

[Bug tree-optimization/95679] [11 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in type_has_mode_precision_p, at tree.h:6231

2020-07-29 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95679

--- Comment #6 from CVS Commits  ---
The master branch has been updated by Richard Biener :

https://gcc.gnu.org/g:8e8792a347c87dbb82b4cf75ec3452bc5cd1d3db

commit r11-2400-g8e8792a347c87dbb82b4cf75ec3452bc5cd1d3db
Author: Richard Biener 
Date:   Wed Jul 29 09:59:01 2020 +0200

tree-optimization/95679 - properly signal changes from
propagate_into_phi_args

This restores a lost setting of something_changed with the
recent refactoring of the substitute and fold engine.  The
reported ICE in the PR was meanwhile mitigated in other ways
but the issue can still result in missed optimizations via
failed runs of CFG cleanup.

2020-07-29  Richard Biener  

PR tree-optimization/95679
* tree-ssa-propagate.h
(substitute_and_fold_engine::propagate_into_phi_args): Return
whether anything changed.
* tree-ssa-propagate.c
(substitute_and_fold_engine::propagate_into_phi_args): Likewise.
(substitute_and_fold_dom_walker::before_dom_children): Update
something_changed.

[Bug tree-optimization/95679] [11 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in type_has_mode_precision_p, at tree.h:6231

2020-07-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95679

--- Comment #5 from Martin Liška  ---
r11-1146-g1396fa5b91cfa0b3

[Bug tree-optimization/95679] [11 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in type_has_mode_precision_p, at tree.h:6231

2020-07-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95679

Martin Liška  changed:

   What|Removed |Added

   Keywords|needs-bisection |
 CC||marxin at gcc dot gnu.org

--- Comment #4 from Martin Liška  ---
Just for the record, it started with .

[Bug tree-optimization/95679] [11 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in type_has_mode_precision_p, at tree.h:6231

2020-07-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95679

--- Comment #3 from Richard Biener  ---
And the ICE was mitigated by g:8fb4d1d58362b77da78c09740c6b5562124a369e but
the 'changed' flag still is missing.

[Bug tree-optimization/95679] [11 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in type_has_mode_precision_p, at tree.h:6231

2020-07-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95679

Richard Biener  changed:

   What|Removed |Added

 CC||aldyh at gcc dot gnu.org

--- Comment #2 from Richard Biener  ---
SCEV info is wrecked by copyprop in this case which does

 u1 (int hu, int nd)
 {
   int ex.0_1;
@@ -36,10 +41,9 @@
[local count: 64191087]:

[local count: 118111600]:
-  # hu_10 = PHI 

[local count: 1073741824]:
-  # hu_4 = PHI 
+  # hu_4 = PHI 
   _2 = (long int) hu_4;
   _3 = (void (*) (int, int)) _2;
   if (_3 < u1)

caused by Aldys refactoring which lost a "changed" setting by too much
C++-ification.  Also looks like propagating into PHI args is now done twice?!

Testing patch.

[Bug tree-optimization/95679] [11 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in type_has_mode_precision_p, at tree.h:6231

2020-07-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95679

Richard Biener  changed:

   What|Removed |Added

 Ever confirmed|0   |1
   Last reconfirmed||2020-07-15
   Target Milestone|--- |11.0
 Status|UNCONFIRMED |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
   Keywords||needs-bisection

--- Comment #1 from Richard Biener  ---
Whoops, this fell through the cracks - I can't reproduce with
g:7a4770f0394751860ee54520b23007938907ac33 though.  Confirmed with your
cited rev. where we see

 
unit-size 
align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7682d1f8 precision:64 min  max >

arg:0 
constant
arg:0 
constant arg:0 
t.c:8:17 start: t.c:8:17 finish: t.c:8:17>>
arg:1 

arg:0 
nothrow
def_stmt 
version:10 in-free-list>>>

and thus a released SSA name.  That's probably inconsistent SCEV cache
not reset before cunroll and the issue is probably still latent.

For curiosity I wonder what "fixed" it.