This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

One more patch for PR70478


A recent patch for PR70478 introduced a regression on ARM. Here is an additional patch to fix it.

The patch was successfully tested and bootstrapped on x86-64.

Committed as rev. 246854.


Index: ChangeLog
===================================================================
--- ChangeLog	(revision 246853)
+++ ChangeLog	(working copy)
@@ -1,3 +1,9 @@
+2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
+
+	PR rtl-optimization/70478
+	* lra-constraints.c (process_alt_operands): Check memory for
+	disfavoring memory insn operand.
+
 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
 
 	PR middle-end/80100
Index: lra-constraints.c
===================================================================
--- lra-constraints.c	(revision 246808)
+++ lra-constraints.c	(working copy)
@@ -2722,12 +2722,14 @@ process_alt_operands (int only_alternati
 		    }
 		}
 
-	      /* When we use memory operand, the insn should read the
-		 value from memory and even if we just wrote a value
-		 into the memory it is costly in comparison with an
-		 insn alternative which does not use memory
-		 (e.g. register or immediate operand).  */
-	      if (no_regs_p && offmemok)
+	      /* When we use an operand requiring memory in given
+		 alternative, the insn should write *and* read the
+		 value to/from memory it is costly in comparison with
+		 an insn alternative which does not use memory
+		 (e.g. register or immediate operand).  We exclude
+		 memory operand for such case as we can satisfy the
+		 memory constraints by reloading address.  */
+	      if (no_regs_p && offmemok && !MEM_P (op))
 		{
 		  if (lra_dump_file != NULL)
 		    fprintf

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]