-static bool lst_interchange_select_inner (scop_p, lst_p, int, lst_p);
-
-/* Try to interchange loop OUTER of LST_SEQ (OUTER_FATHER) with all
- the loop INNER and with all the loops contained in the body of
- INNER. Return true if it did interchanged some loops. */
-
-static bool
-lst_try_interchange (scop_p scop, lst_p outer_father, int outer, lst_p inner)
-{
- lst_p before, nest, after;
- bool res;
- lst_p loop1 = VEC_index (lst_p, LST_SEQ (outer_father), outer);
- lst_p loop2 = inner;
-
- gcc_assert (LST_LOOP_P (loop1)
- && LST_LOOP_P (loop2));
-
- res = lst_try_interchange_loops (scop, loop1, loop2, &before, &nest, &after);
-
- if (before)
- res |= lst_interchange_select_inner (scop, outer_father, outer, before);
- else if (nest)
- res |= lst_interchange_select_inner (scop, outer_father, outer, nest);
- else
- res |= lst_interchange_select_inner (scop, outer_father, outer, loop2);
-
- return res;
-}
-