spu.c: Include rtl-iter.h
authorRichard Sandiford <richard.sandiford@arm.com>
Mon, 27 Oct 2014 18:40:13 +0000 (18:40 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 27 Oct 2014 18:40:13 +0000 (18:40 +0000)
gcc/
* config/spu/spu.c: Include rtl-iter.h
(ea_symbol_ref): Replace with...
(ea_symbol_ref_p): ...this new function.
(spu_legitimate_address_p): Update call accordingly.
(spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.

From-SVN: r216752

gcc/ChangeLog
gcc/config/spu/spu.c

index f588f0328410d9ccec729fe6047278fa7f4932c3..b5dc7f2f6e74259938cfbb4a2758a19cc13b96d1 100644 (file)
@@ -1,3 +1,11 @@
+2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/spu/spu.c: Include rtl-iter.h
+       (ea_symbol_ref): Replace with...
+       (ea_symbol_ref_p): ...this new function.
+       (spu_legitimate_address_p): Update call accordingly.
+       (spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.
+
 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
            Tom Tromey  <tromey@redhat.com>
 
index 56186360caecfd579ac9ed2c0cd1835423acb200..ef1ccef0b942f1ec1fe1e98363a5c54f1ab07023 100644 (file)
@@ -77,6 +77,7 @@
 #include "dumpfile.h"
 #include "cfgloop.h"
 #include "builtins.h"
+#include "rtl-iter.h"
 
 /* Builtin types, data and prototypes. */
 
@@ -3474,10 +3475,9 @@ exp2_immediate_p (rtx op, enum machine_mode mode, int low, int high)
 
 /* Return true if X is a SYMBOL_REF to an __ea qualified variable.  */
 
-static int
-ea_symbol_ref (rtx *px, void *data ATTRIBUTE_UNUSED)
+static bool
+ea_symbol_ref_p (const_rtx x)
 {
-  rtx x = *px;
   tree decl;
 
   if (GET_CODE (x) == CONST && GET_CODE (XEXP (x, 0)) == PLUS)
@@ -3504,13 +3504,15 @@ ea_symbol_ref (rtx *px, void *data ATTRIBUTE_UNUSED)
 bool
 spu_legitimate_constant_p (enum machine_mode mode, rtx x)
 {
+  subrtx_iterator::array_type array;
   if (GET_CODE (x) == HIGH)
     x = XEXP (x, 0);
 
   /* Reject any __ea qualified reference.  These can't appear in
      instructions but must be forced to the constant pool.  */
-  if (for_each_rtx (&x, ea_symbol_ref, 0))
-    return 0;
+  FOR_EACH_SUBRTX (iter, array, x, ALL)
+    if (ea_symbol_ref_p (*iter))
+      return 0;
 
   /* V4SI with all identical symbols is valid. */
   if (!flag_pic
@@ -3556,7 +3558,7 @@ spu_legitimate_address_p (enum machine_mode mode,
     case CONST:
       /* Keep __ea references until reload so that spu_expand_mov can see them
         in MEMs.  */
-      if (ea_symbol_ref (&x, 0))
+      if (ea_symbol_ref_p (x))
        return !reload_in_progress && !reload_completed;
       return !TARGET_LARGE_MEM;