This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RFA: patch for PR22072


The following patch solves one problem reported in PR22072 (additional move generation). The reason for this problem can be found on

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22072

The old version of the corrected code was actually a typo. The fix should be reliable because it creates additional conflicts (for early clobbers as it should be). In any case I've checked it on a bootstrap on x86_64. SPEC2000 changes are quite minor (the same performance in measure error range and quit insignificant code size changes).

Ok to commit?

2009-10-06 Vladimir Makarov <vmakarov@redhat.com>

   PR middle-end/22072
   * ira-lives.c (check_and_make_def_conflict): Process all operands.



Index: gcc/ira-lives.c
===================================================================
--- gcc/ira-lives.c	(revision 152403)
+++ gcc/ira-lives.c	(working copy)
@@ -500,7 +500,7 @@
   for (use = 0; use < recog_data.n_operands; use++)
     {
       if (use == def || recog_data.operand_type[use] == OP_OUT)
-	return;
+	continue;
       
       if (recog_op_alt[use][alt].anything_ok)
 	use_cl = ALL_REGS;
@@ -513,7 +513,7 @@
       if ((use_match = recog_op_alt[use][alt].matches) >= 0)
 	{
 	  if (use_match == def)
-	    return;
+	    continue;
 	  
 	  if (recog_op_alt[use_match][alt].anything_ok)
 	    use_cl = ALL_REGS;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]