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

Tom de Vries <vries at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #42850|0                           |1
        is obsolete|                            |

--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> ---
Created attachment 42864
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42864&action=edit
Updated tentative patch

> I then added fixes in make_hard_regno_{born,dead} in the same style as the 
> fix 
> for PR82353, and that allowed the live info to be propagated.

I was missing this part, which makes sure that we don't mask out the
hard_regs_spilled_into during propagation:
...
@@ -1320,6 +1338,11 @@ lra_create_live_ranges_1 (bool all_p, bool dead_insn_p)
        }                                                                       
       /* As we did not change CFG since LRA start we can use                   
         DF-infrastructure solver to solve live data flow problem.  */          
+      for (int i = 0; i < FIRST_PSEUDO_REGISTER; ++i)                          
+       {                                                                       
+         if (TEST_HARD_REG_BIT (hard_regs_spilled_into, i))                    
+           bitmap_clear_bit (&all_hard_regs_bitmap, i);                        
+       }                                                                       
       df_simple_dataflow                                                       
        (DF_BACKWARD, NULL, live_con_fun_0, live_con_fun_n,                     
         live_trans_fun, &all_blocks,                                           
...

Reply via email to