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, ...