[Bug rtl-optimization/90275] [8/9/10 Regression] ICE: in insert_regs, at cse.c:1128 with -O2 -fno-dce -fno-tree-dce
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Dec 12 16:49:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90275
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I think this is related to the *movsi_compare0 ARM define_ins which prevents
obvious cleanups, so we end up with:
(insn 97 90 98 24 (parallel [
(set (reg:CC 100 cc)
(compare:CC (reg:SI 131 [ d_lsm.22 ])
(const_int 0 [0])))
(set (reg:SI 135)
(reg:SI 131 [ d_lsm.22 ]))
]) "pr90275.c":18:20 248 {*movsi_compare0}
(expr_list:REG_DEAD (reg:SI 131 [ d_lsm.22 ])
(nil)))
// unrelated insn that doesn't touch SI 131 or SI 135, but consumes CC register
(insn 154 98 155 24 (set (reg:SI 131 [ d_lsm.22 ])
(reg:SI 135)) "pr90275.c":18:20 241 {*arm_movsi_insn}
(expr_list:REG_DEAD (reg:SI 135)
(nil)))
where CSE is unhappy about the pseudo being copied there and back.
More information about the Gcc-bugs
mailing list