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

Vladimir Makarov <vmakarov at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vmakarov at gcc dot gnu.org

--- Comment #7 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
(In reply to H.J. Lu from comment #2)
> After IRA,
> 
> (insn 34 33 35 5 (set (reg:SI 3 bx) 
>         (reg:SI 87)) 86 {*movsi_internal}
>      (expr_list:REG_DEAD (reg:SI 87) 
>         (nil)))
> (call_insn 35 34 36 5 (call (mem:QI (symbol_ref:SI ("_Unwind_Resume") [flags
> 0x41]  <function_decl 0x7f1f9f3005e8 __builtin_unwind_resume>) [0
> __builtin_unwind_resume S1 A8])
>         (const_int 16 [0x10])) 649 {*call}
>      (expr_list:REG_DEAD (reg:SI 3 bx) 
>         (expr_list:REG_CALL_DECL (symbol_ref:SI ("_Unwind_Resume") [flags
> 0x41]  <function_decl 0x7f1f9f3005e8 __builtin_unwind_resume>)
>             (expr_list:REG_ARGS_SIZE (const_int 16 [0x10])
>                 (expr_list:REG_NORETURN (const_int 0 [0])
>                     (nil)))))
>     (expr_list (use (reg:SI 3 bx))
>         (nil)))
> 
> LRA removed:
> 
> (insn 34 33 35 5 (set (reg:SI 3 bx) 
>         (reg:SI 87)) 86 {*movsi_internal}
>      (expr_list:REG_DEAD (reg:SI 87) 
>         (nil)))
> 
> LRA should recognize that BUILT_IN_UNWIND_RESUME and initialize EBX.

I've looked at this.  Insn 34 is transformed into

ebx=ebx

as pseudo 87 gets ebx.  At the very end. LRA removes the useless insn.  
Therefore there is no insn setting ebx.

H.J., is it really a problem?

Reply via email to