summaryrefslogtreecommitdiff
path: root/gcc/ira-conflicts.c
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2010-02-10 20:52:31 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2010-02-10 20:52:31 +0000
commit4e51a66939f46c0b060d7faa492897686586e779 (patch)
tree94dd7b04ab391024feb0e5653bf55cd4be433ce4 /gcc/ira-conflicts.c
parentd5ad42a1513b3f239a8a8cd873b6b36b70b36c4d (diff)
downloadgcc-4e51a66939f46c0b060d7faa492897686586e779.tar.gz
2010-02-10 Vladimir Makarov <vmakarov@redhat.com>
* ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note instead of loop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@156670 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-conflicts.c')
-rw-r--r--gcc/ira-conflicts.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/ira-conflicts.c b/gcc/ira-conflicts.c
index faa36ae1956..cbb3e17ebc0 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++)