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]

Re: patch to fix PR61325


On 2014-06-03, 6:02 PM, James Greenhalgh wrote:
On Thu, May 29, 2014 at 06:38:22PM +0100, Vladimir Makarov wrote:
   The following patch PR61325.  The details can be found on

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61325

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

   Committed as rev. 211060 to gcc-4.9 branch and as rev.211061 to trunk.

2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>

         PR rtl-optimization/61325
         * lra-constraints.c (process_address): Rename to
         process_address_1.
         (process_address): New function.

2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>

         PR rtl-optimization/61325
         * gcc.target/aarch64/pr61325.c: New.

Hi Vlad,

This patch appears to cause issues where the ARM backend can get stuck in a
seemingly infinite loop.


Sorry for inconvenience.

Could you test the following patch

Index: lra-constraints.c
===================================================================
--- lra-constraints.c   (revision 211061)
+++ lra-constraints.c   (working copy)
@@ -2974,6 +2974,13 @@ process_address_1 (int nop, rtx *before,
       *ad.inner = simplify_gen_binary (PLUS, GET_MODE (new_reg),
                                       new_reg, *ad.index);
     }
+  else if (get_index_scale (&ad) == 1)
+    {
+      /* The last transformation to one reg will be made in
+        curr_insn_transform function.  */
+      end_sequence ();
+      return false;
+    }
   else
     {
       /* base + scale * index => base + new_reg,


If it is ok, I'll commit it as soon as possible.
I checked the patch on x86/x86-64.  The patch is ok for this platform.




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