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

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So, on the first difference without -g the 2 memories are
(gdb) p pending_mem->element ()
$1 = (mem/c:V4SI (plus:DI (value/c:DI 2:2 @0x39559d8/0x39359d0)
        (const_int -472 [0xfffffffffffffe28])) [1  S16 A128])
(gdb) p debug_rtx (t)
(mem:SI (plus:DI (value/c:DI 2:2 @0x39559d8/0x39359d0)
        (const_int -264 [0xfffffffffffffef8])) [1  S4 A128])
where they use the same VALUE and so it is clear that there is no overlap
between them.
value/c 2:2 is SP_DERIVED_VALUE_P value with no locs, introduced in
r10-7515-g2c0fa3ecf70d199af.
While with -g we see on the same case:
(gdb) p debug_rtx (pending_mem->element ())
(mem/c:V4SI (plus:DI (value/c:DI 2:2 @0x3958808/0x3938800)
        (const_int -472 [0xfffffffffffffe28])) [1  S16 A128])
$3 = void
(gdb) p debug_rtx (t)
(mem:SI (plus:DI (value:DI 3:3946 @0x3958820/0x3938830)
        (const_int 120 [0x78])) [1  S4 A128])
where value/c 2:2 is the same thing, and value 3:3946 has a single loc
with loc (reg/f:DI 7 sp) and setting insn
(insn/f 1250 1002 1251 2 (parallel [
            (set (reg/f:DI 7 sp)
                (plus:DI (reg/f:DI 7 sp)
                    (const_int -384 [0xfffffffffffffe80])))
            (clobber (reg:CC 17 flags))
            (clobber (mem:BLK (scratch) [0  A8]))
        ]) "pr106746.c":15:1 1344 {pro_epilogue_adjust_stack_add_di}
     (expr_list:REG_UNUSED (reg:CC 17 flags)
        (expr_list:REG_CFA_ADJUST_CFA (set (reg/f:DI 7 sp)
                (plus:DI (reg/f:DI 7 sp)
                    (const_int -384 [0xfffffffffffffe80])))
            (nil))))

Now, there are only 2 sp changing instructions, 1250 doing sp = sp - 384 and
another one in the epilogue sp = sp + 384.

Both of the values are created early when seeing the 1250 instruction:
cselib lookup (scratch) => 1:43
cselib value 2:2 0x463f520 (reg/f:DI 7 sp)

cselib lookup (reg/f:DI 7 sp) => 2:2
cselib value 3:3946 0x463f550 (plus:DI (reg/f:DI 7 sp)
    (const_int -384 [0xfffffffffffffe80]))
in both -g and -g0 cases.

Reply via email to