diff options
Diffstat (limited to 'gcc-4.9/gcc/ira-conflicts.c')
-rw-r--r-- | gcc-4.9/gcc/ira-conflicts.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc-4.9/gcc/ira-conflicts.c b/gcc-4.9/gcc/ira-conflicts.c index c0b4f04..ba09c6a 100644 --- a/gcc-4.9/gcc/ira-conflicts.c +++ b/gcc-4.9/gcc/ira-conflicts.c @@ -330,7 +330,8 @@ process_regs_for_copy (rtx reg1, rtx reg2, bool constraint_p, OP_NUM) which dies in the insn as if there were a move insn between them with frequency FREQ. */ static void -process_reg_shuffles (rtx reg, int op_num, int freq, bool *bound_p) +process_reg_shuffles (rtx reg, int op_num, int freq, bool *bound_p, + rtx insn) { int i; rtx another_reg; @@ -345,7 +346,7 @@ process_reg_shuffles (rtx reg, int op_num, int freq, bool *bound_p) || bound_p[i]) continue; - process_regs_for_copy (reg, another_reg, false, NULL_RTX, freq); + process_regs_for_copy (reg, another_reg, false, insn, freq); } } @@ -396,7 +397,7 @@ add_insn_allocno_copies (rtx insn) REG_P (operand) ? operand : SUBREG_REG (operand)) != NULL_RTX) - process_regs_for_copy (operand, dup, true, NULL_RTX, + process_regs_for_copy (operand, dup, true, insn, freq); } } @@ -412,7 +413,8 @@ add_insn_allocno_copies (rtx insn) the corresponding allocno copies. The cost will not correspond to a real move insn cost, so make the frequency smaller. */ - process_reg_shuffles (operand, i, freq < 8 ? 1 : freq / 8, bound_p); + process_reg_shuffles (operand, i, freq < 8 ? 1 : freq / 8, + bound_p, insn); } } |