diff mbox

a patch to fix an x86 bootstrap with LRA

Message ID 5468307D.6060804@redhat.com
State New
Headers show

Commit Message

Vladimir Makarov Nov. 16, 2014, 5:05 a.m. UTC
The following patch fixes a x86 bootstrap failure with different sets 
of options (-with-arch=corei7 -with-cpu=intel, -with-arch=core2 
-with-cpu=slm).

   The patch was bootstrapped on x86 (with the 2 sets) and x86-64.

   Committed as rev. 217624.

2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>

         * lra-remat.c (cand_transf_func): Process regno for
         rematerialization too.
         * lra.c (lra): Switch on rematerialization pass.
diff mbox

Patch

Index: lra.c
===================================================================
--- lra.c	(revision 217609)
+++ lra.c	(working copy)
@@ -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);
Index: lra-remat.c
===================================================================
--- lra-remat.c	(revision 217602)
+++ lra-remat.c	(working copy)
@@ -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);