This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] gcc: fix building w/isl-0.15


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
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]