This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] gcc: fix building w/isl-0.15
- From: james harvey <jamespharvey20 at gmail dot com>
- To: gcc-patches at gcc dot gnu dot org, Mike Frysinger <vapier at gentoo dot org>
- Date: Sun, 19 Jul 2015 21:08:27 +0000
- Subject: Re: [PATCH] gcc: fix building w/isl-0.15
- Authentication-results: sourceware.org; auth=none
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 <vapier@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
>