diff options
author | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-02-10 20:52:31 +0000 |
---|---|---|
committer | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-02-10 20:52:31 +0000 |
commit | 4e51a66939f46c0b060d7faa492897686586e779 (patch) | |
tree | 94dd7b04ab391024feb0e5653bf55cd4be433ce4 /gcc/ira-conflicts.c | |
parent | d5ad42a1513b3f239a8a8cd873b6b36b70b36c4d (diff) | |
download | gcc-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.c | 9 |
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++) |