===================================================================
@@ -2354,7 +2354,7 @@ lra (FILE *f)
break;
/* Now we know what pseudos should be spilled. Try to
rematerialize them first. */
- if (0&&lra_remat ())
+ if (lra_remat ())
{
/* We need full live info -- see the comment above. */
lra_create_live_ranges (lra_reg_spill_p, true);
===================================================================
@@ -860,6 +860,10 @@ cand_trans_fun (int bb_index, bitmap bb_
bitmap_set_bit (&temp_bitmap, cid);
break;
}
+ /* Check regno for rematerialization. */
+ if (bitmap_bit_p (bb_changed_regs, cand->regno)
+ || bitmap_bit_p (bb_dead_regs, cand->regno))
+ bitmap_set_bit (&temp_bitmap, cid);
}
return bitmap_ior_and_compl (bb_out,
&bb_info->gen_cands, bb_in, &temp_bitmap);