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

--- Comment #193 from Kazumoto Kojima <kkojima at gcc dot gnu.org> ---
(In reply to Kazumoto Kojima from comment #192)

Related parts of RTL dumps.

[.ira dump]

(insn 1747 1745 1748 125 (set (reg/f:SI 2854)
        (plus:SI (reg/f:SI 153 sfp)
            (const_int -136 [0xffffffffffffff78])))
"/git/gcc/gcc/pointer-query.
cc":1906:14 48 {*addsi3_compact_lra}
     (expr_list:REG_EQUAL (plus:SI (reg/f:SI 153 sfp)
            (const_int -136 [0xffffffffffffff78]))
        (nil)))
(insn 1748 1747 1749 125 (set (reg/f:SI 2847)
        (symbol_ref:SI ("__movmem_i4_even") [flags 0x1]))
"/git/gcc/gcc/pointer-
query.cc":1906:14 191 {movsi_ie}
     (expr_list:REG_EQUIV (symbol_ref:SI ("__movmem_i4_even") [flags 0x1])
        (nil)))
(insn 1749 1748 1750 125 (set (reg:SI 4 r4)
        (reg/f:SI 2854)) "/git/gcc/gcc/pointer-query.cc":1906:14 191 {movsi_ie}
     (expr_list:REG_EQUAL (plus:SI (reg/f:SI 153 sfp)
            (const_int -136 [0xffffffffffffff78]))
        (nil)))
(insn 1750 1749 1751 125 (set (reg:SI 5 r5)
        (reg/v/f:SI 724 [ pref ])) "/git/gcc/gcc/pointer-query.cc":1906:14 191
{movsi_ie}
     (nil))
(insn 1751 1750 1752 125 (set (reg:SI 6 r6)
        (const_int 16 [0x10])) "/git/gcc/gcc/pointer-query.cc":1906:14 191
{movsi_ie}
     (nil))
(insn 1752 1751 1753 125 (parallel [
            (set (mem:BLK (reg:SI 4 r4) [0  A8])
                (mem:BLK (reg:SI 5 r5) [0  A8]))
            (use (reg/f:SI 2847))
            (use (const_int 0 [0]))
            (use (reg:SI 6 r6))
            (clobber (reg:SI 146 pr))
            (clobber (reg:SI 147 t))
            (clobber (reg:SI 4 r4))
            (clobber (reg:SI 5 r5))
            (clobber (reg:SI 6 r6))
            (clobber (reg:SI 0 r0))
            (clobber (reg:SI 1 r1))
            (clobber (reg:SI 2 r2))
            (clobber (reg:SI 3 r3))
        ]) "/git/gcc/gcc/pointer-query.cc":1906:14 326 {block_lump_real_i4}
     (expr_list:REG_DEAD (reg:SI 6 r6)
        (expr_list:REG_DEAD (reg:SI 5 r5)
            (expr_list:REG_DEAD (reg:SI 4 r4)
                (expr_list:REG_UNUSED (reg:SI 147 t)
                    (expr_list:REG_UNUSED (reg:SI 146 pr)
                        (expr_list:REG_UNUSED (reg:SI 6 r6)
                            (expr_list:REG_UNUSED (reg:SI 5 r5)
                                (expr_list:REG_UNUSED (reg:SI 4 r4)
                                    (expr_list:REG_UNUSED (reg:SI 3 r3)
                                        (expr_list:REG_UNUSED (reg:SI 2 r2)
                                            (expr_list:REG_UNUSED (reg:SI 1 r1)
                                                (expr_list:REG_UNUSED (reg:SI 0
r0)
                                                    (nil))))))))))))))
(insn 1753 1752 1754 125 (set (mem:SI (plus:SI (reg/f:SI 15 r15)
                (const_int 8 [0x8])) [0  S4 A32])
        (reg/v/f:SI 726 [ qry ])) "/git/gcc/gcc/pointer-query.cc":1911:26 191
{movsi_ie}
     (expr_list:REG_DEAD (reg/v/f:SI 726 [ qry ])
        (nil)))
(insn 1754 1753 1756 125 (set (mem:SI (plus:SI (reg/f:SI 15 r15)
                (const_int 4 [0x4])) [0  S4 A32])
        (reg/v/f:SI 725 [ snlim ])) "/git/gcc/gcc/pointer-query.cc":1911:26 191
{movsi_ie}
     (expr_list:REG_DEAD (reg/v/f:SI 725 [ snlim ])
        (nil)))
(insn 1756 1754 1758 125 (set (mem:SI (reg/f:SI 15 r15) [0  S4 A32])
        (reg/f:SI 2854)) "/git/gcc/gcc/pointer-query.cc":1911:26 191 {movsi_ie}
     (nil))
(insn 1758 1756 1759 125 (set (reg:SI 7 r7)
        (const_int 0 [0])) "/git/gcc/gcc/pointer-query.cc":1911:26 191
{movsi_ie}
     (nil))
(insn 1759 1758 1760 125 (set (reg:SI 6 r6)
        (reg:SI 2905)) "/git/gcc/gcc/pointer-query.cc":1911:26 191 {movsi_ie}
     (nil))
(insn 1760 1759 1761 125 (set (reg:SI 5 r5)
        (reg:SI 2904)) "/git/gcc/gcc/pointer-query.cc":1911:26 191 {movsi_ie}
     (expr_list:REG_DEAD (reg:SI 2904)
        (nil)))
(insn 1761 1760 6435 125 (set (reg:SI 4 r4)
        (reg/v/f:SI 484 [ base ])) "/git/gcc/gcc/pointer-query.cc":1911:26 191
{movsi_ie}
     (nil))
(insn 6435 1761 1762 125 (set (reg/f:SI 1448)
        (symbol_ref:SI
("_ZL17compute_objsize_rP9tree_nodeP6gimplebiP10access_refR16ssa_name_limit_tP13pointer_query")
[flags 0x3]  <function_decl 0x7ca377e5ff00 compute_objsize_r>))
"/git/gcc/gcc/pointer-query.cc":1911:26 191 {movsi_ie}
     (expr_list:REG_EQUIV (symbol_ref:SI
("_ZL17compute_objsize_rP9tree_nodeP6gimplebiP10access_refR16ssa_name_limit_tP13pointer_query")
[flags 0x3]  <function_decl 0x7ca377e5ff00 compute_objsize_r>)
        (nil)))
(call_insn 1762 6435 5898 125 (parallel [
            (set (reg:SI 0 r0)
                (call (mem:SI (reg/f:SI 1448) [0 compute_objsize_r S4 A32])
                    (const_int 12 [0xc])))
            (use (reg:SI 154 fpscr0))
            (clobber (reg:SI 146 pr))
        ]) "/git/gcc/gcc/pointer-query.cc":1911:26 233 {call_valuei}
     (expr_list:REG_DEAD (reg/f:SI 1448)
        (expr_list:REG_DEAD (reg:SI 7 r7)
            (expr_list:REG_DEAD (reg:SI 6 r6)
                (expr_list:REG_DEAD (reg:SI 5 r5)
                    (expr_list:REG_DEAD (reg:SI 4 r4)
                        (expr_list:REG_CALL_DECL (symbol_ref:SI
("_ZL17compute_objsize_rP9tree_nodeP6gimplebiP10access_refR16ssa_name_limit_tP13pointer_query")
[flags 0x3]  <function_decl 0x7ca377e5ff00 compute_objsize_r>)
                            (expr_list:REG_EH_REGION (const_int 0 [0])
                                (nil))))))))
    (expr_list:SI (use (reg:SI 4 r4))
        (expr_list:SI (use (reg:SI 5 r5))
            (expr_list:SI (use (reg:SI 6 r6))
                (expr_list:SI (use (reg:SI 7 r7))
                    (expr_list:SI (use (mem/f:SI (reg/f:SI 15 r15) [0  S4
A32]))
                        (expr_list:SI (use (mem/f:SI (plus:SI (reg/f:SI 15 r15)
                                        (const_int 4 [0x4])) [0  S4 A32]))
                            (expr_list:SI (use (mem/f:SI (plus:SI (reg/f:SI 15
r15)
                                            (const_int 8 [0x8])) [0  S4 A32]))
                                (nil)))))))))
(insn 5898 1762 1763 125 (set (reg:SI 2942)
        (reg:SI 0 r0)) "/git/gcc/gcc/pointer-query.cc":1911:26 191 {movsi_ie}
     (expr_list:REG_DEAD (reg:SI 0 r0)
        (nil)))

[.reload dump]

(insn 1747 1745 7176 126 (set (reg/f:SI 4 r4 [2854])
        (plus:SI (reg/f:SI 15 r15)
            (const_int 212 [0xd4]))) "/git/gcc/gcc/pointer-query.cc":1906:14 48 
{*addsi3_compact_lra}
     (expr_list:REG_EQUAL (plus:SI (reg/f:SI 153 sfp)
            (const_int -136 [0xffffffffffffff78]))
        (nil)))
(insn 7176 1747 1748 126 (set (mem/c:SI (plus:SI (reg/f:SI 15 r15)
                (const_int 36 [0x24])) [506 %sfp+-312 S4 A32])
        (reg/f:SI 4 r4 [2854])) "/git/gcc/gcc/pointer-query.cc":1906:14 191
{movsi_ie}
     (nil))
(note 1748 7176 1750 126 NOTE_INSN_DELETED)
(insn 1750 1748 1751 126 (set (reg:SI 5 r5)
        (reg/v/f:SI 8 r8 [orig:724 pref ] [724]))
"/git/gcc/gcc/pointer-query.cc":1906:14 191 {movsi_ie}
     (nil))
(insn 1751 1750 6818 126 (set (reg:SI 6 r6)
        (const_int 16 [0x10])) "/git/gcc/gcc/pointer-query.cc":1906:14 191
{movsi_ie}
     (nil))
(insn 6818 1751 1752 126 (set (reg:SI 7 r7 [3270])
        (symbol_ref:SI ("__movmem_i4_even") [flags 0x1]))
"/git/gcc/gcc/pointer-query.cc":1906:14 191 {movsi_ie}
     (nil))
(insn 1752 6818 1753 126 (parallel [
            (set (mem:BLK (reg:SI 4 r4) [0  A8])
                (mem:BLK (reg:SI 5 r5) [0  A8]))
            (use (reg:SI 7 r7 [3270]))
            (use (const_int 0 [0]))
            (use (reg:SI 6 r6))
            (clobber (reg:SI 146 pr))
            (clobber (reg:SI 147 t))
            (clobber (reg:SI 4 r4))
            (clobber (reg:SI 5 r5))
            (clobber (reg:SI 6 r6))
            (clobber (reg:SI 0 r0))
            (clobber (reg:SI 1 r1))
            (clobber (reg:SI 2 r2))
            (clobber (reg:SI 3 r3))
        ]) "/git/gcc/gcc/pointer-query.cc":1906:14 326 {block_lump_real_i4}
     (nil))
(insn 1753 1752 6819 126 (set (mem:SI (plus:SI (reg/f:SI 15 r15)
                (const_int 8 [0x8])) [0  S4 A32])
        (reg/v/f:SI 10 r10 [orig:726 qry ] [726]))
"/git/gcc/gcc/pointer-query.cc":1911:26 191 {movsi_ie}
     (nil))
(insn 6819 1753 1754 126 (set (reg/v/f:SI 1 r1 [orig:725 snlim ] [725])
        (reg/v/f:SI 14 r14 [orig:725 snlim ] [725]))
"/git/gcc/gcc/pointer-query.cc":1911:26 191 {movsi_ie}
     (nil))
(insn 1754 6819 1756 126 (set (mem:SI (plus:SI (reg/f:SI 15 r15)
                (const_int 4 [0x4])) [0  S4 A32])
        (reg/v/f:SI 1 r1 [orig:725 snlim ] [725]))
"/git/gcc/gcc/pointer-query.cc":1911:26 191 {movsi_ie}
     (nil))
(insn 1756 1754 1758 126 (set (mem:SI (reg/f:SI 15 r15) [0  S4 A32])
        (reg/f:SI 4 r4 [2854])) "/git/gcc/gcc/pointer-query.cc":1911:26 191
{movsi_ie}
     (nil))
(insn 1758 1756 1759 126 (set (reg:SI 7 r7)
        (const_int 0 [0])) "/git/gcc/gcc/pointer-query.cc":1911:26 191
{movsi_ie}
     (nil))
(insn 1759 1758 1760 126 (set (reg:SI 6 r6)
        (reg:SI 13 r13 [2905])) "/git/gcc/gcc/pointer-query.cc":1911:26 191
{movsi_ie}
     (nil))
(insn 1760 1759 1761 126 (set (reg:SI 5 r5)
        (mem/c:SI (plus:SI (reg/f:SI 15 r15)
                (const_int 32 [0x20])) [506 %sfp+-316 S4 A32]))
"/git/gcc/gcc/pointer-query.cc":1911:26 191 {movsi_ie}
     (nil))
(insn 1761 1760 6435 126 (set (reg:SI 4 r4)
        (mem/c:SI (plus:SI (reg/f:SI 15 r15)
                (const_int 40 [0x28])) [506 %sfp+-308 S4 A32]))
"/git/gcc/gcc/pointer-query.cc":1911:26 191 {movsi_ie}
     (nil))
(insn 6435 1761 1762 126 (set (reg/f:SI 0 r0 [1448])
        (symbol_ref:SI
("_ZL17compute_objsize_rP9tree_nodeP6gimplebiP10access_refR16ssa_name_limit_tP13pointer_query")
[flags 0x3]  <function_decl 0x7ca377e5ff00 compute_objsize_r>))
"/git/gcc/gcc/pointer-query.cc":1911:26 191 {movsi_ie}
     (expr_list:REG_EQUIV (symbol_ref:SI
("_ZL17compute_objsize_rP9tree_nodeP6gimplebiP10access_refR16ssa_name_limit_tP13pointer_query")
[flags 0x3]  <function_decl 0x7ca377e5ff00 compute_objsize_r>)
        (nil)))
(call_insn 1762 6435 1763 126 (parallel [
            (set (reg:SI 0 r0)
                (call (mem:SI (reg/f:SI 0 r0 [1448]) [0 compute_objsize_r S4
A32])
                    (const_int 12 [0xc])))
            (use (reg:SI 154 fpscr0))
            (clobber (reg:SI 146 pr))
        ]) "/git/gcc/gcc/pointer-query.cc":1911:26 233 {call_valuei}
     (expr_list:REG_CALL_DECL (symbol_ref:SI
("_ZL17compute_objsize_rP9tree_nodeP6gimplebiP10access_refR16ssa_name_limit_tP13pointer_query")
[flags 0x3]  <function_decl 0x7ca377e5ff00 compute_objsize_r>)
        (expr_list:REG_EH_REGION (const_int 0 [0])
            (nil)))
    (expr_list:SI (use (reg:SI 4 r4))
        (expr_list:SI (use (reg:SI 5 r5))
            (expr_list:SI (use (reg:SI 6 r6))
                (expr_list:SI (use (reg:SI 7 r7))
                    (expr_list:SI (use (mem/f:SI (reg/f:SI 15 r15) [0  S4
A32]))
                        (expr_list:SI (use (mem/f:SI (plus:SI (reg/f:SI 15 r15)
                                        (const_int 4 [0x4])) [0  S4 A32]))
                            (expr_list:SI (use (mem/f:SI (plus:SI (reg/f:SI 15
r15)
                                            (const_int 8 [0x8])) [0  S4 A32]))
                                (nil)))))))))
(insn 1763 1762 7174 126 (set (reg:SI 1 r1 [orig:718 <retval> ] [718])
        (reg:SI 0 r0 [2942])) "/git/gcc/gcc/pointer-query.cc":1911:26 191
{movsi_ie}
     (nil))

It looks that LRA allocates r4 to the psuedo register r2854 and assumes that
it's preserved beyond the insn 1752 block_lump_real_i4.
Can the SH's sfunc pattern like block_lump_real_i4 confuse RA?

Reply via email to