aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2017-03-15 23:04:09 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2017-03-15 23:04:09 +0000
commit8b8e41e5c236b4d878f56011c4bb68dd396e5e9a (patch)
tree53299ee054f6714ebdb8007791ba2905e6ad29c5
parent559a77e112285e37f34e4ef2c1eec89771138c3b (diff)
downloadgcc-8b8e41e5c236b4d878f56011c4bb68dd396e5e9a.zip
gcc-8b8e41e5c236b4d878f56011c4bb68dd396e5e9a.tar.gz
gcc-8b8e41e5c236b4d878f56011c4bb68dd396e5e9a.tar.bz2
re PR target/80017 (ICE: Max. number of generated reload insns per insn is achieved (90))
2017-03-15 Vladimir Makarov <vmakarov@redhat.com> PR target/80017 * lra-constraints.c (process_alt_operands): Increase reject for reloading an input/output operand. From-SVN: r246181
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/lra-constraints.c9
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c01d583..88f6007 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR target/80017
+ * lra-constraints.c (process_alt_operands): Increase reject for
+ reloading an input/output operand.
+
2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/79038
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index e0ce807..4d98624 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -2713,6 +2713,15 @@ process_alt_operands (int only_alternative)
if (MEM_P (op) && offmemok)
addr_losers++;
+ else if (curr_static_id->operand[nop].type == OP_INOUT)
+ {
+ if (lra_dump_file != NULL)
+ fprintf
+ (lra_dump_file,
+ " %d Input/Output reload: reject+=%d\n",
+ nop, LRA_LOSER_COST_FACTOR);
+ reject += LRA_LOSER_COST_FACTOR;
+ }
}
if (early_clobber_p && ! scratch_p)