summaryrefslogtreecommitdiff
path: root/gcc/ira-conflicts.c
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2008-09-04 23:35:03 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2008-09-04 23:35:03 +0000
commit55c858c57495a6bd4d444faafa91dd07268e432e (patch)
treebdecaa024ed96b5a8c8718f2822578302345a9d7 /gcc/ira-conflicts.c
parent11d2345d61941c6c038a4606c34278dc20d49c6f (diff)
downloadgcc-55c858c57495a6bd4d444faafa91dd07268e432e.tar.gz
2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
* ira-conflicts.c (process_regs_for_copy): Check insn to check that the cost is already taken into account in ira-costs.c * ira-int.h (ira_debug_copy, ira_debug_copies): New. * ira-build.c (print_copy, print_copies, ira_debug_copy, ira_debug_copies): New. (ira_bulid): Call print_copies. * doc/tm.texi (IRA_COVER_CLASSES): Fix the description. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140014 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-conflicts.c')
-rw-r--r--gcc/ira-conflicts.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/ira-conflicts.c b/gcc/ira-conflicts.c
index 97da7c563df..8b8c48582ea 100644
--- a/gcc/ira-conflicts.c
+++ b/gcc/ira-conflicts.c
@@ -371,8 +371,8 @@ process_regs_for_copy (rtx reg1, rtx reg2, rtx insn, int freq)
cover_class = ALLOCNO_COVER_CLASS (a);
if (! ira_class_subset_p[rclass][cover_class])
return false;
- if (reg_class_size[rclass] <= (unsigned) CLASS_MAX_NREGS (rclass, mode)
- && only_regs_p)
+ if (only_regs_p && insn != NULL_RTX
+ && reg_class_size[rclass] <= (unsigned) CLASS_MAX_NREGS (rclass, mode))
/* It is already taken into account in ira-costs.c. */
return false;
index = ira_class_hard_reg_index[cover_class][hard_regno];