Commit f877b3ad by Richard Biener Committed by Richard Biener

isl.m4: Remove support for ISL 0.14.

2017-02-13  Richard Biener  <rguenther@suse.de>

	config/
	* isl.m4: Remove support for ISL 0.14.

	* configure: Re-generate.

	gcc/
	* configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
	Remove.
	* configure: Re-generate.
	* config.in: Likewise.
	* graphite-dependences.c: Simplify as if
	HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
	* graphite-isl-ast-to-gimple.c: Likewise.
	* graphite-optimize-isl.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.h: Likewise.
	* toplev.c: Include isl/version.h and use isl_version () for
	printing the ISL version.
	* doc/install.texi: Update ISL requirement.

From-SVN: r245382
parent c0d46793
2017-02-13 Richard Biener <rguenther@suse.de>
* configure: Re-generate.
2017-02-07 Gerald Pfeifer <gerald@pfeifer.com> 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
* MAINTAINERS: Adjust bug reporting URL. * MAINTAINERS: Adjust bug reporting URL.
......
2017-02-13 Richard Biener <rguenther@suse.de>
* isl.m4: Remove support for ISL 0.14.
2017-01-19 Uros Bizjak <ubizjak@gmail.com> 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
PR target/78478 PR target/78478
......
...@@ -106,27 +106,15 @@ AC_DEFUN([ISL_CHECK_VERSION], ...@@ -106,27 +106,15 @@ AC_DEFUN([ISL_CHECK_VERSION],
LDFLAGS="${_isl_saved_LDFLAGS} ${isllibs} ${gmplibs}" LDFLAGS="${_isl_saved_LDFLAGS} ${isllibs} ${gmplibs}"
LIBS="${_isl_saved_LIBS} -lisl -lgmp" LIBS="${_isl_saved_LIBS} -lisl -lgmp"
AC_MSG_CHECKING([for isl 0.16, 0.15, or deprecated 0.14]) AC_MSG_CHECKING([for isl 0.15 or later])
AC_TRY_LINK([#include <isl/ctx.h>], AC_TRY_LINK([#include <isl/schedule.h>],
[isl_ctx_get_max_operations (isl_ctx_alloc ());], [isl_options_set_schedule_serialize_sccs (NULL, 0);],
[gcc_cv_isl=yes], [gcc_cv_isl=yes],
[gcc_cv_isl=no]) [gcc_cv_isl=no])
AC_MSG_RESULT([$gcc_cv_isl]) AC_MSG_RESULT([$gcc_cv_isl])
if test "${gcc_cv_isl}" = no ; then if test "${gcc_cv_isl}" = no ; then
AC_MSG_RESULT([recommended isl version is 0.16 or 0.15, the minimum required isl version 0.14 is deprecated]) AC_MSG_RESULT([required isl version is 0.15 or later])
fi
AC_MSG_CHECKING([for isl 0.16 or 0.15])
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)
if test x"$ac_has_isl_options_set_schedule_serialize_sccs" = x"yes"; then
islver="0.15"
AC_SUBST([islver])
fi fi
CFLAGS=$_isl_saved_CFLAGS CFLAGS=$_isl_saved_CFLAGS
......
...@@ -649,7 +649,6 @@ extra_linker_plugin_flags ...@@ -649,7 +649,6 @@ extra_linker_plugin_flags
extra_linker_plugin_configure_flags extra_linker_plugin_configure_flags
islinc islinc
isllibs isllibs
islver
poststage1_ldflags poststage1_ldflags
poststage1_libs poststage1_libs
stage1_ldflags stage1_ldflags
...@@ -5939,15 +5938,15 @@ $as_echo "$as_me: WARNING: using in-tree isl, disabling version check" >&2;} ...@@ -5939,15 +5938,15 @@ $as_echo "$as_me: WARNING: using in-tree isl, disabling version check" >&2;}
LDFLAGS="${_isl_saved_LDFLAGS} ${isllibs} ${gmplibs}" LDFLAGS="${_isl_saved_LDFLAGS} ${isllibs} ${gmplibs}"
LIBS="${_isl_saved_LIBS} -lisl -lgmp" LIBS="${_isl_saved_LIBS} -lisl -lgmp"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for isl 0.16, 0.15, or deprecated 0.14" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isl 0.15 or later" >&5
$as_echo_n "checking for isl 0.16, 0.15, or deprecated 0.14... " >&6; } $as_echo_n "checking for isl 0.15 or later... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
#include <isl/ctx.h> #include <isl/schedule.h>
int int
main () main ()
{ {
isl_ctx_get_max_operations (isl_ctx_alloc ()); isl_options_set_schedule_serialize_sccs (NULL, 0);
; ;
return 0; return 0;
} }
...@@ -5963,36 +5962,8 @@ rm -f core conftest.err conftest.$ac_objext \ ...@@ -5963,36 +5962,8 @@ rm -f core conftest.err conftest.$ac_objext \
$as_echo "$gcc_cv_isl" >&6; } $as_echo "$gcc_cv_isl" >&6; }
if test "${gcc_cv_isl}" = no ; then if test "${gcc_cv_isl}" = no ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: recommended isl version is 0.16 or 0.15, the minimum required isl version 0.14 is deprecated" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: required isl version is 0.15 or later" >&5
$as_echo "recommended isl version is 0.16 or 0.15, the minimum required isl version 0.14 is deprecated" >&6; } $as_echo "required isl version is 0.15 or later" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for isl 0.16 or 0.15" >&5
$as_echo_n "checking for isl 0.16 or 0.15... " >&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_c_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; }
if test x"$ac_has_isl_options_set_schedule_serialize_sccs" = x"yes"; then
islver="0.15"
fi fi
CFLAGS=$_isl_saved_CFLAGS CFLAGS=$_isl_saved_CFLAGS
......
2017-02-13 Richard Biener <rguenther@suse.de>
* configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
Remove.
* configure: Re-generate.
* config.in: Likewise.
* graphite-dependences.c: Simplify as if
HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
* graphite-isl-ast-to-gimple.c: Likewise.
* graphite-optimize-isl.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-sese-to-poly.c: Likewise.
* graphite.h: Likewise.
* toplev.c: Include isl/version.h and use isl_version () for
printing the ISL version.
* doc/install.texi: Update ISL requirement.
2017-02-12 Gerald Pfeifer <gerald@pfeifer.com> 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
* doc/standards.texi (Standards): Update reference to * doc/standards.texi (Standards): Update reference to
......
...@@ -1423,12 +1423,6 @@ ...@@ -1423,12 +1423,6 @@
#endif #endif
/* Define if isl_options_set_schedule_serialize_sccs exists. */
#ifndef USED_FOR_TARGET
#undef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
#endif
/* Define to 1 if you have the `kill' function. */ /* Define to 1 if you have the `kill' function. */
#ifndef USED_FOR_TARGET #ifndef USED_FOR_TARGET
#undef HAVE_KILL #undef HAVE_KILL
......
...@@ -29432,47 +29432,6 @@ $as_echo "#define HAVE_isl 1" >>confdefs.h ...@@ -29432,47 +29432,6 @@ $as_echo "#define HAVE_isl 1" >>confdefs.h
fi fi
# 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 $GMPINC"
saved_LIBS="$LIBS"
LIBS="$LIBS $ISLLIBS $GMPLIBS"
{ $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"
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 # Check for plugin support
# Check whether --enable-plugin was given. # Check whether --enable-plugin was given.
if test "${enable_plugin+set}" = set; then : if test "${enable_plugin+set}" = set; then :
......
...@@ -6193,30 +6193,6 @@ if test "x${ISLLIBS}" != "x" ; then ...@@ -6193,30 +6193,6 @@ if test "x${ISLLIBS}" != "x" ; then
AC_DEFINE(HAVE_isl, 1, [Define if isl is in use.]) AC_DEFINE(HAVE_isl, 1, [Define if isl is in use.])
fi fi
# 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 $GMPINC"
saved_LIBS="$LIBS"
LIBS="$LIBS $ISLLIBS $GMPLIBS"
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"
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 GCC_ENABLE_PLUGINS
AC_SUBST(pluginlibs) AC_SUBST(pluginlibs)
AC_SUBST(enable_plugin) AC_SUBST(enable_plugin)
......
...@@ -385,7 +385,7 @@ installed but it is not in your default library search path, the ...@@ -385,7 +385,7 @@ installed but it is not in your default library search path, the
The in-tree build is only supported with the MPC version that The in-tree build is only supported with the MPC version that
download_prerequisites installs. download_prerequisites installs.
@item isl Library version 0.16, 0.15, or 0.14. @item isl Library version 0.15 or later.
Necessary to build GCC with the Graphite loop optimizations. Necessary to build GCC with the Graphite loop optimizations.
It can be downloaded from @uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/}. It can be downloaded from @uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/}.
......
...@@ -168,28 +168,6 @@ scop_get_may_writes (scop_p scop) ...@@ -168,28 +168,6 @@ scop_get_may_writes (scop_p scop)
return isl_union_map_coalesce (res); return isl_union_map_coalesce (res);
} }
#ifndef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
/* Returns all the original schedules in SCOP. */
static isl_union_map *
scop_get_original_schedule (scop_p scop, vec<poly_bb_p> pbbs)
{
int i;
poly_bb_p pbb;
isl_space *space = isl_set_get_space (scop->param_context);
isl_union_map *res = isl_union_map_empty (space);
FOR_EACH_VEC_ELT (pbbs, i, pbb)
{
res = isl_union_map_add_map
(res, constrain_domain (isl_map_copy (pbb->schedule),
isl_set_copy (pbb->domain)));
}
return isl_union_map_coalesce (res);
}
#endif
/* Helper function used on each MAP of a isl_union_map. Computes the /* Helper function used on each MAP of a isl_union_map. Computes the
maximal output dimension. */ maximal output dimension. */
...@@ -311,7 +289,6 @@ carries_deps (__isl_keep isl_union_map *schedule, ...@@ -311,7 +289,6 @@ carries_deps (__isl_keep isl_union_map *schedule,
return res; return res;
} }
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
/* Compute the dependence relations for the SCOP: /* Compute the dependence relations for the SCOP:
RAW are read after write dependences, RAW are read after write dependences,
WAR are write after read dependences, WAR are write after read dependences,
...@@ -398,133 +375,4 @@ scop_get_dependences (scop_p scop) ...@@ -398,133 +375,4 @@ scop_get_dependences (scop_p scop)
scop->dependence = dependences; scop->dependence = dependences;
} }
#else
/* Compute the original data dependences in SCOP for all the reads and
writes in PBBS. */
static void
compute_deps (scop_p scop, vec<poly_bb_p> pbbs,
isl_union_map **must_raw,
isl_union_map **may_raw,
isl_union_map **must_raw_no_source,
isl_union_map **may_raw_no_source,
isl_union_map **must_war,
isl_union_map **may_war,
isl_union_map **must_war_no_source,
isl_union_map **may_war_no_source,
isl_union_map **must_waw,
isl_union_map **may_waw,
isl_union_map **must_waw_no_source,
isl_union_map **may_waw_no_source)
{
isl_union_map *reads = scop_get_reads (scop);
isl_union_map *must_writes = scop_get_must_writes (scop);
isl_union_map *may_writes = scop_get_may_writes (scop);
isl_union_map *all_writes = isl_union_map_union
(isl_union_map_copy (must_writes), isl_union_map_copy (may_writes));
all_writes = isl_union_map_coalesce (all_writes);
isl_space *space = isl_union_map_get_space (all_writes);
isl_union_map *empty = isl_union_map_empty (space);
isl_union_map *original = scop_get_original_schedule (scop, pbbs);
if (dump_file)
{
fprintf (dump_file, "\n--- Documentation for datarefs dump: ---\n");
fprintf (dump_file, "Statements on the iteration domain are mapped to"
" array references.\n");
fprintf (dump_file, " To read the following data references:\n\n");
fprintf (dump_file, " S_5[i0] -> [106] : i0 >= 0 and i0 <= 3\n");
fprintf (dump_file, " S_8[i0] -> [1, i0] : i0 >= 0 and i0 <= 3\n\n");
fprintf (dump_file, " S_5[i0] is the dynamic instance of statement"
" bb_5 in a loop that accesses all iterations 0 <= i0 <= 3.\n");
fprintf (dump_file, " [1, i0] is a 'memref' with alias set 1"
" and first subscript access i0.\n");
fprintf (dump_file, " [106] is a 'scalar reference' which is the sum of"
" SSA_NAME_VERSION 6"
" and --param graphite-max-arrays-per-scop=100\n");
fprintf (dump_file, "-----------------------\n\n");
fprintf (dump_file, "data references (\n");
fprintf (dump_file, " reads: ");
print_isl_union_map (dump_file, reads);
fprintf (dump_file, " must_writes: ");
print_isl_union_map (dump_file, must_writes);
fprintf (dump_file, " may_writes: ");
print_isl_union_map (dump_file, may_writes);
fprintf (dump_file, " all_writes: ");
print_isl_union_map (dump_file, all_writes);
fprintf (dump_file, ")\n");
}
isl_union_map_compute_flow (isl_union_map_copy (reads),
isl_union_map_copy (must_writes),
isl_union_map_copy (may_writes),
isl_union_map_copy (original),
must_raw, may_raw, must_raw_no_source,
may_raw_no_source);
isl_union_map_compute_flow (isl_union_map_copy (all_writes),
reads, empty,
isl_union_map_copy (original),
must_war, may_war, must_war_no_source,
may_war_no_source);
isl_union_map_compute_flow (all_writes, must_writes, may_writes,
original,
must_waw, may_waw, must_waw_no_source,
may_waw_no_source);
}
isl_union_map *
scop_get_dependences (scop_p scop)
{
if (scop->dependence)
return scop->dependence;
/* The original dependence relations:
RAW are read after write dependences,
WAR are write after read dependences,
WAW are write after write dependences. */
isl_union_map *must_raw = NULL, *may_raw = NULL, *must_raw_no_source = NULL,
*may_raw_no_source = NULL, *must_war = NULL, *may_war = NULL,
*must_war_no_source = NULL, *may_war_no_source = NULL, *must_waw = NULL,
*may_waw = NULL, *must_waw_no_source = NULL, *may_waw_no_source = NULL;
compute_deps (scop, scop->pbbs,
&must_raw, &may_raw,
&must_raw_no_source, &may_raw_no_source,
&must_war, &may_war,
&must_war_no_source, &may_war_no_source,
&must_waw, &may_waw,
&must_waw_no_source, &may_waw_no_source);
isl_union_map *dependences = must_raw;
dependences = isl_union_map_union (dependences, must_war);
dependences = isl_union_map_union (dependences, must_waw);
dependences = isl_union_map_union (dependences, may_raw);
dependences = isl_union_map_union (dependences, may_war);
dependences = isl_union_map_union (dependences, may_waw);
dependences = isl_union_map_coalesce (dependences);
if (dump_file)
{
fprintf (dump_file, "data dependences (\n");
print_isl_union_map (dump_file, dependences);
fprintf (dump_file, ")\n");
}
isl_union_map_free (must_raw_no_source);
isl_union_map_free (may_raw_no_source);
isl_union_map_free (must_war_no_source);
isl_union_map_free (may_war_no_source);
isl_union_map_free (must_waw_no_source);
isl_union_map_free (may_waw_no_source);
scop->dependence = dependences;
return dependences;
}
#endif /* HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS */
#endif /* HAVE_isl */ #endif /* HAVE_isl */
...@@ -115,8 +115,6 @@ static void ivs_params_clear (ivs_params &ip) ...@@ -115,8 +115,6 @@ static void ivs_params_clear (ivs_params &ip)
} }
} }
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
/* Set the "separate" option for the schedule node. */ /* Set the "separate" option for the schedule node. */
static isl_schedule_node * static isl_schedule_node *
...@@ -157,8 +155,6 @@ debug_schedule_ast (__isl_keep isl_schedule *s, scop_p scop) ...@@ -157,8 +155,6 @@ debug_schedule_ast (__isl_keep isl_schedule *s, scop_p scop)
print_schedule_ast (stderr, s, scop); print_schedule_ast (stderr, s, scop);
} }
#endif
enum phi_node_kind enum phi_node_kind
{ {
unknown_phi, unknown_phi,
...@@ -227,17 +223,7 @@ class translate_isl_ast_to_gimple ...@@ -227,17 +223,7 @@ class translate_isl_ast_to_gimple
void add_parameters_to_ivs_params (scop_p scop, ivs_params &ip); void add_parameters_to_ivs_params (scop_p scop, ivs_params &ip);
__isl_give isl_ast_build *generate_isl_context (scop_p scop); __isl_give isl_ast_build *generate_isl_context (scop_p scop);
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
__isl_give isl_ast_node * scop_to_isl_ast (scop_p scop); __isl_give isl_ast_node * scop_to_isl_ast (scop_p scop);
#else
int get_max_schedule_dimensions (scop_p scop);
__isl_give isl_map *extend_schedule (__isl_take isl_map *schedule,
int nb_schedule_dims);
__isl_give isl_union_map *generate_isl_schedule (scop_p scop);
__isl_give isl_ast_build *set_options (__isl_take isl_ast_build *control,
__isl_keep isl_union_map *schedule);
__isl_give isl_ast_node *scop_to_isl_ast (scop_p scop, ivs_params &ip);
#endif
bool is_valid_rename (tree rename, basic_block def_bb, basic_block use_bb, bool is_valid_rename (tree rename, basic_block def_bb, basic_block use_bb,
phi_node_kind, tree old_name, basic_block old_bb) const; phi_node_kind, tree old_name, basic_block old_bb) const;
...@@ -400,10 +386,7 @@ binary_op_to_tree (tree type, __isl_take isl_ast_expr *expr, ivs_params &ip) ...@@ -400,10 +386,7 @@ binary_op_to_tree (tree type, __isl_take isl_ast_expr *expr, ivs_params &ip)
} }
return fold_build2 (TRUNC_DIV_EXPR, type, tree_lhs_expr, tree_rhs_expr); return fold_build2 (TRUNC_DIV_EXPR, type, tree_lhs_expr, tree_rhs_expr);
#if HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
/* isl 0.15 or later. */
case isl_ast_op_zdiv_r: case isl_ast_op_zdiv_r:
#endif
case isl_ast_op_pdiv_r: case isl_ast_op_pdiv_r:
/* As isl operates on arbitrary precision numbers, we may end up with /* As isl operates on arbitrary precision numbers, we may end up with
division by 2^64 that is folded to 0. */ division by 2^64 that is folded to 0. */
...@@ -568,10 +551,7 @@ gcc_expression_from_isl_expr_op (tree type, __isl_take isl_ast_expr *expr, ...@@ -568,10 +551,7 @@ gcc_expression_from_isl_expr_op (tree type, __isl_take isl_ast_expr *expr,
case isl_ast_op_pdiv_q: case isl_ast_op_pdiv_q:
case isl_ast_op_pdiv_r: case isl_ast_op_pdiv_r:
case isl_ast_op_fdiv_q: case isl_ast_op_fdiv_q:
#if HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
/* isl 0.15 or later. */
case isl_ast_op_zdiv_r: case isl_ast_op_zdiv_r:
#endif
case isl_ast_op_and: case isl_ast_op_and:
case isl_ast_op_or: case isl_ast_op_or:
case isl_ast_op_eq: case isl_ast_op_eq:
...@@ -1043,7 +1023,6 @@ translate_isl_ast (loop_p context_loop, __isl_keep isl_ast_node *node, ...@@ -1043,7 +1023,6 @@ translate_isl_ast (loop_p context_loop, __isl_keep isl_ast_node *node,
return translate_isl_ast_node_block (context_loop, node, return translate_isl_ast_node_block (context_loop, node,
next_e, ip); next_e, ip);
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
case isl_ast_node_mark: case isl_ast_node_mark:
{ {
isl_ast_node *n = isl_ast_node_mark_get_node (node); isl_ast_node *n = isl_ast_node_mark_get_node (node);
...@@ -1051,7 +1030,6 @@ translate_isl_ast (loop_p context_loop, __isl_keep isl_ast_node *node, ...@@ -1051,7 +1030,6 @@ translate_isl_ast (loop_p context_loop, __isl_keep isl_ast_node *node,
isl_ast_node_free (n); isl_ast_node_free (n);
return e; return e;
} }
#endif
default: default:
gcc_unreachable (); gcc_unreachable ();
...@@ -2912,8 +2890,6 @@ ast_build_before_for (__isl_keep isl_ast_build *build, void *user) ...@@ -2912,8 +2890,6 @@ ast_build_before_for (__isl_keep isl_ast_build *build, void *user)
return id; return id;
} }
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
/* Generate isl AST from schedule of SCOP. */ /* Generate isl AST from schedule of SCOP. */
__isl_give isl_ast_node *translate_isl_ast_to_gimple:: __isl_give isl_ast_node *translate_isl_ast_to_gimple::
...@@ -2940,138 +2916,6 @@ scop_to_isl_ast (scop_p scop) ...@@ -2940,138 +2916,6 @@ scop_to_isl_ast (scop_p scop)
return ast_isl; return ast_isl;
} }
#else
/* Get the maximal number of schedule dimensions in the scop SCOP. */
int translate_isl_ast_to_gimple::
get_max_schedule_dimensions (scop_p scop)
{
int i;
poly_bb_p pbb;
int schedule_dims = 0;
FOR_EACH_VEC_ELT (scop->pbbs, i, pbb)
{
int pbb_schedule_dims = isl_map_dim (pbb->transformed, isl_dim_out);
if (pbb_schedule_dims > schedule_dims)
schedule_dims = pbb_schedule_dims;
}
return schedule_dims;
}
/* Extend the schedule to NB_SCHEDULE_DIMS schedule dimensions.
For schedules with different dimensionality, the isl AST generator can not
define an order and will just randomly choose an order. The solution to this
problem is to extend all schedules to the maximal number of schedule
dimensions (using '0's for the remaining values). */
__isl_give isl_map *translate_isl_ast_to_gimple::
extend_schedule (__isl_take isl_map *schedule, int nb_schedule_dims)
{
int tmp_dims = isl_map_dim (schedule, isl_dim_out);
schedule =
isl_map_add_dims (schedule, isl_dim_out, nb_schedule_dims - tmp_dims);
isl_val *zero =
isl_val_int_from_si (isl_map_get_ctx (schedule), 0);
int i;
for (i = tmp_dims; i < nb_schedule_dims; i++)
{
schedule
= isl_map_fix_val (schedule, isl_dim_out, i, isl_val_copy (zero));
}
isl_val_free (zero);
return schedule;
}
/* Generates a schedule, which specifies an order used to
visit elements in a domain. */
__isl_give isl_union_map *translate_isl_ast_to_gimple::
generate_isl_schedule (scop_p scop)
{
int nb_schedule_dims = get_max_schedule_dimensions (scop);
int i;
poly_bb_p pbb;
isl_union_map *schedule_isl =
isl_union_map_empty (isl_set_get_space (scop->param_context));
FOR_EACH_VEC_ELT (scop->pbbs, i, pbb)
{
/* Dead code elimination: when the domain of a PBB is empty,
don't generate code for the PBB. */
if (isl_set_is_empty (pbb->domain))
continue;
isl_map *bb_schedule = isl_map_copy (pbb->transformed);
bb_schedule = isl_map_intersect_domain (bb_schedule,
isl_set_copy (pbb->domain));
bb_schedule = extend_schedule (bb_schedule, nb_schedule_dims);
bb_schedule = isl_map_coalesce (bb_schedule);
schedule_isl
= isl_union_map_union (schedule_isl,
isl_union_map_from_map (bb_schedule));
schedule_isl = isl_union_map_coalesce (schedule_isl);
}
return schedule_isl;
}
/* Set the separate option for all dimensions.
This helps to reduce control overhead. */
__isl_give isl_ast_build *translate_isl_ast_to_gimple::
set_options (__isl_take isl_ast_build *control,
__isl_keep isl_union_map *schedule)
{
isl_ctx *ctx = isl_union_map_get_ctx (schedule);
isl_space *range_space = isl_space_set_alloc (ctx, 0, 1);
range_space =
isl_space_set_tuple_name (range_space, isl_dim_set, "separate");
isl_union_set *range =
isl_union_set_from_set (isl_set_universe (range_space));
isl_union_set *domain = isl_union_map_range (isl_union_map_copy (schedule));
domain = isl_union_set_universe (domain);
isl_union_map *options = isl_union_map_from_domain_and_range (domain, range);
return isl_ast_build_set_options (control, options);
}
/* Generate isl AST from schedule of SCOP. Also, collects IVS_PARAMS in IP. */
__isl_give isl_ast_node *translate_isl_ast_to_gimple::
scop_to_isl_ast (scop_p scop, ivs_params &ip)
{
/* Generate loop upper bounds that consist of the current loop iterator, an
operator (< or <=) and an expression not involving the iterator. If this
option is not set, then the current loop iterator may appear several times
in the upper bound. See the isl manual for more details. */
isl_options_set_ast_build_atomic_upper_bound (scop->isl_context, true);
add_parameters_to_ivs_params (scop, ip);
isl_union_map *schedule_isl = generate_isl_schedule (scop);
isl_ast_build *context_isl = generate_isl_context (scop);
context_isl = set_options (context_isl, schedule_isl);
if (flag_loop_parallelize_all)
{
isl_union_map *dependence = scop_get_dependences (scop);
context_isl =
isl_ast_build_set_before_each_for (context_isl, ast_build_before_for,
dependence);
}
isl_ast_node *ast_isl = isl_ast_build_ast_from_schedule (context_isl,
schedule_isl);
if (scop->schedule)
{
isl_schedule_free (scop->schedule);
scop->schedule = NULL;
}
isl_ast_build_free (context_isl);
return ast_isl;
}
#endif
/* Copy def from sese REGION to the newly created TO_REGION. TR is defined by /* Copy def from sese REGION to the newly created TO_REGION. TR is defined by
DEF_STMT. GSI points to entry basic block of the TO_REGION. */ DEF_STMT. GSI points to entry basic block of the TO_REGION. */
...@@ -3150,16 +2994,11 @@ graphite_regenerate_ast_isl (scop_p scop) ...@@ -3150,16 +2994,11 @@ graphite_regenerate_ast_isl (scop_p scop)
ivs_params ip; ivs_params ip;
timevar_push (TV_GRAPHITE_CODE_GEN); timevar_push (TV_GRAPHITE_CODE_GEN);
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
t.add_parameters_to_ivs_params (scop, ip); t.add_parameters_to_ivs_params (scop, ip);
root_node = t.scop_to_isl_ast (scop); root_node = t.scop_to_isl_ast (scop);
#else
root_node = t.scop_to_isl_ast (scop, ip);
#endif
if (dump_file && (dump_flags & TDF_DETAILS)) if (dump_file && (dump_flags & TDF_DETAILS))
{ {
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
fprintf (dump_file, "[scheduler] original schedule:\n"); fprintf (dump_file, "[scheduler] original schedule:\n");
print_isl_schedule (dump_file, scop->original_schedule); print_isl_schedule (dump_file, scop->original_schedule);
fprintf (dump_file, "[scheduler] isl transformed schedule:\n"); fprintf (dump_file, "[scheduler] isl transformed schedule:\n");
...@@ -3167,7 +3006,6 @@ graphite_regenerate_ast_isl (scop_p scop) ...@@ -3167,7 +3006,6 @@ graphite_regenerate_ast_isl (scop_p scop)
fprintf (dump_file, "[scheduler] original ast:\n"); fprintf (dump_file, "[scheduler] original ast:\n");
print_schedule_ast (dump_file, scop->original_schedule, scop); print_schedule_ast (dump_file, scop->original_schedule, scop);
#endif
fprintf (dump_file, "[scheduler] AST generated by isl:\n"); fprintf (dump_file, "[scheduler] AST generated by isl:\n");
print_isl_ast (dump_file, root_node); print_isl_ast (dump_file, root_node);
} }
......
...@@ -136,13 +136,7 @@ new_poly_bb (scop_p scop, gimple_poly_bb_p black_box) ...@@ -136,13 +136,7 @@ new_poly_bb (scop_p scop, gimple_poly_bb_p black_box)
poly_bb_p pbb = XNEW (struct poly_bb); poly_bb_p pbb = XNEW (struct poly_bb);
pbb->domain = NULL; pbb->domain = NULL;
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
pbb->iterators = NULL; pbb->iterators = NULL;
#else
pbb->schedule = NULL;
pbb->transformed = NULL;
pbb->saved = NULL;
#endif
PBB_SCOP (pbb) = scop; PBB_SCOP (pbb) = scop;
pbb_set_black_box (pbb, black_box); pbb_set_black_box (pbb, black_box);
PBB_DRS (pbb).create (3); PBB_DRS (pbb).create (3);
...@@ -161,17 +155,8 @@ free_poly_bb (poly_bb_p pbb) ...@@ -161,17 +155,8 @@ free_poly_bb (poly_bb_p pbb)
isl_set_free (pbb->domain); isl_set_free (pbb->domain);
pbb->domain = NULL; pbb->domain = NULL;
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
isl_set_free (pbb->iterators); isl_set_free (pbb->iterators);
pbb->iterators = NULL; pbb->iterators = NULL;
#else
isl_map_free (pbb->schedule);
pbb->schedule = NULL;
isl_map_free (pbb->transformed);
pbb->transformed = NULL;
isl_map_free (pbb->saved);
pbb->saved = NULL;
#endif
if (PBB_DRS (pbb).exists ()) if (PBB_DRS (pbb).exists ())
FOR_EACH_VEC_ELT (PBB_DRS (pbb), i, pdr) FOR_EACH_VEC_ELT (PBB_DRS (pbb), i, pdr)
...@@ -273,12 +258,8 @@ new_scop (edge entry, edge exit) ...@@ -273,12 +258,8 @@ new_scop (edge entry, edge exit)
sese_info_p region = new_sese_info (entry, exit); sese_info_p region = new_sese_info (entry, exit);
scop_p s = XNEW (struct scop); scop_p s = XNEW (struct scop);
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
s->original_schedule = NULL; s->original_schedule = NULL;
s->transformed_schedule = NULL; s->transformed_schedule = NULL;
#else
s->schedule = NULL;
#endif
s->param_context = NULL; s->param_context = NULL;
scop_set_region (s, region); scop_set_region (s, region);
s->pbbs.create (3); s->pbbs.create (3);
...@@ -308,14 +289,10 @@ free_scop (scop_p scop) ...@@ -308,14 +289,10 @@ free_scop (scop_p scop)
scop->param_context = NULL; scop->param_context = NULL;
isl_union_map_free (scop->dependence); isl_union_map_free (scop->dependence);
scop->dependence = NULL; scop->dependence = NULL;
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
isl_schedule_free (scop->original_schedule); isl_schedule_free (scop->original_schedule);
scop->original_schedule = NULL; scop->original_schedule = NULL;
isl_schedule_free (scop->transformed_schedule); isl_schedule_free (scop->transformed_schedule);
scop->transformed_schedule = NULL; scop->transformed_schedule = NULL;
#else
#endif
XDELETE (scop); XDELETE (scop);
} }
...@@ -543,9 +520,7 @@ void ...@@ -543,9 +520,7 @@ void
print_isl_set (FILE *f, __isl_keep isl_set *set) print_isl_set (FILE *f, __isl_keep isl_set *set)
{ {
isl_printer *p = isl_printer_to_file (the_isl_ctx, f); isl_printer *p = isl_printer_to_file (the_isl_ctx, f);
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
p = isl_printer_set_yaml_style (p, ISL_YAML_STYLE_BLOCK); p = isl_printer_set_yaml_style (p, ISL_YAML_STYLE_BLOCK);
#endif
p = isl_printer_print_set (p, set); p = isl_printer_print_set (p, set);
p = isl_printer_print_str (p, "\n"); p = isl_printer_print_str (p, "\n");
isl_printer_free (p); isl_printer_free (p);
...@@ -561,9 +536,7 @@ void ...@@ -561,9 +536,7 @@ void
print_isl_map (FILE *f, __isl_keep isl_map *map) print_isl_map (FILE *f, __isl_keep isl_map *map)
{ {
isl_printer *p = isl_printer_to_file (the_isl_ctx, f); isl_printer *p = isl_printer_to_file (the_isl_ctx, f);
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
p = isl_printer_set_yaml_style (p, ISL_YAML_STYLE_BLOCK); p = isl_printer_set_yaml_style (p, ISL_YAML_STYLE_BLOCK);
#endif
p = isl_printer_print_map (p, map); p = isl_printer_print_map (p, map);
p = isl_printer_print_str (p, "\n"); p = isl_printer_print_str (p, "\n");
isl_printer_free (p); isl_printer_free (p);
...@@ -579,9 +552,7 @@ void ...@@ -579,9 +552,7 @@ void
print_isl_union_map (FILE *f, __isl_keep isl_union_map *map) print_isl_union_map (FILE *f, __isl_keep isl_union_map *map)
{ {
isl_printer *p = isl_printer_to_file (the_isl_ctx, f); isl_printer *p = isl_printer_to_file (the_isl_ctx, f);
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
p = isl_printer_set_yaml_style (p, ISL_YAML_STYLE_BLOCK); p = isl_printer_set_yaml_style (p, ISL_YAML_STYLE_BLOCK);
#endif
p = isl_printer_print_union_map (p, map); p = isl_printer_print_union_map (p, map);
p = isl_printer_print_str (p, "\n"); p = isl_printer_print_str (p, "\n");
isl_printer_free (p); isl_printer_free (p);
...@@ -627,9 +598,7 @@ void ...@@ -627,9 +598,7 @@ void
print_isl_schedule (FILE *f, __isl_keep isl_schedule *s) print_isl_schedule (FILE *f, __isl_keep isl_schedule *s)
{ {
isl_printer *p = isl_printer_to_file (the_isl_ctx, f); isl_printer *p = isl_printer_to_file (the_isl_ctx, f);
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
p = isl_printer_set_yaml_style (p, ISL_YAML_STYLE_BLOCK); p = isl_printer_set_yaml_style (p, ISL_YAML_STYLE_BLOCK);
#endif
p = isl_printer_print_schedule (p, s); p = isl_printer_print_schedule (p, s);
p = isl_printer_print_str (p, "\n"); p = isl_printer_print_str (p, "\n");
isl_printer_free (p); isl_printer_free (p);
......
...@@ -77,153 +77,6 @@ isl_id_for_pbb (scop_p s, poly_bb_p pbb) ...@@ -77,153 +77,6 @@ isl_id_for_pbb (scop_p s, poly_bb_p pbb)
return isl_id_alloc (s->isl_context, name, pbb); return isl_id_alloc (s->isl_context, name, pbb);
} }
#ifndef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
/* Converts the STATIC_SCHEDULE of PBB into a scattering polyhedron.
We generate SCATTERING_DIMENSIONS scattering dimensions.
The scattering polyhedron consists of these dimensions: scattering,
loop_iterators, parameters.
Example:
| scattering_dimensions = 5
| nb_iterators = 1
| scop_nb_params = 2
|
| Schedule:
| i
| 4 5
|
| Scattering polyhedron:
|
| scattering: {s1, s2, s3, s4, s5}
| loop_iterators: {i}
| parameters: {p1, p2}
|
| s1 s2 s3 s4 s5 i p1 p2 1
| 1 0 0 0 0 0 0 0 -4 = 0
| 0 1 0 0 0 -1 0 0 0 = 0
| 0 0 1 0 0 0 0 0 -5 = 0 */
static void
build_pbb_scattering_polyhedrons (isl_aff *static_sched,
poly_bb_p pbb)
{
isl_val *val;
int scattering_dimensions = isl_set_dim (pbb->domain, isl_dim_set) * 2 + 1;
isl_space *dc = isl_set_get_space (pbb->domain);
isl_space *dm = isl_space_add_dims (isl_space_from_domain (dc),
isl_dim_out, scattering_dimensions);
pbb->schedule = isl_map_universe (dm);
for (int i = 0; i < scattering_dimensions; i++)
{
/* Textual order inside this loop. */
if ((i % 2) == 0)
{
isl_constraint *c = isl_equality_alloc
(isl_local_space_from_space (isl_map_get_space (pbb->schedule)));
val = isl_aff_get_coefficient_val (static_sched, isl_dim_in, i / 2);
gcc_assert (val && isl_val_is_int (val));
val = isl_val_neg (val);
c = isl_constraint_set_constant_val (c, val);
c = isl_constraint_set_coefficient_si (c, isl_dim_out, i, 1);
pbb->schedule = isl_map_add_constraint (pbb->schedule, c);
}
/* Iterations of this loop. */
else /* if ((i % 2) == 1) */
{
int loop = (i - 1) / 2;
pbb->schedule = isl_map_equate (pbb->schedule, isl_dim_in, loop,
isl_dim_out, i);
}
}
/* Simplify the original schedule. */
pbb->schedule = isl_map_coalesce (pbb->schedule);
/* At the beginning, set the transformed schedule to the original. */
pbb->transformed = isl_map_copy (pbb->schedule);
}
/* Build for BB the static schedule.
The static schedule is a Dewey numbering of the abstract syntax
tree: http://en.wikipedia.org/wiki/Dewey_Decimal_Classification
The following example informally defines the static schedule:
A
for (i: ...)
{
for (j: ...)
{
B
C
}
for (k: ...)
{
D
E
}
}
F
Static schedules for A to F:
DEPTH
0 1 2
A 0
B 1 0 0
C 1 0 1
D 1 1 0
E 1 1 1
F 2
*/
static void
build_scop_scattering (scop_p scop)
{
gimple_poly_bb_p previous_gbb = NULL;
isl_space *dc = isl_set_get_space (scop->param_context);
isl_aff *static_sched;
dc = isl_space_add_dims (dc, isl_dim_set, number_of_loops (cfun));
static_sched = isl_aff_zero_on_domain (isl_local_space_from_space (dc));
/* We have to start schedules at 0 on the first component and
because we cannot compare_prefix_loops against a previous loop,
prefix will be equal to zero, and that index will be
incremented before copying. */
static_sched = isl_aff_add_coefficient_si (static_sched, isl_dim_in, 0, -1);
int i;
poly_bb_p pbb;
FOR_EACH_VEC_ELT (scop->pbbs, i, pbb)
{
gimple_poly_bb_p gbb = PBB_BLACK_BOX (pbb);
int prefix = 0;
if (previous_gbb)
prefix = nb_common_loops (scop->scop_info->region, previous_gbb, gbb);
previous_gbb = gbb;
static_sched = isl_aff_add_coefficient_si (static_sched, isl_dim_in,
prefix, 1);
build_pbb_scattering_polyhedrons (static_sched, pbb);
}
isl_aff_free (static_sched);
}
#endif
static isl_pw_aff *extract_affine (scop_p, tree, __isl_take isl_space *space); static isl_pw_aff *extract_affine (scop_p, tree, __isl_take isl_space *space);
/* Extract an affine expression from the chain of recurrence E. */ /* Extract an affine expression from the chain of recurrence E. */
...@@ -1009,9 +862,7 @@ build_iteration_domains (scop_p scop, __isl_keep isl_set *context, ...@@ -1009,9 +862,7 @@ build_iteration_domains (scop_p scop, __isl_keep isl_set *context,
loop_p loop = pbb_loop (pbb); loop_p loop = pbb_loop (pbb);
if (current == loop) if (current == loop)
{ {
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
pbb->iterators = isl_set_copy (domain); pbb->iterators = isl_set_copy (domain);
#endif
pbb->domain = isl_set_copy (domain); pbb->domain = isl_set_copy (domain);
pbb->domain = isl_set_set_tuple_id (pbb->domain, pbb->domain = isl_set_set_tuple_id (pbb->domain,
isl_id_for_pbb (scop, pbb)); isl_id_for_pbb (scop, pbb));
...@@ -1069,8 +920,6 @@ build_scop_context (scop_p scop) ...@@ -1069,8 +920,6 @@ build_scop_context (scop_p scop)
add_param_constraints (scop, p); add_param_constraints (scop, p);
} }
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
/* Return true when loop A is nested in loop B. */ /* Return true when loop A is nested in loop B. */
static bool static bool
...@@ -1350,8 +1199,6 @@ build_original_schedule (scop_p scop) ...@@ -1350,8 +1199,6 @@ build_original_schedule (scop_p scop)
return true; return true;
} }
#endif
/* Builds the polyhedral representation for a SESE region. */ /* Builds the polyhedral representation for a SESE region. */
bool bool
...@@ -1365,11 +1212,7 @@ build_poly_scop (scop_p scop) ...@@ -1365,11 +1212,7 @@ build_poly_scop (scop_p scop)
i = build_iteration_domains (scop, scop->param_context, i, NULL); i = build_iteration_domains (scop, scop->param_context, i, NULL);
build_scop_drs (scop); build_scop_drs (scop);
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
build_original_schedule (scop); build_original_schedule (scop);
#else
build_scop_scattering (scop);
#endif
return true; return true;
} }
#endif /* HAVE_isl */ #endif /* HAVE_isl */
...@@ -36,17 +36,8 @@ along with GCC; see the file COPYING3. If not see ...@@ -36,17 +36,8 @@ along with GCC; see the file COPYING3. If not see
#include <isl/ilp.h> #include <isl/ilp.h>
#include <isl/schedule.h> #include <isl/schedule.h>
#include <isl/ast_build.h> #include <isl/ast_build.h>
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
/* isl 0.15 or later. */
#include <isl/schedule_node.h> #include <isl/schedule_node.h>
#else
/* isl 0.14 or 0.13. */
# define isl_stat int
# define isl_stat_ok 0
#endif
typedef struct poly_dr *poly_dr_p; typedef struct poly_dr *poly_dr_p;
typedef struct poly_bb *poly_bb_p; typedef struct poly_bb *poly_bb_p;
...@@ -267,18 +258,7 @@ struct poly_bb ...@@ -267,18 +258,7 @@ struct poly_bb
The number of variables in the DOMAIN may change and is not The number of variables in the DOMAIN may change and is not
related to the number of loops in the original code. */ related to the number of loops in the original code. */
isl_set *domain; isl_set *domain;
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
isl_set *iterators; isl_set *iterators;
#else
/* The original scattering. */
isl_map *schedule;
/* The transformed scattering. */
isl_map *transformed;
/* A copy of the transformed scattering. */
isl_map *saved;
#endif
/* The data references we access. */ /* The data references we access. */
vec<poly_dr_p> drs; vec<poly_dr_p> drs;
...@@ -425,16 +405,11 @@ struct scop ...@@ -425,16 +405,11 @@ struct scop
/* The context used internally by isl. */ /* The context used internally by isl. */
isl_ctx *isl_context; isl_ctx *isl_context;
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
/* SCoP original schedule. */ /* SCoP original schedule. */
isl_schedule *original_schedule; isl_schedule *original_schedule;
/* SCoP transformed schedule. */ /* SCoP transformed schedule. */
isl_schedule *transformed_schedule; isl_schedule *transformed_schedule;
#else
/* SCoP final schedule. */
isl_schedule *schedule;
#endif
/* The data dependence relation among the data references in this scop. */ /* The data dependence relation among the data references in this scop. */
isl_union_map *dependence; isl_union_map *dependence;
...@@ -470,11 +445,7 @@ scop_set_nb_params (scop_p scop, graphite_dim_t nb_params) ...@@ -470,11 +445,7 @@ scop_set_nb_params (scop_p scop, graphite_dim_t nb_params)
scop->nb_params = nb_params; scop->nb_params = nb_params;
} }
#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
extern void scop_get_dependences (scop_p scop); extern void scop_get_dependences (scop_p scop);
#else
extern isl_union_map *scop_get_dependences (scop_p scop);
#endif
bool bool
carries_deps (__isl_keep isl_union_map *schedule, carries_deps (__isl_keep isl_union_map *schedule,
......
...@@ -92,6 +92,10 @@ along with GCC; see the file COPYING3. If not see ...@@ -92,6 +92,10 @@ along with GCC; see the file COPYING3. If not see
#include "selftest.h" #include "selftest.h"
#ifdef HAVE_isl
#include <isl/version.h>
#endif
static void general_init (const char *, bool); static void general_init (const char *, bool);
static void do_compile (); static void do_compile ();
static void process_options (void); static void process_options (void);
...@@ -678,10 +682,8 @@ print_version (FILE *file, const char *indent, bool show_global_state) ...@@ -678,10 +682,8 @@ print_version (FILE *file, const char *indent, bool show_global_state)
GCC_GMP_STRINGIFY_VERSION, MPFR_VERSION_STRING, MPC_VERSION_STRING, GCC_GMP_STRINGIFY_VERSION, MPFR_VERSION_STRING, MPC_VERSION_STRING,
#ifndef HAVE_isl #ifndef HAVE_isl
"none" "none"
#elif HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
"0.15"
#else #else
"0.14 or 0.13" isl_version ()
#endif #endif
); );
if (strcmp (GCC_GMP_STRINGIFY_VERSION, gmp_version)) if (strcmp (GCC_GMP_STRINGIFY_VERSION, gmp_version))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment