===================================================================
@@ -880,24 +880,25 @@
/* Lower the AST for everything in SIMPLIFIERS. */
static void
+lower (vec<simplify *>& in, vec<simplify *>& out, void (*lower_fn)(simplify *, vec<simplify *>&))
+{
+ for (unsigned i = 0; i < in.length (); ++i)
+ lower_fn (in[i], out);
+}
+
+static void
lower (vec<simplify *>& simplifiers)
{
auto_vec<simplify *> out_simplifiers0;
- for (unsigned i = 0; i < simplifiers.length (); ++i)
- lower_opt_convert (simplifiers[i], out_simplifiers0);
-
auto_vec<simplify *> out_simplifiers1;
- for (unsigned i = 0; i < out_simplifiers0.length (); ++i)
- lower_commutative (out_simplifiers0[i], out_simplifiers1);
-
+
+ lower (simplifiers, out_simplifiers0, lower_opt_convert);
+ lower (out_simplifiers0, out_simplifiers1, lower_commutative);
+
simplifiers.truncate (0);
- for (unsigned i = 0; i < out_simplifiers1.length (); ++i)
- lower_for (out_simplifiers1[i], simplifiers);
+ lower (out_simplifiers1, simplifiers, lower_for);
}
-
-
-
/* The decision tree built for generating GIMPLE and GENERIC pattern
matching code. It represents the 'match' expression of all
simplifies and has those as its leafs. */