Re: Replacement of isl_int by isl_val
On 08/03/14 17:44, Mircea Namolaru wrote: 2014-08-03 Mircea Namolarumircea.namol...@inria.fr Replacement of isl-int by isl_val * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h (compute_bounds_for_param): use isl_val instead of isl_int (compute_bounds_for_loop): likewise * graphite-interchange.c: include isl/val.h, isl/val_gmp.h (build_linearized_memory_access): use isl_val instead of isl_int (pdr_stride_in_loop): likewise * graphite-optimize-isl.c: (getPrevectorMap): use isl_val instead of isl_int * graphite-poly.c: (pbb_number_of_iterations_at_time): use ils_val instead of isl_int graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h (extern the_isl_ctx): declare (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int (extract_affine_gmp): likewise (wrap): likewise (build_loop_iteration_domains): likewise (add_param_constraints): likewise (add_param_constraints): likewise This is good. Please install if you haven't already. jeff I don't have maintainer (write) permissions. Many thanks, Mircea
Re: Replacement of isl_int by isl_val
On 08/03/14 17:44, Mircea Namolaru wrote: 2014-08-03 Mircea Namolarumircea.namol...@inria.fr Replacement of isl-int by isl_val * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h (compute_bounds_for_param): use isl_val instead of isl_int (compute_bounds_for_loop): likewise * graphite-interchange.c: include isl/val.h, isl/val_gmp.h (build_linearized_memory_access): use isl_val instead of isl_int (pdr_stride_in_loop): likewise * graphite-optimize-isl.c: (getPrevectorMap): use isl_val instead of isl_int * graphite-poly.c: (pbb_number_of_iterations_at_time): use ils_val instead of isl_int graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h (extern the_isl_ctx): declare (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int (extract_affine_gmp): likewise (wrap): likewise (build_loop_iteration_domains): likewise (add_param_constraints): likewise (add_param_constraints): likewise This is good. Please install if you haven't already. jeff
Re: Replacement of isl_int by isl_val
LGTM. Cheers, Tobias
Replacement of isl_int by isl_val
Hello, In the isl library used by Graphite, isl_val replaces isl_int (that become obsolete). This patch implements the required changes in Graphite. No regressions for c/c++/fortran on x86-64 Linux. Mircea Index: gcc/graphite-poly.c === --- gcc/graphite-poly.c (revision 213515) +++ gcc/graphite-poly.c (working copy) @@ -28,6 +28,14 @@ #include isl/constraint.h #include isl/ilp.h #include isl/aff.h +#include isl/val.h +#if defined(__cplusplus) +extern C { +#endif +#include isl/val_gmp.h +#if defined(__cplusplus) +} +#endif #include cloog/cloog.h #include cloog/isl/domain.h #endif @@ -1029,11 +1037,8 @@ isl_set *transdomain; isl_space *dc; isl_aff *aff; - isl_int isllb, islub; + isl_val *isllb, *islub; - isl_int_init (isllb); - isl_int_init (islub); - /* Map the iteration domain through the current scatter, and work on the resulting set. */ transdomain = isl_set_apply (isl_set_copy (pbb-domain), @@ -1046,15 +1051,14 @@ /* And find the min/max for that function. */ /* XXX isl check results? */ - isl_set_min (transdomain, aff, isllb); - isl_set_max (transdomain, aff, islub); + isllb = isl_set_min_val (transdomain, aff); + islub = isl_set_max_val (transdomain, aff); - isl_int_sub (islub, islub, isllb); - isl_int_add_ui (islub, islub, 1); - isl_int_get_gmp (islub, res); + islub = isl_val_sub (islub, isllb); + islub = isl_val_add_ui (islub, 1); + isl_val_get_num_gmp (islub, res); - isl_int_clear (isllb); - isl_int_clear (islub); + isl_val_free (islub); isl_aff_free (aff); isl_set_free (transdomain); } Index: gcc/graphite-interchange.c === --- gcc/graphite-interchange.c (revision 213515) +++ gcc/graphite-interchange.c (working copy) @@ -29,6 +29,14 @@ #include isl/map.h #include isl/union_map.h #include isl/ilp.h +#include isl/val.h +#if defined(__cplusplus) +extern C { +#endif +#include isl/val_gmp.h +#if defined(__cplusplus) +} +#endif #include cloog/cloog.h #include cloog/isl/domain.h #endif @@ -79,13 +87,13 @@ isl_local_space *ls = isl_local_space_from_space (isl_map_get_space (map)); unsigned offset, nsubs; int i; - isl_int size, subsize; + isl_ctx *ctx; + isl_val *size, *subsize, *size1; + res = isl_equality_alloc (ls); - isl_int_init (size); - isl_int_set_ui (size, 1); - isl_int_init (subsize); - isl_int_set_ui (subsize, 1); + ctx = isl_local_space_get_ctx (ls); + size = isl_val_int_from_ui (ctx, 1); nsubs = isl_set_dim (pdr-extent, isl_dim_set); /* -1 for the already included L dimension. */ @@ -98,18 +106,17 @@ isl_space *dc; isl_aff *aff; - res = isl_constraint_set_coefficient (res, isl_dim_out, offset + i, size); - + size1 = isl_val_copy (size); + res = isl_constraint_set_coefficient_val (res, isl_dim_out, offset + i, size); dc = isl_set_get_space (pdr-extent); aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc)); aff = isl_aff_set_coefficient_si (aff, isl_dim_in, i, 1); - isl_set_max (pdr-extent, aff, subsize); + subsize = isl_set_max_val (pdr-extent, aff); isl_aff_free (aff); - isl_int_mul (size, size, subsize); + size = isl_val_mul (size1, subsize); } - isl_int_clear (subsize); - isl_int_clear (size); + isl_val_free (size); return res; } @@ -126,7 +133,7 @@ isl_aff *aff; isl_space *dc; isl_constraint *lma, *c; - isl_int islstride; + isl_val *islstride; graphite_dim_t time_depth; unsigned offset, nt; unsigned i; @@ -239,10 +246,9 @@ aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc)); aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset - 1, -1); aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset + offset - 1, 1); - isl_int_init (islstride); - isl_set_max (set, aff, islstride); - isl_int_get_gmp (islstride, stride); - isl_int_clear (islstride); + islstride = isl_set_max_val (set, aff); + isl_val_get_num_gmp (islstride, stride); + isl_val_free (islstride); isl_aff_free (aff); isl_set_free (set); Index: gcc/graphite-clast-to-gimple.c === --- gcc/graphite-clast-to-gimple.c (revision 213515) +++ gcc/graphite-clast-to-gimple.c (working copy) @@ -28,6 +28,14 @@ #include isl/constraint.h #include isl/ilp.h #include isl/aff.h +#include isl/val.h +#if defined(__cplusplus) +extern C { +#endif +#include isl/val_gmp.h +#if defined(__cplusplus) +} +#endif #include cloog/cloog.h #include cloog/isl/domain.h #endif @@ -871,18 +879,18 @@ static void compute_bounds_for_param (scop_p scop, int param, mpz_t low, mpz_t up) { - isl_int v; + isl_val *v; isl_aff *aff = isl_aff_zero_on_domain (isl_local_space_from_space (isl_set_get_space (scop-context))); aff = isl_aff_add_coefficient_si (aff, isl_dim_param, param, 1);
Re: [GRAPHITE] Replacement of isl_int by isl_val
On 07/07/2014 00:16, Mircea Namolaru wrote: Hello, In the isl library used by Graphite, isl_val replaced isl_val (that become obsolete). This patch implements the required changes in Graphite. No regressions for c/c++/fortran on x86-64 Linux. Hi Mircea, the patch looks good and the direction is correct. One question remains: what is the minimal isl version this code works with? Do we need to adjust configure similar to how Rainer Orth adjusted it in reaction of the Roman's use of isl_ast_build? Cheers, Tobias
[GRAPHITE] Replacement of isl_int by isl_val
Hello, In the isl library used by Graphite, isl_val replaced isl_val (that become obsolete). This patch implements the required changes in Graphite. No regressions for c/c++/fortran on x86-64 Linux. Mircea Index: gcc/graphite-interchange.c === --- gcc/graphite-interchange.c (revision 212311) +++ gcc/graphite-interchange.c (working copy) @@ -29,6 +29,18 @@ #include isl/map.h #include isl/union_map.h #include isl/ilp.h +#include isl/val.h +/* For C++ linkage of C functions. + Missing from isl/val_gmp.h in isl 0.12 versions. + Appearing in isl/val_gmp.h in isl 0.13. + To be removed when passing to isl 0.13. */ +#if defined(__cplusplus) +extern C { +#endif +#include isl/val_gmp.h +#if defined(__cplusplus) +} +#endif #include cloog/cloog.h #include cloog/isl/domain.h #endif @@ -79,13 +91,13 @@ isl_local_space *ls = isl_local_space_from_space (isl_map_get_space (map)); unsigned offset, nsubs; int i; - isl_int size, subsize; + isl_ctx *ctx; + isl_val *size, *subsize, *size1; + res = isl_equality_alloc (ls); - isl_int_init (size); - isl_int_set_ui (size, 1); - isl_int_init (subsize); - isl_int_set_ui (subsize, 1); + ctx = isl_local_space_get_ctx (ls); + size = isl_val_int_from_ui (ctx, 1); nsubs = isl_set_dim (pdr-extent, isl_dim_set); /* -1 for the already included L dimension. */ @@ -98,18 +110,17 @@ isl_space *dc; isl_aff *aff; - res = isl_constraint_set_coefficient (res, isl_dim_out, offset + i, size); - + size1 = isl_val_copy (size); + res = isl_constraint_set_coefficient_val (res, isl_dim_out, offset + i, size); dc = isl_set_get_space (pdr-extent); aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc)); aff = isl_aff_set_coefficient_si (aff, isl_dim_in, i, 1); - isl_set_max (pdr-extent, aff, subsize); + subsize = isl_set_max_val (pdr-extent, aff); isl_aff_free (aff); - isl_int_mul (size, size, subsize); + size = isl_val_mul (size1, subsize); } - isl_int_clear (subsize); - isl_int_clear (size); + isl_val_free (size); return res; } @@ -126,7 +137,7 @@ isl_aff *aff; isl_space *dc; isl_constraint *lma, *c; - isl_int islstride; + isl_val *islstride; graphite_dim_t time_depth; unsigned offset, nt; unsigned i; @@ -239,10 +250,9 @@ aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc)); aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset - 1, -1); aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset + offset - 1, 1); - isl_int_init (islstride); - isl_set_max (set, aff, islstride); - isl_int_get_gmp (islstride, stride); - isl_int_clear (islstride); + islstride = isl_set_max_val (set, aff); + isl_val_get_num_gmp (islstride, stride); + isl_val_free (islstride); isl_aff_free (aff); isl_set_free (set); Index: gcc/graphite-poly.c === --- gcc/graphite-poly.c (revision 212311) +++ gcc/graphite-poly.c (working copy) @@ -28,6 +28,18 @@ #include isl/constraint.h #include isl/ilp.h #include isl/aff.h +#include isl/val.h +/* For C++ linkage of C functions. + Missing from isl/val_gmp.h in isl 0.12 versions. + Appearing in isl/val_gmp.h in isl 0.13. + To be removed when passing to isl 0.13. */ +#if defined(__cplusplus) +extern C { +#endif +#include isl/val_gmp.h +#if defined(__cplusplus) +} +#endif #include cloog/cloog.h #include cloog/isl/domain.h #endif @@ -1029,11 +1041,8 @@ isl_set *transdomain; isl_space *dc; isl_aff *aff; - isl_int isllb, islub; + isl_val *isllb, *islub; - isl_int_init (isllb); - isl_int_init (islub); - /* Map the iteration domain through the current scatter, and work on the resulting set. */ transdomain = isl_set_apply (isl_set_copy (pbb-domain), @@ -1046,15 +1055,14 @@ /* And find the min/max for that function. */ /* XXX isl check results? */ - isl_set_min (transdomain, aff, isllb); - isl_set_max (transdomain, aff, islub); + isllb = isl_set_min_val (transdomain, aff); + islub = isl_set_max_val (transdomain, aff); - isl_int_sub (islub, islub, isllb); - isl_int_add_ui (islub, islub, 1); - isl_int_get_gmp (islub, res); + islub = isl_val_sub (islub, isllb); + islub = isl_val_add_ui (islub, 1); + isl_val_get_num_gmp (islub, res); - isl_int_clear (isllb); - isl_int_clear (islub); + isl_val_free (islub); isl_aff_free (aff); isl_set_free (transdomain); } Index: gcc/graphite-optimize-isl.c === --- gcc/graphite-optimize-isl.c (revision 212311) +++ gcc/graphite-optimize-isl.c (working copy) @@ -273,7 +273,7 @@ isl_aff *Aff; int PointDimension; /* ip */ int TileDimension; /* it */ - isl_int VectorWidthMP; + isl_val *VectorWidthMP; int i; /* assert (0 = DimToVectorize DimToVectorize ScheduleDimensions);*/ @@ -304,10 +304,9 @@ Aff = isl_aff_zero_on_domain (LocalSpaceRange); Aff = isl_aff_set_constant_si (Aff, VectorWidth); Aff =
Re: {GRAPHITE] Replacement of isl_int by isl_val
On Sun, Feb 9, 2014 at 9:19 PM, Tobias Grosser tob...@grosser.es wrote: On 02/09/2014 04:47 PM, Mircea Namolaru wrote: Patch for replacement of the isl_int (obsolete) by isl_val. No regressions for c/c++/fortran on x86-64 Linux. Hi Mircae, thanks a lot for looking into this. Just for people not aware of the idea of this patch. Cloog recently upgraded to the latest version of isl (isl-0.12.2) and with this release isl deprecated the isl_int interface in favor of the isl_val interface. It seems that neither ISL 0.10 nor 0.11 or 0.11.1 has isl_val though, so this patch would need to adjust the ISL version check in the toplevel configure. Which also makes this patch not suitable for this stage but it has to wait for stage1. Btw, Mircea - do you have a copyright assignment on file with the FSF covering work on GCC? Thanks, Richard. Both are interfaces for arbitrary precision numbers. However, the old isl_int interface was mostly a proxy to gmp, whereas the new interface hides the implementation and will later allow optimizations for the common use case of small integers. We really want to get to the latest version of isl as the newer releases (and development branches) provide very useful features including the possibility to bound the amount of computation before we fall back to a more conservative solution. This feature should help us to fix some of the newer bugs. I have doubts if we can still push this patch to graphite at this stage of trunk, but at the very least we should have it ready for stage-1. Regarding your patch. It looks generally very nice. Just a couple of smaller comments: - Can you adapt configure to only allow isl/cloog versions that actually support the new interface? - Can you updated the documentation that lists the supported isl/cloog versions. Besides some inline comments: Index: gcc/graphite-optimize-isl.c === --- gcc/graphite-optimize-isl.c (revision 207298) +++ gcc/graphite-optimize-isl.c (working copy) @@ -260,6 +260,7 @@ DimToVectorize can be devided by VectorWidth. The default VectorWidth is currently constant and not yet target specific. This function does not reason about parallelism. */ + This change looks unrelated. Can you submit a separate fix? static isl_map * getPrevectorMap (isl_ctx *ctx, int DimToVectorize, int ScheduleDimensions, @@ -273,8 +274,9 @@ isl_aff *Aff; int PointDimension; /* ip */ int TileDimension; /* it */ - isl_int VectorWidthMP; + isl_val *VectorWidthMP; int i; + isl_ctx *ct; We normally use 'ctx' as abbreviation for context. /* assert (0 = DimToVectorize DimToVectorize ScheduleDimensions);*/ @@ -304,10 +306,10 @@ Aff = isl_aff_zero_on_domain (LocalSpaceRange); Aff = isl_aff_set_constant_si (Aff, VectorWidth); Aff = isl_aff_set_coefficient_si (Aff, isl_dim_in, TileDimension, 1); - isl_int_init (VectorWidthMP); - isl_int_set_si (VectorWidthMP, VectorWidth); - Aff = isl_aff_mod (Aff, VectorWidthMP); - isl_int_clear (VectorWidthMP); + + ct = isl_aff_get_ctx (Aff); + VectorWidthMP = isl_val_int_from_si (ct, VectorWidth); + Aff = isl_aff_mod_val (Aff, VectorWidthMP); Modulo = isl_pw_aff_zero_set (isl_pw_aff_from_aff (Aff)); TilingMap = isl_map_intersect_range (TilingMap, Modulo); Index: gcc/graphite-sese-to-poly.c === --- gcc/graphite-sese-to-poly.c (revision 207298) +++ gcc/graphite-sese-to-poly.c (working copy) @@ -26,8 +26,15 @@ #include isl/union_map.h #include isl/constraint.h #include isl/aff.h +#include isl/val.h +#if defined(__cplusplus) +extern C { +#endif +#include isl/val_gmp.h +#if defined(__cplusplus) +} We should put a comment why this is extern C is necessary. Or better, we should check if Sven can get release us an isl 0.12.3 that includes the extern C in the relevant header +#endif #include cloog/cloog.h -#include cloog/cloog.h This seems to be an unrelated fix. Can you submit a separate patch? #include cloog/isl/domain.h #endif @@ -67,7 +74,6 @@ #include graphite-poly.h #include graphite-sese-to-poly.h - This change looks unrelated. Can you submit a separate fix? /* Assigns to RES the value of the INTEGER_CST T. */ static inline void @@ -481,13 +487,11 @@ int i; int nb_iterators = pbb_dim_iter_domain (pbb); int used_scattering_dimensions = nb_iterators * 2 + 1; - isl_int val; + isl_val *val; isl_space *dc, *dm; gcc_assert (scattering_dimensions = used_scattering_dimensions); - isl_int_init (val); - dc = isl_set_get_space (pbb-domain); dm = isl_space_add_dims (isl_space_from_domain (dc), isl_dim_out, scattering_dimensions); @@ -501,12 +505,10 @@ isl_constraint *c =
Re: {GRAPHITE] Replacement of isl_int by isl_val
On 02/10/2014 04:12 AM, Richard Biener wrote: On Sun, Feb 9, 2014 at 9:19 PM, Tobias Grosser tob...@grosser.es wrote: On 02/09/2014 04:47 PM, Mircea Namolaru wrote: Patch for replacement of the isl_int (obsolete) by isl_val. No regressions for c/c++/fortran on x86-64 Linux. Hi Mircae, thanks a lot for looking into this. Just for people not aware of the idea of this patch. Cloog recently upgraded to the latest version of isl (isl-0.12.2) and with this release isl deprecated the isl_int interface in favor of the isl_val interface. It seems that neither ISL 0.10 nor 0.11 or 0.11.1 has isl_val though, so this patch would need to adjust the ISL version check in the toplevel configure. Which also makes this patch not suitable for this stage but it has to wait for stage1. That's what I thought. Thanks for clarifying. Btw, Mircea - do you have a copyright assignment on file with the FSF covering work on GCC? Good point. I will be verifying this with Mircae. Cheers, Tobias
Re: {GRAPHITE] Replacement of isl_int by isl_val
Le 10/02/2014 10:12, Richard Biener a écrit : Btw, Mircea - do you have a copyright assignment on file with the FSF covering work on GCC? Yes, Mircea is covered by an INRIA-wide copyright assignment, signed on May 15, 2007 by T. Brown. Thanks, Albert
Re: {GRAPHITE] Replacement of isl_int by isl_val
Le 10/02/2014 16:48, Albert Cohen a écrit : Le 10/02/2014 10:12, Richard Biener a écrit : Btw, Mircea - do you have a copyright assignment on file with the FSF covering work on GCC? Yes, Mircea is covered by an INRIA-wide copyright assignment, signed on May 15, 2007 by T. Brown. After double-checking, I have to say that the assignment is *not* INRIA-wide, but it covers the research team Mircea is working in. Albert
Re: {GRAPHITE] Replacement of isl_int by isl_val
On 02/09/2014 04:47 PM, Mircea Namolaru wrote: Patch for replacement of the isl_int (obsolete) by isl_val. No regressions for c/c++/fortran on x86-64 Linux. Hi Mircae, thanks a lot for looking into this. Just for people not aware of the idea of this patch. Cloog recently upgraded to the latest version of isl (isl-0.12.2) and with this release isl deprecated the isl_int interface in favor of the isl_val interface. Both are interfaces for arbitrary precision numbers. However, the old isl_int interface was mostly a proxy to gmp, whereas the new interface hides the implementation and will later allow optimizations for the common use case of small integers. We really want to get to the latest version of isl as the newer releases (and development branches) provide very useful features including the possibility to bound the amount of computation before we fall back to a more conservative solution. This feature should help us to fix some of the newer bugs. I have doubts if we can still push this patch to graphite at this stage of trunk, but at the very least we should have it ready for stage-1. Regarding your patch. It looks generally very nice. Just a couple of smaller comments: - Can you adapt configure to only allow isl/cloog versions that actually support the new interface? - Can you updated the documentation that lists the supported isl/cloog versions. Besides some inline comments: Index: gcc/graphite-optimize-isl.c === --- gcc/graphite-optimize-isl.c (revision 207298) +++ gcc/graphite-optimize-isl.c (working copy) @@ -260,6 +260,7 @@ DimToVectorize can be devided by VectorWidth. The default VectorWidth is currently constant and not yet target specific. This function does not reason about parallelism. */ + This change looks unrelated. Can you submit a separate fix? static isl_map * getPrevectorMap (isl_ctx *ctx, int DimToVectorize, int ScheduleDimensions, @@ -273,8 +274,9 @@ isl_aff *Aff; int PointDimension; /* ip */ int TileDimension; /* it */ - isl_int VectorWidthMP; + isl_val *VectorWidthMP; int i; + isl_ctx *ct; We normally use 'ctx' as abbreviation for context. /* assert (0 = DimToVectorize DimToVectorize ScheduleDimensions);*/ @@ -304,10 +306,10 @@ Aff = isl_aff_zero_on_domain (LocalSpaceRange); Aff = isl_aff_set_constant_si (Aff, VectorWidth); Aff = isl_aff_set_coefficient_si (Aff, isl_dim_in, TileDimension, 1); - isl_int_init (VectorWidthMP); - isl_int_set_si (VectorWidthMP, VectorWidth); - Aff = isl_aff_mod (Aff, VectorWidthMP); - isl_int_clear (VectorWidthMP); + + ct = isl_aff_get_ctx (Aff); + VectorWidthMP = isl_val_int_from_si (ct, VectorWidth); + Aff = isl_aff_mod_val (Aff, VectorWidthMP); Modulo = isl_pw_aff_zero_set (isl_pw_aff_from_aff (Aff)); TilingMap = isl_map_intersect_range (TilingMap, Modulo); Index: gcc/graphite-sese-to-poly.c === --- gcc/graphite-sese-to-poly.c (revision 207298) +++ gcc/graphite-sese-to-poly.c (working copy) @@ -26,8 +26,15 @@ #include isl/union_map.h #include isl/constraint.h #include isl/aff.h +#include isl/val.h +#if defined(__cplusplus) +extern C { +#endif +#include isl/val_gmp.h +#if defined(__cplusplus) +} We should put a comment why this is extern C is necessary. Or better, we should check if Sven can get release us an isl 0.12.3 that includes the extern C in the relevant header +#endif #include cloog/cloog.h -#include cloog/cloog.h This seems to be an unrelated fix. Can you submit a separate patch? #include cloog/isl/domain.h #endif @@ -67,7 +74,6 @@ #include graphite-poly.h #include graphite-sese-to-poly.h - This change looks unrelated. Can you submit a separate fix? /* Assigns to RES the value of the INTEGER_CST T. */ static inline void @@ -481,13 +487,11 @@ int i; int nb_iterators = pbb_dim_iter_domain (pbb); int used_scattering_dimensions = nb_iterators * 2 + 1; - isl_int val; + isl_val *val; isl_space *dc, *dm; gcc_assert (scattering_dimensions = used_scattering_dimensions); - isl_int_init (val); - dc = isl_set_get_space (pbb-domain); dm = isl_space_add_dims (isl_space_from_domain (dc), isl_dim_out, scattering_dimensions); @@ -501,12 +505,10 @@ isl_constraint *c = isl_equality_alloc (isl_local_space_from_space (isl_map_get_space (pbb-schedule))); - if (0 != isl_aff_get_coefficient (static_sched, isl_dim_in, - i / 2, val)) - gcc_unreachable (); + val = isl_aff_get_coefficient_val (static_sched, isl_dim_in, i / 2); - isl_int_neg (val, val); - c = isl_constraint_set_constant (c, val); + val = isl_val_neg (val); + c = isl_constraint_set_constant_val (c, val); c =
Re: {GRAPHITE] Replacement of isl_int by isl_val
Tobias Grosser wrote: On 02/09/2014 04:47 PM, Mircea Namolaru wrote: Patch for replacement of the isl_int (obsolete) by isl_val. Just for people not aware of the idea of this patch. Cloog recently upgraded to the latest version of isl (isl-0.12.2) and with this release isl deprecated the isl_int interface in favor of the isl_val interface. Is isl_int already in ISL 0.10 and/or in ISL 0.11.1? 0.10 is still supported by configure and 0.11.1 is *the* version listed in prerequisites. Cf. http://gcc.gnu.org/ml/gcc/2014-01/msg00288.html If it is only in 0.11.1, I think configure can be simply updated without further ado. Tobias PS: I think we should apply the following patch: --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -386 +386 @@ installed but it is not in your default library search path, the -@item ISL Library version 0.11.1 +@item ISL Library version 0.11.1 (or later)