]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note instead of loop.
authorVladimir Makarov <vmakarov@redhat.com>
Wed, 10 Feb 2010 20:52:31 +0000 (20:52 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Wed, 10 Feb 2010 20:52:31 +0000 (20:52 +0000)
2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>

* ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
instead of loop.

From-SVN: r156670

gcc/ChangeLog
gcc/ira-conflicts.c

index e080d10b4e8c3cb7dcdf47d7bea91843458b84ba..0a9a4d764c956e8fe754b30511160b07f81bdee6 100644 (file)
@@ -1,3 +1,8 @@
+2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
+       instead of loop.
+
 2010-02-10  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/43017
index faa36ae19561790b537f095f39599c490a1e3157..cbb3e17ebc0f2ba0395ec769ae03dbaf66775bd5 100644 (file)
@@ -447,7 +447,7 @@ process_reg_shuffles (rtx reg, int op_num, int freq, bool *bound_p)
 static void
 add_insn_allocno_copies (rtx insn)
 {
-  rtx set, operand, dup, link;
+  rtx set, operand, dup;
   const char *str;
   bool commut_p, bound_p[MAX_RECOG_OPERANDS];
   int i, j, n, freq;
@@ -466,10 +466,9 @@ add_insn_allocno_copies (rtx insn)
       process_regs_for_copy (SET_DEST (set), SET_SRC (set), false, insn, freq);
       return;
     }
-  for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
-    if (REG_NOTE_KIND (link) == REG_DEAD)
-      break;
-  if (! link)
+  /* Fast check of possibility of constraint or shuffle copies.  If
+     there are no dead registers, there will be no such copies.  */
+  if (! find_reg_note (insn, REG_DEAD, NULL_RTX))
     return;
   extract_insn (insn);
   for (i = 0; i < recog_data.n_operands; i++)