Avoid generating (plus X (const_int 0)) in plus_constant 32/45832/1
authorNikolai Bozhenov <n.bozhenov@samsung.com>
Fri, 15 May 2015 11:05:53 +0000 (14:05 +0300)
committerNikolai Bozhenov <n.bozhenov@samsung.com>
Tue, 11 Aug 2015 14:12:58 +0000 (17:12 +0300)
Change-Id: Ib872a95424ba479bae09061b4d4680fac24ca527

gcc/explow.c

index 48e91a6..a30c97d 100644 (file)
@@ -165,8 +165,11 @@ plus_constant (enum machine_mode mode, rtx x, HOST_WIDE_INT c)
 
       if (CONSTANT_P (XEXP (x, 1)))
        {
-         x = gen_rtx_PLUS (mode, XEXP (x, 0),
-                           plus_constant (mode, XEXP (x, 1), c));
+          rtx term = plus_constant (mode, XEXP (x, 1), c);
+          if (term == const0_rtx)
+            x = XEXP (x, 0);
+          else
+            x = gen_rtx_PLUS (mode, XEXP (x, 0), term);
          c = 0;
        }
       else if (find_constant_term_loc (&y))