This patch and https://gcc.gnu.org/ml/gcc-patches/2015-07/msg01506.html
Appear to do the trick. I'm building with ISL 0.15 just fine now. On Tue, Jul 14, 2015 at 2:45 PM, Mike Frysinger <vap...@gentoo.org> wrote: > --- > gcc/config.in | 6 ++++++ > gcc/configure | 31 +++++++++++++++++++++++++++++++ > gcc/configure.ac | 14 ++++++++++++++ > gcc/graphite-dependences.c | 14 +++++++------- > gcc/graphite-optimize-isl.c | 8 ++++++-- > gcc/graphite-poly.h | 5 +++++ > 6 files changed, 69 insertions(+), 9 deletions(-) > > diff --git a/gcc/config.in b/gcc/config.in > index b031a62..23e1757 100644 > --- a/gcc/config.in > +++ b/gcc/config.in > @@ -1326,6 +1326,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 --git a/gcc/configure b/gcc/configure > index 9561e5c..6e81298 100755 > --- a/gcc/configure > +++ b/gcc/configure > @@ -28456,6 +28456,8 @@ fi > > # 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. > if test "x${ISLLIBS}" != "x" ; then > saved_CXXFLAGS="$CXXFLAGS" > CXXFLAGS="$CXXFLAGS $ISLINC" > @@ -28485,6 +28487,29 @@ rm -f core conftest.err conftest.$ac_objext \ > { $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 <isl/schedule.h> > +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" > CXXFLAGS="$saved_CXXFLAGS" > > @@ -28493,6 +28518,12 @@ $as_echo > "$ac_has_isl_schedule_constraints_compute_schedule" >&6; } > $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 > > # Check for plugin support > diff --git a/gcc/configure.ac b/gcc/configure.ac > index cb14639..7fb964a 100644 > --- a/gcc/configure.ac > +++ b/gcc/configure.ac > @@ -5725,6 +5725,8 @@ fi > > # 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. > if test "x${ISLLIBS}" != "x" ; then > saved_CXXFLAGS="$CXXFLAGS" > CXXFLAGS="$CXXFLAGS $ISLINC" > @@ -5738,6 +5740,13 @@ if test "x${ISLLIBS}" != "x" ; then > [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/schedule.h>], > + [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" > CXXFLAGS="$saved_CXXFLAGS" > > @@ -5745,6 +5754,11 @@ if test "x${ISLLIBS}" != "x" ; then > 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 > > GCC_ENABLE_PLUGINS > diff --git a/gcc/graphite-dependences.c b/gcc/graphite-dependences.c > index 50fe73e..9a0986d 100644 > --- a/gcc/graphite-dependences.c > +++ b/gcc/graphite-dependences.c > @@ -205,7 +205,7 @@ scop_get_transformed_schedule (scop_p scop, > vec<poly_bb_p> pbbs) > /* 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); > @@ -217,7 +217,7 @@ max_number_of_out_dimensions (__isl_take isl_map *map, > void *user) > > isl_map_free (map); > isl_space_free (space); > - return 0; > + return isl_stat_ok; > } > > /* Extends the output dimension of MAP to MAX dimensions. */ > @@ -241,12 +241,12 @@ struct extend_schedule_str { > > /* 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. */ > @@ -255,16 +255,16 @@ __isl_give isl_union_map * > 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 --git a/gcc/graphite-optimize-isl.c b/gcc/graphite-optimize-isl.c > index f490401..388e25c 100644 > --- a/gcc/graphite-optimize-isl.c > +++ b/gcc/graphite-optimize-isl.c > @@ -506,13 +506,13 @@ getScheduleMap (isl_schedule *Schedule, isl_union_map > **map_sepcl) > 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 > @@ -584,7 +584,11 @@ optimize_isl (scop_p scop) > > 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); > > #ifdef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE > diff --git a/gcc/graphite-poly.h b/gcc/graphite-poly.h > index 7ffd18e..7022a1d 100644 > --- a/gcc/graphite-poly.h > +++ b/gcc/graphite-poly.h > @@ -24,6 +24,11 @@ along with GCC; see the file COPYING3. If not see > > #include "sese.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; > -- > 2.4.4 >