From 8b8e41e5c236b4d878f56011c4bb68dd396e5e9a Mon Sep 17 00:00:00 2001
From: Vladimir Makarov <vmakarov@redhat.com>
Date: Wed, 15 Mar 2017 23:04:09 +0000
Subject: [PATCH] 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
---
 gcc/ChangeLog         | 6 ++++++
 gcc/lra-constraints.c | 9 +++++++++
 2 files changed, 15 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c01d583faede..88f60073d998 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 e0ce8072ab05..4d986249a6fa 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)