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

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2019-10-24
     Ever confirmed|0                           |1

--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> ---
1. A pseudo register, 9625, was assigned to mask register k0 and
df_set_regs_ever_live was called.
2. improve_inheritance reassigned 9625 to a different hard register without
updating DF info.
3. mark_pseudo_dead was called on 9625 from process_bb_lives

 EXECUTE_IF_SET_IN_SPARSESET (pseudos_live, i)
    {  
      update_pseudo_point (i, curr_point, DEF_POINT);
      mark_pseudo_dead (i);
    }      

mark_pseudo_dead did

  lra_assert (!HARD_REGISTER_NUM_P (regno));
  lra_reg_info[regno].conflict_hard_regs |= hard_regs_live;

with incorrect DF info.

Reply via email to