[Bug tree-optimization/79347] [7 regression] vect_do_peeling is messing up profile
amker at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Feb 16 10:53:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79347
--- Comment #12 from amker at gcc dot gnu.org ---
(In reply to Rainer Orth from comment #10)
> The new testcase FAILs on sparc-sun-solaris2.12, both 32 and 64-bit:
>
> +FAIL: gcc.dg/vect/pr79347.c -flto -ffat-lto-objects scan-tree-dump-times
> vect "Invalid sum of " 2
> +FAIL: gcc.dg/vect/pr79347.c scan-tree-dump-times vect "Invalid sum of " 2
>
> "Invalid sum of " doesn't occur in the dump file at all.
>
> Rainer
Though the dump has consistent frequency number, it really looks wrong since
back edge of vectorized loop has 0 counter.
;; basic block 9, loop depth 1, count 0, freq 1148, maybe hot
;; prev block 8, next block 10, flags: (NEW, REACHABLE, VISITED)
;; pred: 10 [100.0%] (FALLTHRU,DFS_BACK,EXECUTABLE)
;; 8 [100.0%] (FALLTHRU)
# RANGE [0, 2147483647] NONZERO 2147483647
# i_18 = PHI <i_14(10), i_38(8)>
# .MEM_19 = PHI <.MEM_76(10), .MEM_39(8)>
# PT = nonlocal escaped null
# ALIGN = 8, MISALIGN = 0
# vectp_a.13_65 = PHI <vectp_a.13_66(10), vectp_a.14_63(8)>
# PT = nonlocal escaped null
# ALIGN = 8, MISALIGN = 0
# vectp_a.19_74 = PHI <vectp_a.19_75(10), vectp_a.20_72(8)>
# ivtmp_77 = PHI <ivtmp_78(10), 0(8)>
# RANGE [0, 4294967295]
i.1_2 = (unsigned intD.4) i_18;
# RANGE [0, 4294967295] NONZERO 4294967294
_3 = i.1_2 * 2;
# PT = nonlocal escaped null
_4 = a.0_1 + _3;
# VUSE <.MEM_19>
vect__5.15_67 = MEM[(short intD.10 *)vectp_a.13_65];
# VUSE <.MEM_19>
_5 = *_4;
vect__6.16_68 = VIEW_CONVERT_EXPR<vector(4) unsigned short>(vect__5.15_67);
# RANGE [0, 65535]
_6 = (unsigned short) _5;
vect__7.17_70 = vect__6.16_68 + vect_cst__69;
# RANGE [0, 65535]
_7 = _6 + 1;
vect__8.18_71 = VIEW_CONVERT_EXPR<vector(4) short intD.10>(vect__7.17_70);
_8 = (short intD.10) _7;
# .MEM_76 = VDEF <.MEM_19>
MEM[(short intD.10 *)vectp_a.19_74] = vect__8.18_71;
i_14 = i_18 + 1;
# PT = nonlocal escaped null
# ALIGN = 8, MISALIGN = 0
vectp_a.13_66 = vectp_a.13_65 + 8;
# PT = nonlocal escaped null
# ALIGN = 8, MISALIGN = 0
vectp_a.19_75 = vectp_a.19_74 + 8;
ivtmp_78 = ivtmp_77 + 1;
if (ivtmp_78 < bnd.10_58)
goto <bb 10>; [0.00%]
else
goto <bb 11>; [100.00%]
;; succ: 10 (TRUE_VALUE,EXECUTABLE)
;; 11 [100.0%] (FALSE_VALUE,EXECUTABLE)
;; basic block 10, loop depth 1, count 0, freq 0
;; prev block 9, next block 11, flags: (NEW, VISITED)
;; pred: 9 (TRUE_VALUE,EXECUTABLE)
goto <bb 9>; [100.00%]
;; succ: 9 [100.0%] (FALLTHRU,DFS_BACK,EXECUTABLE)
I will have a look. Thanks.
More information about the Gcc-bugs
mailing list