[Bug rtl-optimization/88416] [8/9 Regression] ICE in in df_uses_record, at df-scan.c:3013
segher at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Dec 10 10:46:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88416
Segher Boessenkool <segher at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |NEW
--- Comment #2 from Segher Boessenkool <segher at gcc dot gnu.org> ---
We started with
(insn 11 10 29 2 (set (reg:DI 85)
(mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8]))
"/home/segher/tot/lib/gcc/x86_64-pc-linux-gnu/9.0.0/include/ia32intrin.h":262:10
52 {*popdi1}
(nil))
(debug_insn 29 11 12 2 (var_location:DI D#1 (reg:DI 85)) -1
(nil))
(insn 12 29 13 2 (set (reg:DI 83 [ _4 ])
(reg:DI 85))
"/home/segher/tot/lib/gcc/x86_64-pc-linux-gnu/9.0.0/include/ia32intrin.h":262:10
66 {*movdi_internal}
(expr_list:REG_DEAD (reg:DI 85)
(nil)))
and then we combined 11 into 12:
Trying 11 -> 12:
11: r85:DI=[sp:DI++]
12: r83:DI=r85:DI
REG_DEAD r85:DI
Successfully matched this instruction:
(set (reg:DI 83 [ _4 ])
(mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8]))
allowing combination of insns 11 and 12
original costs 8 + 4 = 12
replacement cost 8
deferring rescan insn with uid = 29.
deferring deletion of insn with uid = 11.
modifying insn i3 12: r83:DI=[sp:DI++]
deferring rescan insn with uid = 12.
writing 29 as
(debug_insn 29 11 12 2 (var_location:DI D#1 (mem:DI (post_inc:DI (reg/f:DI 7
sp)
) [0 S8 A8])) -1
(nil))
and df_insn_refs_verify chokes on that for some reason. I dunno.
Unassigning.
More information about the Gcc-bugs
mailing list