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

--- Comment #7 from Alan Modra <amodra at gmail dot com> ---
Hmm, it looks like combine is removing the long call.

hello2.c.262r.ud_dce:
(insn 10 9 11 2 (set (reg/f:SI 127)
        (high:SI (symbol_ref:SI ("printf") [flags 0x41]  <function_decl
0x7f18d32a5e00 printf>))) "hello2.c":5:3 651 {elf_high}
     (nil))
(insn 11 10 12 2 (set (reg/f:SI 126)
        (lo_sum:SI (reg/f:SI 127)
            (symbol_ref:SI ("printf") [flags 0x41]  <function_decl
0x7f18d32a5e00 printf>))) "hello2.c":5:3 652 {elf_low}
     (expr_list:REG_DEAD (reg/f:SI 127)
        (expr_list:REG_EQUAL (symbol_ref:SI ("printf") [flags 0x41] 
<function_decl 0x7f18d32a5e00 printf>)
            (nil))))
(insn 12 11 13 2 (set (reg:SI 66 ctr)
        (reg/f:SI 126)) "hello2.c":5:3 491 {*movsi_internal1}
     (expr_list:REG_DEAD (reg/f:SI 126)
        (expr_list:REG_EQUAL (symbol_ref:SI ("printf") [flags 0x41] 
<function_decl 0x7f18d32a5e00 printf>)
            (nil))))
(call_insn 13 12 18 2 (parallel [
            (set (reg:SI 3 3)
                (call (mem:SI (reg:SI 66 ctr) [0 __builtin_printf S4 A8])
                    (const_int 0 [0])))
            (use (const_int 4 [0x4]))
            (clobber (reg:SI 65 lr))
        ]) "hello2.c":5:3 658 {*call_value_indirect_nonlocal_sysvsi}
     (expr_list:REG_DEAD (reg:SI 66 ctr)
        (expr_list:REG_UNUSED (reg:SI 3 3)
            (expr_list:REG_CALL_DECL (symbol_ref:SI ("printf") [flags 0x41] 
<function_decl 0x7f18d32a5e00 printf>)
                (nil))))
    (expr_list:SI (use (reg:SI 3 3))
        (nil)))

hello2.c.263r.combine:
(note 10 9 11 2 NOTE_INSN_DELETED)
(note 11 10 12 2 NOTE_INSN_DELETED)
(note 12 11 13 2 NOTE_INSN_DELETED)
(call_insn 13 12 18 2 (parallel [
            (set (reg:SI 3 3)
                (call (mem:SI (symbol_ref:SI ("printf") [flags 0x41] 
<function_decl 0x7f18d32a5e00 printf>) [0 __builtin_printf S4 A8])
                    (const_int 0 [0])))
            (use (const_int 4 [0x4]))
            (clobber (reg:SI 65 lr))
        ]) "hello2.c":5:3 659 {*call_value_nonlocal_sysvsi}
     (expr_list:REG_CALL_DECL (symbol_ref:SI ("printf") [flags 0x41] 
<function_decl 0x7f18d32a5e00 printf>)
        (expr_list:REG_UNUSED (reg:SI 3 3)
            (nil)))
    (expr_list:SI (use (reg:SI 3 3))
        (nil)))

Reply via email to