diff -Naur src/gcc.orig/gcc/config.in src/gcc/gcc/config.in --- src/gcc.orig/gcc/config.in 2015-02-26 14:16:40.000000000 -0300 +++ src/gcc/gcc/config.in 2015-08-01 03:27:39.616665000 -0300 @@ -1217,6 +1217,12 @@ #endif +/* Define if isl_options_set_schedule_serialize_sccs exists. */ +#ifndef USED_FOR_TARGET +#undef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS +#endif + + /* Define if isl_schedule_constraints_compute_schedule exists. */ #ifndef USED_FOR_TARGET #undef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE diff -Naur src/gcc.orig/gcc/configure src/gcc/gcc/configure --- src/gcc.orig/gcc/configure 2015-02-26 14:16:40.000000000 -0300 +++ src/gcc/gcc/configure 2015-08-01 03:27:39.625522000 -0300 @@ -27888,6 +27888,8 @@ # Check whether isl_schedule_constraints_compute_schedule is available; # it's new in ISL-0.13. +# Check whether isl_options_set_schedule_serialize_sccs is available; +# it's new in ISL-0.15. saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $ISLINC" saved_LIBS="$LIBS" @@ -27916,6 +27918,29 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_has_isl_schedule_constraints_compute_schedule" >&5 $as_echo "$ac_has_isl_schedule_constraints_compute_schedule" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for isl_options_set_schedule_serialize_sccs" >&5 +$as_echo_n "checking Checking for isl_options_set_schedule_serialize_sccs... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +isl_options_set_schedule_serialize_sccs (NULL, 0); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + ac_has_isl_options_set_schedule_serialize_sccs=yes +else + ac_has_isl_options_set_schedule_serialize_sccs=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_has_isl_options_set_schedule_serialize_sccs" >&5 +$as_echo "$ac_has_isl_options_set_schedule_serialize_sccs" >&6; } + LIBS="$saved_LIBS" CFLAGS="$saved_CFLAGS" @@ -27924,6 +27949,12 @@ $as_echo "#define HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE 1" >>confdefs.h fi + + if test x"$ac_has_isl_options_set_schedule_serialize_sccs" = x"yes"; then + +$as_echo "#define HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS 1" >>confdefs.h + + fi fi diff -Naur src/gcc.orig/gcc/configure.ac src/gcc/gcc/configure.ac --- src/gcc.orig/gcc/configure.ac 2015-02-26 14:15:13.000000000 -0300 +++ src/gcc/gcc/configure.ac 2015-08-01 03:27:39.618893000 -0300 @@ -5506,6 +5506,8 @@ # Check whether isl_schedule_constraints_compute_schedule is available; # it's new in ISL-0.13. + # Check whether isl_options_set_schedule_serialize_sccs is available; + # it's new in ISL-0.15. saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $ISLINC" saved_LIBS="$LIBS" @@ -5518,6 +5520,13 @@ [ac_has_isl_schedule_constraints_compute_schedule=no]) AC_MSG_RESULT($ac_has_isl_schedule_constraints_compute_schedule) + AC_MSG_CHECKING([Checking for isl_options_set_schedule_serialize_sccs]) + AC_TRY_LINK([#include ], + [isl_options_set_schedule_serialize_sccs (NULL, 0);], + [ac_has_isl_options_set_schedule_serialize_sccs=yes], + [ac_has_isl_options_set_schedule_serialize_sccs=no]) + AC_MSG_RESULT($ac_has_isl_options_set_schedule_serialize_sccs) + LIBS="$saved_LIBS" CFLAGS="$saved_CFLAGS" @@ -5525,6 +5534,11 @@ AC_DEFINE(HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE, 1, [Define if isl_schedule_constraints_compute_schedule exists.]) fi + + if test x"$ac_has_isl_options_set_schedule_serialize_sccs" = x"yes"; then + AC_DEFINE(HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS, 1, + [Define if isl_options_set_schedule_serialize_sccs exists.]) + fi fi diff -Naur src/gcc.orig/gcc/graphite-dependences.c src/gcc/gcc/graphite-dependences.c --- src/gcc.orig/gcc/graphite-dependences.c 2014-10-06 03:27:22.000000000 -0300 +++ src/gcc/gcc/graphite-dependences.c 2015-08-01 03:27:39.626538000 -0300 @@ -183,7 +183,7 @@ /* Helper function used on each MAP of a isl_union_map. Computes the maximal output dimension. */ -static int +static isl_stat max_number_of_out_dimensions (__isl_take isl_map *map, void *user) { int global_max = *((int *) user); @@ -195,7 +195,7 @@ isl_map_free (map); isl_space_free (space); - return 0; + return isl_stat_ok; } /* Extends the output dimension of MAP to MAX dimensions. */ @@ -219,12 +219,12 @@ /* Helper function for extend_schedule. */ -static int +static isl_stat extend_schedule_1 (__isl_take isl_map *map, void *user) { struct extend_schedule_str *str = (struct extend_schedule_str *) user; str->umap = isl_union_map_add_map (str->umap, extend_map (map, str->max)); - return 0; + return isl_stat_ok; } /* Return a relation that has uniform output dimensions. */ @@ -233,16 +233,16 @@ extend_schedule (__isl_take isl_union_map *x) { int max = 0; - int res; + isl_stat res; struct extend_schedule_str str; res = isl_union_map_foreach_map (x, max_number_of_out_dimensions, (void *) &max); - gcc_assert (res == 0); + gcc_assert (res == isl_stat_ok); str.max = max; str.umap = isl_union_map_empty (isl_union_map_get_space (x)); res = isl_union_map_foreach_map (x, extend_schedule_1, (void *) &str); - gcc_assert (res == 0); + gcc_assert (res == isl_stat_ok); isl_union_map_free (x); return str.umap; diff -Naur src/gcc.orig/gcc/graphite-interchange.c src/gcc/gcc/graphite-interchange.c --- src/gcc.orig/gcc/graphite-interchange.c 2015-01-13 15:14:51.000000000 -0200 +++ src/gcc/gcc/graphite-interchange.c 2015-08-01 03:31:17.482630000 -0300 @@ -24,6 +24,7 @@ #include "config.h" #ifdef HAVE_cloog +#include #include #include #include diff -Naur src/gcc.orig/gcc/graphite-optimize-isl.c src/gcc/gcc/graphite-optimize-isl.c --- src/gcc.orig/gcc/graphite-optimize-isl.c 2015-01-13 15:14:51.000000000 -0200 +++ src/gcc/gcc/graphite-optimize-isl.c 2015-08-01 03:31:43.271150000 -0300 @@ -21,7 +21,9 @@ #include "config.h" #ifdef HAVE_cloog +#include #include +#include #include #include #include @@ -415,13 +417,13 @@ return ScheduleMap; } -static int +static isl_stat getSingleMap (__isl_take isl_map *map, void *user) { isl_map **singleMap = (isl_map **) user; *singleMap = map; - return 0; + return isl_stat_ok; } static void @@ -469,7 +471,11 @@ isl_options_set_schedule_max_constant_term (scop->ctx, CONSTANT_BOUND); isl_options_set_schedule_maximize_band_depth (scop->ctx, 1); +#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS + isl_options_set_schedule_serialize_sccs (scop->ctx, 1); +#else isl_options_set_schedule_fuse (scop->ctx, ISL_SCHEDULE_FUSE_MIN); +#endif isl_options_set_on_error (scop->ctx, ISL_ON_ERROR_CONTINUE); schedule = isl_union_set_compute_schedule (domain, validity, proximity); isl_options_set_on_error (scop->ctx, ISL_ON_ERROR_ABORT); diff -Naur src/gcc.orig/gcc/graphite-poly.h src/gcc/gcc/graphite-poly.h --- src/gcc.orig/gcc/graphite-poly.h 2014-10-06 03:27:22.000000000 -0300 +++ src/gcc/gcc/graphite-poly.h 2015-08-01 03:27:39.628524000 -0300 @@ -22,6 +22,11 @@ #ifndef GCC_GRAPHITE_POLY_H #define GCC_GRAPHITE_POLY_H +#ifndef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS +# define isl_stat int +# define isl_stat_ok 0 +#endif + typedef struct poly_dr *poly_dr_p; typedef struct poly_bb *poly_bb_p; diff -Naur src/gcc.orig/gcc/graphite-scop-detection.c src/gcc/gcc/graphite-scop-detection.c --- src/gcc.orig/gcc/graphite-scop-detection.c 2014-10-06 03:27:22.000000000 -0300 +++ src/gcc/gcc/graphite-scop-detection.c 2015-08-01 03:32:21.170581000 -0300 @@ -22,6 +22,7 @@ #include "config.h" #ifdef HAVE_cloog +#include #include #include #include diff -Naur src/gcc.orig/gcc/graphite.c src/gcc/gcc/graphite.c --- src/gcc.orig/gcc/graphite.c 2014-10-06 03:27:22.000000000 -0300 +++ src/gcc/gcc/graphite.c 2015-08-01 03:33:02.692021000 -0300 @@ -35,6 +35,7 @@ #include "config.h" #ifdef HAVE_cloog +#include #include #include #include