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?