From 78230f28104d083f7852b8e6a98317086b9c723a Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Thu, 3 Dec 2015 21:38:56 +0100 Subject: [PATCH] - updated to 0.11.4 - updated system-libs,updates patches - added link patch (fix unresolved symbols in libpluto) --- pluto-link.patch | 18 ++ pluto-system-libs.patch | 206 ++++++++++----------- pluto-updates.patch | 398 ++++++++++++++++++++++++++++++---------- pluto.spec | 20 +- 4 files changed, 426 insertions(+), 216 deletions(-) create mode 100644 pluto-link.patch diff --git a/pluto-link.patch b/pluto-link.patch new file mode 100644 index 0000000..dec0951 --- /dev/null +++ b/pluto-link.patch @@ -0,0 +1,18 @@ +--- pluto-0.11.4/src/Makefile.am.orig 2015-12-03 18:18:37.103391073 +0100 ++++ pluto-0.11.4/src/Makefile.am 2015-12-03 20:47:35.216349310 +0100 +@@ -44,7 +44,8 @@ + lib_LTLIBRARIES = libpluto.la + + # libpluto doesn't use polylib-based functions +-libpluto_la_SOURCES = constraints.c constraints_isl.c math_support.c ddg.c transforms.c pluto.c post_transform.c framework.c polyloop.c iss.c libpluto.c libpluto_dummy.c constraints.h math_support.h pluto.h program.c program.h tile.c ++# - not true, uses pluto_contstraints_(intersect|subtract) ++libpluto_la_SOURCES = constraints.c constraints_polylib.c constraints_isl.c math_support.c ddg.c transforms.c pluto.c post_transform.c framework.c polyloop.c iss.c libpluto.c constraints.h math_support.h pluto.h program.c program.h tile.c + libpluto_la_CPPFLAGS = $(OPT_FLAGS) $(DEBUG_FLAGS) \ + -DLIB_PLUTO -DSCOPLIB_INT_T_IS_MP -DCLOOG_INT_GMP \ + -I../include +@@ -56,4 +57,5 @@ + -lclan \ + -lcandl \ + -lisl \ ++ -lpolylibgmp \ + -lm -lgomp diff --git a/pluto-system-libs.patch b/pluto-system-libs.patch index 2e94428..83ba87c 100644 --- a/pluto-system-libs.patch +++ b/pluto-system-libs.patch @@ -1,113 +1,81 @@ ---- pluto-0.11.0/configure.ac.orig 2014-05-30 10:28:06.000000000 +0200 -+++ pluto-0.11.0/configure.ac 2014-10-05 14:26:45.652660158 +0200 -@@ -112,74 +112,6 @@ if test "$poly_cv_gmpfatal" = "yes"; the - - - --dnl Configuring PipLib (long long int is 64 bits) --echo "" --echo "==========================" --echo "Configuring PipLib" --echo "==========================" --configureopts="--with-gmp \ ----with-gmp-prefix=$GMP_PREFIX \ ----prefix=$prefix" --(cd piplib/ -- $RM config.cache; -- ./configure ${configureopts} ${archopts} -- ) -- -- --dnl Configuring Openscop --echo "" --echo "==========================" --echo "Configuring Openscop" --echo "==========================" --configureopts="--with-gmp=system \ ----with-gmp-prefix=$GMP_PREFIX \ ----prefix=$prefix" --(cd openscop/ -- ./configure ${configureopts} ${archopts} -- ) -- -- --dnl Configuring Clan-osl --echo "" --echo "==========================" --echo "Configuring Clan" --echo "==========================" --configureopts="--prefix=$prefix \ ----with-osl=build \ ----with-osl-builddir=$SOURCE_DIR/openscop" --(cd clan/ -- ./configure ${configureopts} ${archopts} -- ) -- -- --dnl Configuring Candl-osl --dnl can't enable the gmp version without modifying --dnl the precision the is used elsewhere in pluto --echo "" --echo "==========================" --echo "Configuring Candl" --echo "==========================" --configureopts="--enable-llint-version \ ----prefix=$prefix \ ----with-piplib=build \ ----with-piplib-builddir=$SOURCE_DIR/piplib \ ----with-osl=build \ ----with-osl-builddir=$SOURCE_DIR/openscop" --(cd candl/ -- ./configure ${configureopts} ${archopts} -- ) -- -- --dnl Configuring polylib --echo "" --echo "======================" --echo "Configuring polylib" --echo "======================" --configureopts="--enable-longlongint-lib \ ----prefix=$prefix" --(cd polylib/ -- ./configure ${configureopts} --) +--- pluto-0.11.4/configure.ac.orig 2015-10-28 16:24:59.000000000 +0100 ++++ pluto-0.11.4/configure.ac 2015-12-03 16:02:55.363732747 +0100 +@@ -114,6 +114,7 @@ + + + ++if test x$external_piplib = xfalse ; then + dnl Configuring PipLib (long long int is 64 bits) + echo "" + echo "==========================" +@@ -126,8 +127,10 @@ + $RM config.cache; + ./configure ${configureopts} ${archopts} + ) ++fi + + ++if test x$external_openscop = xfalse ; then + dnl Configuring Openscop + echo "" + echo "==========================" +@@ -139,8 +142,10 @@ + (cd openscop/ + ./configure ${configureopts} ${archopts} + ) ++fi + + ++if test x$external_clan = xfalse ; then + dnl Configuring Clan-osl + echo "" + echo "==========================" +@@ -155,8 +160,10 @@ + + dnl check if clan configure failed + AC_CHECK_FILE([clan/Makefile], [], [AC_MSG_ERROR([configure in clan/ failed])]) ++fi + + ++if test x$external_candl = xfalse ; then + dnl Configuring Candl-osl + dnl can't enable the gmp version without modifying + dnl the precision the is used elsewhere in pluto +@@ -173,8 +180,10 @@ + (cd candl/ + ./configure ${configureopts} ${archopts} + ) ++fi + + ++if test x$external_polylib = xfalse ; then + dnl Configuring polylib + echo "" + echo "======================" +@@ -185,6 +194,7 @@ + (cd polylib/ + ./configure ${configureopts} + ) ++fi AC_SUBST(ISL_INCLUDE) -@@ -219,32 +151,6 @@ configureopts="--with-gmp=system \ +@@ -222,6 +232,7 @@ fi --dnl Configuring Cloog 0.14.1 (long long int) --echo "" --echo "==========================" --echo "Configuring Cloog-isl" --echo "==========================" --if test x$external_isl = xfalse; then --configureopts="--with-isl=build \ ----with-isl-builddir=$SOURCE_DIR/isl \ ----with-gmp=system \ ----with-gmp-prefix=$GMP_PREFIX \ ----with-osl=build \ ----with-osl-builddir=$SOURCE_DIR/openscop \ ----prefix=$prefix" --else --configureopts="--with-isl=system \ ----with-isl-prefix=$isl_prefix \ ----with-gmp=system \ ----with-gmp-prefix=$GMP_PREFIX \ ----with-osl=build \ ----with-osl-builddir=$SOURCE_DIR/openscop \ ----prefix=$prefix" --fi --(cd cloog-isl/ -- ./configure ${configureopts} ${archopts} -- ) -- ++if test x$external_cloog = xfalse; then + dnl Configuring Cloog 0.14.1 (long long int) + echo "" + echo "==========================" +@@ -247,6 +258,7 @@ + (cd cloog-isl/ + ./configure ${configureopts} ${archopts} + ) ++fi + AC_PATH_PROGS(BASH, bash) - AC_CONFIG_FILES([getversion.sh], [chmod +x ./getversion.sh]) --- pluto-0.11.0/Makefile.am.orig 2014-05-30 10:28:06.000000000 +0200 +++ pluto-0.11.0/Makefile.am 2014-10-05 15:40:59.042473155 +0200 @@ -18,7 +18,7 @@ @@ -119,12 +87,12 @@ ACLOCAL_AMFLAGS = -I m4 ---- pluto-0.11.0/src/Makefile.am.orig 2014-05-30 10:28:07.000000000 +0200 -+++ pluto-0.11.0/src/Makefile.am 2014-10-05 15:51:12.572447520 +0200 -@@ -19,25 +19,12 @@ +--- pluto-0.11.4/src/Makefile.am.orig 2015-12-03 15:33:25.990473676 +0100 ++++ pluto-0.11.4/src/Makefile.am 2015-12-03 16:12:33.643708512 +0100 +@@ -27,25 +27,18 @@ + endif - pluto_SOURCES = constraints.c constraints_polylib.c constraints_isl.c math_support.c ddg.c transforms.c pluto.c post_transform.c framework.c pluto_codegen_if.c polyloop.c ast_transform.c main.c constraints.h math_support.h pluto.h program.c program.h tile.c unit_tests.c - pluto_CPPFLAGS = -O3 -funroll-loops -fopenmp \ + pluto_CPPFLAGS = $(OPT_FLAGS) $(DEBUG_FLAGS) -funroll-loops -fopenmp \ - -DSCOPLIB_INT_T_IS_LONGLONG -DCLOOG_INT_GMP \ - -I../include \ - -I../piplib/include \ @@ -147,15 +115,21 @@ - $(ISL_LIBADD) \ - ../polylib/libpolylib64.la \ - ../candl/libcandl.la \ -+ -lpiplibMP -losl -lclan -lcloog-isl -lisl -lpolylibgmp -lcandl -lgmp \ ++ -lpiplibMP \ ++ -losl \ ++ -lclan \ ++ -lcloog-isl \ ++ -lisl \ ++ -lpolylibgmp \ ++ -lcandl \ -lm lib_LTLIBRARIES = libpluto.la -@@ -45,20 +32,10 @@ +@@ -53,20 +46,14 @@ # libpluto doesn't use polylib-based functions - libpluto_la_SOURCES = constraints.c constraints_isl.c math_support.c ddg.c transforms.c pluto.c post_transform.c framework.c polyloop.c libpluto.c constraints.h math_support.h pluto.h program.c program.h tile.c - libpluto_la_CPPFLAGS = -O3 -funroll-loops -fopenmp \ -- -DSCOPLIB_INT_T_IS_LONGLONG -DCLOOG_INT_GMP \ + libpluto_la_SOURCES = constraints.c constraints_isl.c math_support.c ddg.c transforms.c pluto.c post_transform.c framework.c polyloop.c iss.c libpluto.c libpluto_dummy.c constraints.h math_support.h pluto.h program.c program.h tile.c + libpluto_la_CPPFLAGS = $(OPT_FLAGS) $(DEBUG_FLAGS) \ +- -DLIB_PLUTO -DSCOPLIB_INT_T_IS_LONGLONG -DCLOOG_INT_GMP \ - -I../include \ - -I../piplib/include \ - -I../clan/include \ @@ -163,7 +137,7 @@ - -I../candl/include \ - -I../cloog-isl/include \ - $(ISL_INCLUDE) -+ -DSCOPLIB_INT_T_IS_MP -DCLOOG_INT_GMP \ ++ -DLIB_PLUTO -DSCOPLIB_INT_T_IS_MP -DCLOOG_INT_GMP \ + -I../include # libpluto doesn't use polylib @@ -173,5 +147,9 @@ - ../clan/libclan.la \ - ../candl/libcandl.la \ - $(ISL_LIBADD) \ -+ -lpiplibMP -losl -lclan -lcandl -lisl \ ++ -lpiplibMP \ ++ -losl \ ++ -lclan \ ++ -lcandl \ ++ -lisl \ -lm -lgomp diff --git a/pluto-updates.patch b/pluto-updates.patch index 3b39d7b..a3617fe 100644 --- a/pluto-updates.patch +++ b/pluto-updates.patch @@ -1,100 +1,312 @@ ---- pluto-0.11.0/src/constraints_isl.c.orig 2014-05-30 10:28:07.000000000 +0200 -+++ pluto-0.11.0/src/constraints_isl.c 2014-10-05 18:36:32.182031269 +0200 -@@ -14,6 +14,9 @@ - #include "constraints.h" - #include "pluto.h" - -+#include "isl/deprecated/constraint_int.h" -+#include "isl/deprecated/mat_int.h" -+#include "isl/deprecated/point_int.h" - #include "isl/map.h" - #include "isl/set.h" - ---- pluto-0.11.0/src/framework.c.orig 2014-05-30 10:28:07.000000000 +0200 -+++ pluto-0.11.0/src/framework.c 2014-10-05 18:37:10.948696367 +0200 -@@ -32,6 +32,8 @@ - #include - #include - #include -+#include -+#include - #include "candl/candl.h" - - static void eliminate_farkas_multipliers(PlutoConstraints *farkas_cst, int num_elim); ---- pluto-0.11.0/src/polyloop.c.orig 2014-05-30 10:28:07.000000000 +0200 -+++ pluto-0.11.0/src/polyloop.c 2014-10-05 18:37:26.448695622 +0200 -@@ -23,6 +23,7 @@ - * +--- pluto-0.11.4/src/constraints_isl.c.orig 2015-12-03 17:30:34.186845391 +0100 ++++ pluto-0.11.4/src/constraints_isl.c 2015-12-03 17:33:59.340170110 +0100 +@@ -73,7 +73,7 @@ + { + int i, j; + int n_eq = 0, n_ineq = 0; +- isl_dim *dim; ++ isl_space *dim; + isl_mat *eq, *ineq; + isl_basic_set *bset; + +@@ -86,7 +86,7 @@ + eq = isl_mat_alloc(ctx, n_eq, cst->ncols); + ineq = isl_mat_alloc(ctx, n_ineq, cst->ncols); + +- dim = isl_dim_set_alloc(ctx, 0, cst->ncols - 1); ++ dim = isl_space_set_alloc(ctx, 0, cst->ncols - 1); + + n_eq = n_ineq = 0; + for (i = 0; i < cst->nrows; ++i) { +@@ -127,7 +127,7 @@ + { + isl_set *set; + +- isl_space *dim = isl_dim_set_alloc(ctx, 0, cst->ncols - 1); ++ isl_space *dim = isl_space_set_alloc(ctx, 0, cst->ncols - 1); + set = isl_set_empty(dim); + + while (cst != NULL) { +@@ -353,7 +353,7 @@ + + // Allow only positive values. + if(negvar == 0) { +- all_positive = isl_basic_set_positive_orthant(isl_set_get_dim(domain)); ++ all_positive = isl_basic_set_positive_orthant(isl_set_get_space(domain)); + all_positive_set = isl_set_from_basic_set(all_positive); + domain = isl_set_intersect(domain, all_positive_set); + } +--- pluto-0.11.4/src/framework.c.orig 2015-10-28 16:24:59.000000000 +0100 ++++ pluto-0.11.4/src/framework.c 2015-12-03 18:15:00.530066828 +0100 +@@ -696,7 +696,7 @@ + + orthcst_i = isl_basic_set_intersect(orthcst_i, + isl_basic_set_copy(isl_currcst)); +- if (isl_basic_set_fast_is_empty(orthcst_i) ++ if (isl_basic_set_plain_is_empty(orthcst_i) + || isl_basic_set_is_empty(orthcst_i)) { + pluto_constraints_negate_row(orthcst[p], 0); + } +--- pluto-0.11.4/src/program.c.orig 2015-10-28 16:24:59.000000000 +0100 ++++ pluto-0.11.4/src/program.c 2015-12-03 18:05:22.970091067 +0100 +@@ -1439,13 +1439,13 @@ + /* Set the dimension names of type "type" according to the elements + * in the array "names". */ - #include -+#include - - #include "pluto.h" - #include "program.h" ---- pluto-0.11.0/src/program.c.orig 2014-05-30 10:28:07.000000000 +0200 -+++ pluto-0.11.0/src/program.c 2014-10-05 18:40:07.968688856 +0200 -@@ -57,6 +57,8 @@ - #include - #include - #include -+#include -+#include - - void pluto_add_dep(PlutoProg *prog, Dep *dep) +-static __isl_give isl_dim *set_names(__isl_take isl_dim *dim, ++static __isl_give isl_space *set_names(__isl_take isl_space *dim, + enum isl_dim_type type, char **names) { -@@ -477,8 +479,8 @@ void pluto_populate_scop (osl_scop_p sco - { - int niter = stm->domain->nb_columns - scop->context->nb_columns; - int nb_orig_it = -1; -- if(stm->body){ -- osl_body_p stmt_body = (osl_body_p)(stm->body->data); -+ osl_body_p stmt_body = osl_statement_get_body(stm); -+ if(stmt_body){ - nb_orig_it = osl_strings_size(stmt_body->iterators); - if (nb_orig_it != niter) - {//update iterators. -@@ -1134,7 +1136,7 @@ static Stmt **osl_to_pluto_stmts(const o - /* Tile it if it's tilable unless turned off by .fst/.precut file */ - stmt->tile = 1; - -- osl_body_p stmt_body = (osl_body_p)(scop_stmt->body->data); -+ osl_body_p stmt_body = osl_statement_get_body(scop_stmt); - - for (j=0; jdim; j++) { - stmt->iterators[j] = strdup(stmt_body->iterators->string[j]); -@@ -1876,7 +1878,7 @@ static void compute_deps(osl_scop_p scop - dim = set_names(dim, isl_dim_param, scop_params->string); - } - if(niter){ -- osl_body_p stmt_body = (osl_body_p)(stmt->body->data); -+ osl_body_p stmt_body = osl_statement_get_body(stmt); - dim = set_names(dim, isl_dim_set, stmt_body->iterators->string); - } - dim = isl_dim_set_tuple_name(dim, isl_dim_set, name); -@@ -1890,7 +1892,7 @@ static void compute_deps(osl_scop_p scop - dim = set_names(dim, isl_dim_param, scop_params->string); + int i; + +- for (i = 0; i < isl_dim_size(dim, type); ++i) +- dim = isl_dim_set_name(dim, type, i, names[i]); ++ for (i = 0; i < isl_space_dim(dim, type); ++i) ++ dim = isl_space_set_dim_name(dim, type, i, names[i]); + + return dim; + } +@@ -1456,7 +1456,7 @@ + * One shot only; does not take into account the next ptr. + */ + static __isl_give isl_set *osl_relation_to_isl_set(osl_relation_p relation, +- __isl_take isl_dim *dim) ++ __isl_take isl_space *dim) + { + int i, j; + int n_eq = 0, n_ineq = 0; +@@ -1464,7 +1464,7 @@ + isl_mat *eq, *ineq; + isl_basic_set *bset; + +- ctx = isl_dim_get_ctx(dim); ++ ctx = isl_space_get_ctx(dim); + + for (i = 0; i < relation->nb_rows; ++i) + if (osl_int_zero(relation->precision, relation->m[i][0])) +@@ -1503,18 +1503,18 @@ + * to an isl_set. + */ + static __isl_give isl_set *osl_relation_list_to_isl_set( +- osl_relation_p list, __isl_take isl_dim *dim) ++ osl_relation_p list, __isl_take isl_space *dim) + { + isl_set *set; + +- set = isl_set_empty(isl_dim_copy(dim)); ++ set = isl_set_empty(isl_space_copy(dim)); + for (; list; list = list->next) { + isl_set *set_i; +- set_i = osl_relation_to_isl_set(list, isl_dim_copy(dim)); ++ set_i = osl_relation_to_isl_set(list, isl_space_copy(dim)); + set = isl_set_union(set, set_i); + } + +- isl_dim_free(dim); ++ isl_space_free(dim); + return set; + } + +@@ -1627,14 +1627,14 @@ + * the isl_map { i -> A i + c } in the space prescribed by "dim". + */ + static __isl_give isl_map *osl_scattering_to_isl_map( +- osl_relation_p scattering, __isl_take isl_dim *dim) ++ osl_relation_p scattering, __isl_take isl_space *dim) + { + int n_col; + isl_ctx *ctx; + isl_mat *eq, *ineq; + isl_basic_map *bmap; + +- ctx = isl_dim_get_ctx(dim); ++ ctx = isl_space_get_ctx(dim); + n_col = scattering->nb_columns; + + ineq = isl_mat_alloc(ctx, 0, n_col - 1); +@@ -1664,14 +1664,14 @@ + { + int len, n_col; + isl_ctx *ctx; +- isl_dim *dim; ++ isl_space *dim; + isl_mat *eq, *ineq; + isl_union_map *res; + + ctx = isl_set_get_ctx(dom); + +- dim = isl_set_get_dim(dom); +- dim = isl_dim_drop(dim, isl_dim_set, 0, isl_dim_size(dim, isl_dim_set)); ++ dim = isl_set_get_space(dom); ++ dim = isl_space_drop_dims(dim, isl_dim_set, 0, isl_space_dim(dim, isl_dim_set)); + res = isl_union_map_empty(dim); + + for ( ; list; list = list->next) { +@@ -1683,10 +1683,10 @@ + isl_map *map; + int arr = osl_relation_get_array_id(list->elt) - 1; + +- dim = isl_set_get_dim(dom); +- dim = isl_dim_from_domain(dim); +- dim = isl_dim_add(dim, isl_dim_out, len); +- dim = isl_dim_set_tuple_name(dim, isl_dim_out, arrays[arr]); ++ dim = isl_set_get_space(dom); ++ dim = isl_space_from_domain(dim); ++ dim = isl_space_add_dims(dim, isl_dim_out, len); ++ dim = isl_space_set_tuple_name(dim, isl_dim_out, arrays[arr]); + + ineq = isl_mat_alloc(ctx, 0, n_col); + eq = extract_equalities_osl_access(ctx, list->elt); +@@ -1713,7 +1713,7 @@ + { + int len, n_col; + isl_ctx *ctx; +- isl_dim *dim; ++ isl_space *dim; + isl_mat *eq, *ineq; + + ctx = isl_set_get_ctx(dom); +@@ -1726,10 +1726,10 @@ + isl_map *map; + int arr = osl_relation_get_array_id(access) - 1; + +- dim = isl_set_get_dim(dom); +- dim = isl_dim_from_domain(dim); +- dim = isl_dim_add(dim, isl_dim_out, len); +- dim = isl_dim_set_tuple_name(dim, isl_dim_out, arrays[arr]); ++ dim = isl_set_get_space(dom); ++ dim = isl_space_from_domain(dim); ++ dim = isl_space_add_dims(dim, isl_dim_out, len); ++ dim = isl_space_set_tuple_name(dim, isl_dim_out, arrays[arr]); + + ineq = isl_mat_alloc(ctx, 0, n_col); + eq = extract_equalities_osl_access(ctx, access); +@@ -1754,13 +1754,13 @@ + { + int len, n_col; + isl_ctx *ctx; +- isl_dim *dim; ++ isl_space *dim; + isl_mat *eq, *ineq; + + ctx = isl_set_get_ctx(dom); + +- dim = isl_set_get_dim(dom); +- dim = isl_dim_drop(dim, isl_dim_set, 0, isl_dim_size(dim, isl_dim_set)); ++ dim = isl_set_get_space(dom); ++ dim = isl_space_drop_dims(dim, isl_dim_set, 0, isl_space_dim(dim, isl_dim_set)); + + n_col = mat->ncols; + +@@ -1770,10 +1770,10 @@ + + len = mat->nrows; + +- dim = isl_set_get_dim(dom); +- dim = isl_dim_from_domain(dim); +- dim = isl_dim_add(dim, isl_dim_out, len); +- dim = isl_dim_set_tuple_name(dim, isl_dim_out, access_name); ++ dim = isl_set_get_space(dom); ++ dim = isl_space_from_domain(dim); ++ dim = isl_space_add_dims(dim, isl_dim_out, len); ++ dim = isl_space_set_tuple_name(dim, isl_dim_out, access_name); + + ineq = isl_mat_alloc(ctx, 0, len + n_col); + eq = pluto_extract_equalities(ctx, mat); +@@ -1976,7 +1976,7 @@ + int i, racc_num, wacc_num; + int nstmts = osl_statement_number(scop->statement); + isl_ctx *ctx; +- isl_dim *dim; ++ isl_space *dim; + isl_space *param_space; + isl_set *context; + isl_union_map *empty; +@@ -1995,7 +1995,7 @@ + + osl_names_p names = get_scop_names(scop); + +- dim = isl_dim_set_alloc(ctx, scop->context->nb_parameters, 0); ++ dim = isl_space_set_alloc(ctx, scop->context->nb_parameters, 0); + if (scop->context->nb_parameters){ + scop_params = (osl_strings_p)scop->parameters->data; + dim = set_names(dim, isl_dim_param, scop_params->string); +@@ -2003,10 +2003,10 @@ + param_space = isl_space_params(isl_space_copy(dim)); + context = osl_relation_to_isl_set(scop->context, param_space); + +- if (!options->rar) dep_rar = isl_union_map_empty(isl_dim_copy(dim)); +- empty = isl_union_map_empty(isl_dim_copy(dim)); +- write = isl_union_map_empty(isl_dim_copy(dim)); +- read = isl_union_map_empty(isl_dim_copy(dim)); ++ if (!options->rar) dep_rar = isl_union_map_empty(isl_space_copy(dim)); ++ empty = isl_union_map_empty(isl_space_copy(dim)); ++ write = isl_union_map_empty(isl_space_copy(dim)); ++ read = isl_union_map_empty(isl_space_copy(dim)); + schedule = isl_union_map_empty(dim); + + if (!options->isldepaccesswise) { +@@ -2027,7 +2027,7 @@ + snprintf(name, sizeof(name), "S_%d", i); + + int niter = osl_statement_get_nb_iterators(stmt); +- dim = isl_dim_set_alloc(ctx, scop->context->nb_parameters, niter); ++ dim = isl_space_set_alloc(ctx, scop->context->nb_parameters, niter); + if(scop->context->nb_parameters){ + scop_params = (osl_strings_p)scop->parameters->data; + dim = set_names(dim, isl_dim_param, scop_params->string); +@@ -2036,11 +2036,11 @@ + osl_body_p stmt_body = osl_generic_lookup(stmt->extension, OSL_URI_BODY); + dim = set_names(dim, isl_dim_set, stmt_body->iterators->string); } - if(niter){ -- osl_body_p stmt_body = (osl_body_p)(stmt->body->data); -+ osl_body_p stmt_body = osl_statement_get_body(stmt); - dim = set_names(dim, isl_dim_in, stmt_body->iterators->string); +- dim = isl_dim_set_tuple_name(dim, isl_dim_set, name); ++ dim = isl_space_set_tuple_name(dim, isl_dim_set, name); + dom = osl_relation_list_to_isl_set(stmt->domain, dim); + dom = isl_set_intersect_params(dom, isl_set_copy(context)); + +- dim = isl_dim_alloc(ctx, scop->context->nb_parameters, niter, ++ dim = isl_space_alloc(ctx, scop->context->nb_parameters, niter, + 2 * niter + 1); + if(scop->context->nb_parameters){ + scop_params = (osl_strings_p)scop->parameters->data; +@@ -2050,7 +2050,7 @@ + osl_body_p stmt_body = osl_generic_lookup(stmt->extension, OSL_URI_BODY); + dim = set_names(dim, isl_dim_in, stmt_body->iterators->string); } - dim = isl_dim_set_tuple_name(dim, isl_dim_in, name); -@@ -1954,7 +1956,7 @@ static void compute_deps(osl_scop_p scop - names->parameters = osl_strings_clone(scop_params); +- dim = isl_dim_set_tuple_name(dim, isl_dim_in, name); ++ dim = isl_space_set_tuple_name(dim, isl_dim_in, name); + schedule_i = osl_scattering_to_isl_map(stmt->scattering, dim); + + osl_relation_list_p rlist = osl_access_list_filter_read(stmt->access); +@@ -2102,7 +2102,7 @@ } - if(niter){ -- osl_body_p stmt_body = (osl_body_p)(stmt->body->data); -+ osl_body_p stmt_body = osl_statement_get_body(stmt); - dim = set_names(dim, isl_dim_set, stmt_body->iterators->string); - - osl_strings_free(names->iterators); -@@ -1971,7 +1973,7 @@ static void compute_deps(osl_scop_p scop - dim = set_names(dim, isl_dim_param, scop_params->string); + + int niter = osl_statement_get_nb_iterators(stmt); +- dim = isl_dim_set_alloc(ctx, scop->context->nb_parameters, niter); ++ dim = isl_space_set_alloc(ctx, scop->context->nb_parameters, niter); + if(scop->context->nb_parameters){ + scop_params = (osl_strings_p)scop->parameters->data; + dim = set_names(dim, isl_dim_param, scop_params->string); +@@ -2117,11 +2117,11 @@ + osl_strings_free(names->iterators); + names->iterators = osl_strings_clone(stmt_body->iterators); } - if(niter){ -- osl_body_p stmt_body = (osl_body_p)(stmt->body->data); -+ osl_body_p stmt_body = osl_statement_get_body(stmt); - dim = set_names(dim, isl_dim_in, stmt_body->iterators->string); +- dim = isl_dim_set_tuple_name(dim, isl_dim_set, name); ++ dim = isl_space_set_tuple_name(dim, isl_dim_set, name); + dom = osl_relation_list_to_isl_set(stmt->domain, dim); + dom = isl_set_intersect_params(dom, isl_set_copy(context)); + +- dim = isl_dim_alloc(ctx, scop->context->nb_parameters, niter, ++ dim = isl_space_alloc(ctx, scop->context->nb_parameters, niter, + 2 * niter + 1); + if(scop->context->nb_parameters){ + scop_params = (osl_strings_p)scop->parameters->data; +@@ -2131,7 +2131,7 @@ + osl_body_p stmt_body = osl_generic_lookup(stmt->extension, OSL_URI_BODY); + dim = set_names(dim, isl_dim_in, stmt_body->iterators->string); } - dim = isl_dim_set_tuple_name(dim, isl_dim_in, name); +- dim = isl_dim_set_tuple_name(dim, isl_dim_in, name); ++ dim = isl_space_set_tuple_name(dim, isl_dim_in, name); + + schedule_i = osl_scattering_to_isl_map(stmt->scattering, dim); + diff --git a/pluto.spec b/pluto.spec index a9b21cb..9781421 100644 --- a/pluto.spec +++ b/pluto.spec @@ -1,31 +1,32 @@ Summary: PLUTO automatic parallelizer Summary(pl.UTF-8): PLUTO - automatyczny zrównoleglacz Name: pluto -Version: 0.11.0 -Release: 2 +Version: 0.11.4 +Release: 1 License: LGPL v2.1+ (library), GPL v3+ (tools) Group: Libraries Source0: http://downloads.sourceforge.net/pluto-compiler/%{name}-%{version}.tar.gz -# Source0-md5: c391e6d4cf49712ef638662c9193c707 +# Source0-md5: 2ad2e3305ea480b1c2aefd2cc90f38a1 Patch0: %{name}-system-libs.patch Patch1: %{name}-updates.patch Patch2: %{name}-include.patch +Patch3: %{name}-link.patch URL: http://pluto-compiler.sourceforge.net/ BuildRequires: autoconf >= 2.50 BuildRequires: automake BuildRequires: candl-devel >= 0.6.2-1.20120728 -BuildRequires: clan-devel >= 0.7.1 +BuildRequires: clan-devel >= 0.8.0 BuildRequires: gcc >= 6:4.2 BuildRequires: isl-devel >= 0.13 BuildRequires: libgomp-devel BuildRequires: libtool -BuildRequires: osl-devel >= 0.8.4 +BuildRequires: osl-devel >= 0.9.0 BuildRequires: piplib-devel >= 1.4.0 BuildRequires: polylib-devel >= 5.22.5 Requires: candl >= 0.6.2-1.20120728 -Requires: clan >= 0.7.1 +Requires: clan >= 0.8.0 Requires: isl >= 0.13 -Requires: osl >= 0.8.4 +Requires: osl >= 0.9.0 Requires: piplib >= 1.4.0 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) @@ -47,10 +48,10 @@ Summary(pl.UTF-8): Pliki nagłówkowe biblioteki Pluto Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: candl-devel >= 0.6.2-1.20120728 -Requires: clan-devel >= 0.7.1 +Requires: clan-devel >= 0.8.0 Requires: isl-devel >= 0.13 Requires: libgomp-devel -Requires: osl-devel >= 0.8.4 +Requires: osl-devel >= 0.9.0 Requires: piplib-devel >= 1.4.0 %description devel @@ -76,6 +77,7 @@ Statyczna biblioteka Pluto. %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 %build %{__libtoolize} -- 2.44.0