alpha-protos.h (alpha_find_lo_sum_using_gp): Return a bool.
authorRichard Sandiford <richard.sandiford@arm.com>
Mon, 27 Oct 2014 18:41:09 +0000 (18:41 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 27 Oct 2014 18:41:09 +0000 (18:41 +0000)
gcc/
* config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
a bool.
* config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
(alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX.  Return a bool.

From-SVN: r216756

gcc/ChangeLog
gcc/config/alpha/alpha-protos.h
gcc/config/alpha/alpha.c

index bee2fba71478751850f1ef854db59c30d4ac1e62..972ed0a817ef002a8e34e165a6ca497550efa4bc 100644 (file)
@@ -1,3 +1,10 @@
+2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
+       a bool.
+       * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
+       (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX.  Return a bool.
+
 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
 
        * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
index 753a762a57544263b5dd3e031f5f90ed113888fe..22c082d756a92a5a55d470ad881124957a65538f 100644 (file)
@@ -75,7 +75,7 @@ extern rtx function_value (const_tree, const_tree, enum machine_mode);
 extern void alpha_start_function (FILE *, const char *, tree);
 extern void alpha_end_function (FILE *, const char *, tree);
 
-extern int alpha_find_lo_sum_using_gp (rtx);
+extern bool alpha_find_lo_sum_using_gp (rtx);
 
 #ifdef REAL_VALUE_TYPE
 extern int check_float_value (enum machine_mode, REAL_VALUE_TYPE *, int);
index 09ab4ba16cbf1b279e1f4c06c8098600d7ece692..966999c26a9d86b7a0f47273eac83375eb964720 100644 (file)
@@ -7562,16 +7562,17 @@ vms_output_aligned_decl_common(FILE *file, tree decl, const char *name,
 
 #endif
 
-static int
-find_lo_sum_using_gp (rtx *px, void *data ATTRIBUTE_UNUSED)
-{
-  return GET_CODE (*px) == LO_SUM && XEXP (*px, 0) == pic_offset_table_rtx;
-}
-
-int
+bool
 alpha_find_lo_sum_using_gp (rtx insn)
 {
-  return for_each_rtx (&PATTERN (insn), find_lo_sum_using_gp, NULL) > 0;
+  subrtx_iterator::array_type array;
+  FOR_EACH_SUBRTX (iter, array, PATTERN (insn), NONCONST)
+    {
+      const_rtx x = *iter;
+      if (GET_CODE (x) == LO_SUM && XEXP (x, 0) == pic_offset_table_rtx)
+       return true;
+    }
+  return false;
 }
 
 static int