gcc/
        * ddg.c: Include rtl-iter.h.
        (mark_mem_use_1): Rename to...
        (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
        instead of for_each_rtx.
        (mem_read_insn_p): Update accordingly.

Index: gcc/ddg.c
===================================================================
--- gcc/ddg.c   2014-08-03 11:25:10.216957187 +0100
+++ gcc/ddg.c   2014-08-03 11:25:24.327096689 +0100
@@ -41,6 +41,7 @@ Software Foundation; either version 3, o
 #include "expr.h"
 #include "bitmap.h"
 #include "ddg.h"
+#include "rtl-iter.h"
 
 #ifdef INSN_SCHEDULING
 
@@ -63,19 +64,16 @@ static void add_edge_to_ddg (ddg_ptr g,
 static bool mem_ref_p;
 
 /* Auxiliary function for mem_read_insn_p.  */
-static int
-mark_mem_use (rtx *x, void *data ATTRIBUTE_UNUSED)
-{
-  if (MEM_P (*x))
-    mem_ref_p = true;
-  return 0;
-}
-
-/* Auxiliary function for mem_read_insn_p.  */
 static void
-mark_mem_use_1 (rtx *x, void *data)
+mark_mem_use (rtx *x, void *)
 {
-  for_each_rtx (x, mark_mem_use, data);
+  subrtx_iterator::array_type array;
+  FOR_EACH_SUBRTX (iter, array, *x, NONCONST)
+    if (MEM_P (*x))
+      {
+       mem_ref_p = true;
+       break;
+      }
 }
 
 /* Returns nonzero if INSN reads from memory.  */
@@ -83,7 +81,7 @@ mark_mem_use_1 (rtx *x, void *data)
 mem_read_insn_p (rtx insn)
 {
   mem_ref_p = false;
-  note_uses (&PATTERN (insn), mark_mem_use_1, NULL);
+  note_uses (&PATTERN (insn), mark_mem_use, NULL);
   return mem_ref_p;
 }
 

Reply via email to