diff mbox

[lra] a small patch for LRA speedup.

Message ID 4E569C92.6000502@redhat.com
State New
Headers show

Commit Message

Vladimir Makarov Aug. 25, 2011, 7:03 p.m. UTC
Recently I sent the patch which was mostly a caller-saves subpass 
rewriting.  It resulted in removing a call df-analyze because the new 
subpass does not use DF-infrastructure as all subsequent subpasses.

   Before caller-saves subpass there is a small subpass which 
substitutes scratches to pseudos for simpler and better allocation which 
called df_insn_rescan after each change.  With the new caller-saves 
subpass we don't need to do that any more.

The patch was successfully bootstrapped on x86-64 and ia64.

2011-08-25  Vladimir Makarov <vmakarov@redhat.com>

         * lra.c (remove_scratches): Don't rescan insn.
diff mbox

Patch

Index: lra.c
===================================================================
--- lra.c	(revision 178008)
+++ lra.c	(working copy)
@@ -1791,7 +1791,6 @@  static void
 remove_scratches (void)
 {
   int i;
-  bool insn_change_p;
   basic_block bb;
   rtx insn, reg;
   loc_t loc;
@@ -1807,12 +1806,10 @@  remove_scratches (void)
       {
 	id = lra_get_insn_recog_data (insn);
 	static_id = id->insn_static_data;
-	insn_change_p = false;
 	for (i = 0; i < static_id->n_operands; i++)
 	  if (GET_CODE (*id->operand_loc[i]) == SCRATCH
 	      && GET_MODE (*id->operand_loc[i]) != VOIDmode)
 	    {
-	      insn_change_p = true;
 	      *id->operand_loc[i] = reg
 		= lra_create_new_reg (static_id->operand[i].mode,
 				      *id->operand_loc[i], ALL_REGS, NULL);
@@ -1829,8 +1826,6 @@  remove_scratches (void)
 		fprintf (lra_dump_file, "Removing SCRATCH in insn #%u (nop %d)\n",
 			 INSN_UID (insn), i);
 	    }
-	if (insn_change_p)
-	  df_insn_rescan (insn);
       }
 }