[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
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
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
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
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
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
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
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.