The liveness of eliminable hard registers is not tracked by LRA between
basic blocks, so they should not be used as spill registers as LRA may
decide to allocate them to pseudos while the spilled value is still live.
2019-11-10 Kwok Cheung Yeung <kcy@codesourcery.com>
gcc/
* lra-spills.c (assign_spill_hard_regs): Do not spill into
registers in eliminable_regset.
From-SVN: r278024
+2019-11-10 Kwok Cheung Yeung <kcy@codesourcery.com>
+
+ * lra-spills.c (assign_spill_hard_regs): Do not spill into
+ registers in eliminable_regset.
+
2019-11-10 Jan Hubicka <hubicka@ucw.cz>
* ipa-inline.c (compute_uninlined_call_time,
for (k = 0; k < spill_class_size; k++)
{
hard_regno = ira_class_hard_regs[spill_class][k];
+ if (TEST_HARD_REG_BIT (eliminable_regset, hard_regno))
+ continue;
if (! overlaps_hard_reg_set_p (conflict_hard_regs, mode, hard_regno))
break;
}