aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2010-02-10 20:52:31 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2010-02-10 20:52:31 +0000
commit56592e03b487f3c20ef54bbd97766d207f77b31d (patch)
tree94dd7b04ab391024feb0e5653bf55cd4be433ce4
parentab65a4c7bdf10e5465cbf47faae88af258dc2baa (diff)
downloadgcc-56592e03b487f3c20ef54bbd97766d207f77b31d.zip
gcc-56592e03b487f3c20ef54bbd97766d207f77b31d.tar.gz
gcc-56592e03b487f3c20ef54bbd97766d207f77b31d.tar.bz2
ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note instead of loop.
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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ira-conflicts.c9
2 files changed, 9 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e080d10..0a9a4d7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/ira-conflicts.c b/gcc/ira-conflicts.c
index faa36ae..cbb3e17 100644
--- a/gcc/ira-conflicts.c
+++ b/gcc/ira-conflicts.c
@@ -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++)