https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85393

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Looking at cprop2 now, before that we have:
(insn 74 73 75 13 (parallel [
            (set (reg/f:DI 108)
                (plus:DI (reg/f:DI 20 frame)
                    (const_int -64 [0xffffffffffffffc0])))
            (clobber (reg:CC 17 flags))
        ]) "rh1564790.C":15 222 {*adddi_1}
     (expr_list:REG_UNUSED (reg:CC 17 flags)
        (nil)))

(insn 75 74 76 13 (set (reg:DI 5 di)
        (reg/f:DI 108)) "rh1564790.C":15 85 {*movdi_internal}
     (expr_list:REG_DEAD (reg/f:DI 108)
        (expr_list:REG_EQUAL (plus:DI (reg/f:DI 20 frame)
                (const_int -64 [0xffffffffffffffc0]))
            (nil))))
before the _ZNSt6vectorIS_IcSaIcEESaIS1_EED1Ev call, but cprop2 replaces it
with:
rescanning insn with uid = 62.
LOCAL COPY-PROP: Replacing reg 107 in insn 62 with reg 123
rescanning insn with uid = 75.
LOCAL COPY-PROP: Replacing reg 108 in insn 75 with reg 123
rescanning insn with uid = 118.
LOCAL COPY-PROP: Replacing reg 121 in insn 118 with reg 123
reg 123 isn't set in all paths that reach this basic block though (and, isn't
local copy-prop something supposed to be local anyway?).

Reply via email to