]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/tree-chrec.c
backport: configure: Regenerate.
[thirdparty/gcc.git] / gcc / tree-chrec.c
index da359529e4c78b40cae1d1cc75dd51acb3c7eade..26ae9b408a70a2f9c51f5fe8d15419ea658efa17 100644 (file)
@@ -1407,3 +1407,26 @@ scev_direction (const_tree chrec)
   else
     return EV_DIR_GROWS;
 }
+
+/* Iterates over all the components of SCEV, and calls CBCK.  */
+
+void
+for_each_scev_op (tree *scev, bool (*cbck) (tree *, void *), void *data)
+{
+  switch (TREE_CODE_LENGTH (TREE_CODE (*scev)))
+    {
+    case 3:
+      for_each_scev_op (&TREE_OPERAND (*scev, 2), cbck, data);
+
+    case 2:
+      for_each_scev_op (&TREE_OPERAND (*scev, 1), cbck, data);
+      
+    case 1:
+      for_each_scev_op (&TREE_OPERAND (*scev, 0), cbck, data);
+
+    default:
+      cbck (scev, data);
+      break;
+    }
+}
+