mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-11 18:04:38 +08:00
229 lines
7.3 KiB
Diff
229 lines
7.3 KiB
Diff
---
|
|
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
|