[Bug tree-optimization/81987] [8 Regression] ICE in verify_ssa with -O3 -march=skylake-avx512
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Aug 28 10:47:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81987
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |wschmidt at gcc dot gnu.org
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
It looks like the SLSR issue is latent before the change. The change
introduces IL differences in PRE:
<bb 11> [54.69%] [count: INV]:
- # prephitmp_66 = PHI <d.6_6(9), prephitmp_104(10), pretmp_105(30)>
- pretmp_117 = _2;
- pretmp_116 = c.0_1;
+ # prephitmp_72 = PHI <d.6_6(9), prephitmp_112(10), pretmp_113(33)>
+ # prephitmp_73 = PHI <c.0_1(9), c.0_1(10), c.0_1(33)>
+ # prephitmp_74 = PHI <_2(9), _2(10), _2(33)>
the first CFG difference appears after VRP1 where we see a predecessor
edge order difference.
--- a/t.c.104t.vrp1 2017-08-28 11:14:39.031605121 +0200
+++ b/t.c.104t.vrp1 2017-08-28 11:14:33.247510516 +0200
@@ -294,10 +294,10 @@
;; 7
;; basic block 7, loop depth 0
-;; pred: 28
-;; 6
+;; pred: 6
+;; 28
;; 5
- # .MEM_60 = PHI <.MEM_57(28), .MEM_59(6), .MEM_39(5)>
+ # .MEM_60 = PHI <.MEM_59(6), .MEM_57(28), .MEM_39(5)>
# VUSE <.MEM_60>
# rhs access alignment 16+0
d.6_6 = d;
That's expected given we change the order we install edges in split_edge.
The PRE IL change is also somewhat expected as it uses post-order on the
inverted graph to compute ANTIC_IN and this order is dependent on the
order of edges in pred. I will poke a bit to see why there's a difference
in what PRE finally does.
So Bill - can you look at the SLSR issue?
More information about the Gcc-bugs
mailing list