[120437] trunk/dports/devel/cloog
jeremyhu at macports.org
jeremyhu at macports.org
Tue May 27 21:50:58 PDT 2014
Revision: 120437
https://trac.macports.org/changeset/120437
Author: jeremyhu at macports.org
Date: 2014-05-27 21:50:58 -0700 (Tue, 27 May 2014)
Log Message:
-----------
cloog: Update to work with isl-0.13
Modified Paths:
--------------
trunk/dports/devel/cloog/Portfile
Added Paths:
-----------
trunk/dports/devel/cloog/files/0002-Generate-safety-parentheses-around-compound-expressi.patch
trunk/dports/devel/cloog/files/0004-cloog_domain_cube-reimplement-using-documented-funct.patch
trunk/dports/devel/cloog/files/0007-expose-clast_pprint_expr.patch
trunk/dports/devel/cloog/files/0009-Use-isl_val-instead-of-isl_int.patch
trunk/dports/devel/cloog/files/missing-cmake.patch
Modified: trunk/dports/devel/cloog/Portfile
===================================================================
--- trunk/dports/devel/cloog/Portfile 2014-05-28 04:50:28 UTC (rev 120436)
+++ trunk/dports/devel/cloog/Portfile 2014-05-28 04:50:58 UTC (rev 120437)
@@ -7,7 +7,7 @@
name cloog
conflicts cloog-devel
-version 0.18.1
+version 0.18.2
epoch 1
categories devel math
@@ -32,14 +32,19 @@
homepage http://repo.or.cz/w/cloog.git
master_sites http://www.bastoul.net/cloog/pages/download/count.php3?url=./
-checksums rmd160 5c4a182efc0d42e7d5c30e6fcca5832776a2e69a \
- sha256 02500a4edd14875f94fe84cbeda4290425cb0c1c2474c6f75d75a303d64b4196
+checksums rmd160 cbbbcbfb347efaa062aacd540c8735cce3b59d28 \
+ sha256 ba3cc2d3750dfcb51f65ce029f0dda31347b8eeed216b1bac6170ab12d967581
depends_lib port:gmp path:lib/pkgconfig/isl.pc:isl
# prevent -L/lib from being added to LDFLAGS
# see http://groups.google.com/group/isl-development/t/37ad876557e50f2c
-patchfiles patch-configure.diff
+patchfiles 0002-Generate-safety-parentheses-around-compound-expressi.patch \
+ 0004-cloog_domain_cube-reimplement-using-documented-funct.patch \
+ 0007-expose-clast_pprint_expr.patch \
+ 0009-Use-isl_val-instead-of-isl_int.patch \
+ missing-cmake.patch \
+ patch-configure.diff
configure.args-append \
--with-isl=system \
Added: trunk/dports/devel/cloog/files/0002-Generate-safety-parentheses-around-compound-expressi.patch
===================================================================
--- trunk/dports/devel/cloog/files/0002-Generate-safety-parentheses-around-compound-expressi.patch (rev 0)
+++ trunk/dports/devel/cloog/files/0002-Generate-safety-parentheses-around-compound-expressi.patch 2014-05-28 04:50:58 UTC (rev 120437)
@@ -0,0 +1,2668 @@
+From 72a16907ae2ad7250d202f4605372d68f27baabb Mon Sep 17 00:00:00 2001
+From: Cedric Bastoul <cedric.bastoul at u-psud.fr>
+Date: Tue, 7 Jan 2014 18:55:40 +0100
+Subject: [PATCH 02/10] Generate safety parentheses around compound expressions
+
+Now CLooG generates statements with parentheses around expressions
+with more than one term, e.g., S1(0,c1,(c2+c3)) instead of S1(0,c1,c2+c3).
+The purpose of this change is to help users to avoid bugs when relying
+on macros.
+---
+ source/pprint.c | 37 +++++++++++-
+ test/1point-2.c | 4 +-
+ test/byu98-1-2-3.c | 8 +--
+ test/cholesky2.c | 24 ++++----
+ test/christian.c | 14 ++---
+ test/classen.c | 98 +++++++++++++++---------------
+ test/classen2.c | 4 +-
+ test/darte.c | 20 +++----
+ test/dartef.f | 20 +++----
+ test/durbin_e_s.c | 4 +-
+ test/equality2.c | 6 +-
+ test/forwardsub-3-1-2.c | 22 +++----
+ test/gesced.c | 12 ++--
+ test/gesced2.c | 8 +--
+ test/gesced3.c | 10 ++--
+ test/isl/jacobi-shared.c | 4 +-
+ test/isl/mxm-shared.c | 4 +-
+ test/isl/unroll2.c | 4 +-
+ test/levenshtein-1-2-3.c | 38 ++++++------
+ test/levenshtein-1-2-3f.f | 16 ++---
+ test/lineality-2-1-2.c | 8 +--
+ test/mod4.c | 8 +--
+ test/multi-stride2.c | 4 +-
+ test/no_lindep.c | 4 +-
+ test/non_optimal/nul_complex1.c | 4 +-
+ test/nul_basic1.c | 4 +-
+ test/nul_basic2.c | 6 +-
+ test/nul_lcpc.c | 10 ++--
+ test/orc.c | 24 ++++----
+ test/pouchet.c | 8 +--
+ test/rectangle.c | 4 +-
+ test/reservoir/QR.c | 130 ++++++++++++++++++++--------------------
+ test/reservoir/bastoul3.c | 4 +-
+ test/reservoir/cholesky2.c | 10 ++--
+ test/reservoir/fusion2.c | 10 ++--
+ test/reservoir/jacobi3.c | 10 ++--
+ test/reservoir/lim-lam1.c | 12 ++--
+ test/reservoir/lim-lam3.c | 14 ++---
+ test/reservoir/lim-lam4.c | 10 ++--
+ test/reservoir/liu-zhuge1.c | 18 +++---
+ test/reservoir/loechner3.c | 4 +-
+ test/reservoir/loechner4.c | 4 +-
+ test/reservoir/mg-interp.c | 46 +++++++-------
+ test/reservoir/mg-psinv.c | 14 ++---
+ test/reservoir/mg-resid.c | 14 ++---
+ test/reservoir/mg-rprj3.c | 34 +++++------
+ test/reservoir/pingali1.c | 6 +-
+ test/reservoir/pingali5.c | 10 ++--
+ test/reservoir/pingali6.c | 10 ++--
+ test/reservoir/stride.c | 4 +-
+ test/reservoir/stride2.c | 4 +-
+ test/reservoir/tang-xue1.c | 4 +-
+ test/sor1d.c | 8 +--
+ test/stride.c | 4 +-
+ test/stride2.c | 4 +-
+ test/stride3.c | 4 +-
+ test/thomasset.c | 8 +--
+ test/vasilache.c | 8 +--
+ test/vivien.c | 72 +++++++++++-----------
+ test/vivien2.c | 66 ++++++++++----------
+ test/walters.c | 10 ++--
+ test/walters3.c | 6 +-
+ test/wavefront.c | 4 +-
+ 63 files changed, 521 insertions(+), 486 deletions(-)
+
+diff --git a/source/pprint.c b/source/pprint.c
+index f0b7110..f5fcfc7 100644
+--- source/pprint.c
++++ source/pprint.c
+@@ -348,9 +348,33 @@ int pprint_osl_body(struct cloogoptions *options, FILE *dst,
+ return 0;
+ }
+
++/* pprint_parentheses_are_safer function:
++ * this function returns 1 if it decides that it would be safer to put
++ * parentheses around the clast_assignment when it is used as a macro
++ * parameter, 0 otherwise.
++ * \param[in] s Pointer to the clast_assignment to check.
++ * \return 1 if we should print parentheses around s, 0 otherwise.
++ */
++static int pprint_parentheses_are_safer(struct clast_assignment * s) {
++ /* Expressions of the form X = Y should not be used in macros, so we
++ * consider readability first for them and avoid parentheses.
++ * Also, expressions having only one term can live without parentheses.
++ */
++ if ((s->LHS) ||
++ (s->RHS->type == clast_expr_term) ||
++ ((s->RHS->type == clast_expr_red) &&
++ (((struct clast_reduction *)(s->RHS))->n == 1) &&
++ (((struct clast_reduction *)(s->RHS))->elts[0]->type ==
++ clast_expr_term)))
++ return 0;
++
++ return 1;
++}
++
+ void pprint_user_stmt(struct cloogoptions *options, FILE *dst,
+ struct clast_user_stmt *u)
+ {
++ int parenthesis_to_close = 0;
+ struct clast_stmt *t;
+
+ if (pprint_osl_body(options, dst, u))
+@@ -363,10 +387,21 @@ void pprint_user_stmt(struct cloogoptions *options, FILE *dst,
+ fprintf(dst, "(");
+ for (t = u->substitutions; t; t = t->next) {
+ assert(CLAST_STMT_IS_A(t, stmt_ass));
++ if (pprint_parentheses_are_safer((struct clast_assignment *)t)) {
++ fprintf(dst, "(");
++ parenthesis_to_close = 1;
++ }
+ pprint_assignment(options, dst, (struct clast_assignment *)t);
+- if (t->next)
++ if (t->next) {
++ if (parenthesis_to_close) {
++ fprintf(dst, ")");
++ parenthesis_to_close = 0;
++ }
+ fprintf(dst, ",");
++ }
+ }
++ if (parenthesis_to_close)
++ fprintf(dst, ")");
+ fprintf(dst, ")");
+ if (options->language != CLOOG_LANGUAGE_FORTRAN)
+ fprintf(dst, ";");
+diff --git a/test/1point-2.c b/test/1point-2.c
+index 48f6ad4..b5d76ca 100644
+--- test/1point-2.c
++++ test/1point-2.c
+@@ -1,2 +1,2 @@
+-/* Generated from ../../../git/cloog/test/1point-2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */
+-S1(2*M,N+2) ;
++/* Generated from ./1point-2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
++S1(2*M,(N+2));
+diff --git a/test/byu98-1-2-3.c b/test/byu98-1-2-3.c
+index 2a1e151..36f0866 100644
+--- test/byu98-1-2-3.c
++++ test/byu98-1-2-3.c
+@@ -1,4 +1,4 @@
+-/* Generated from /home/skimo/git/cloog/test/byu98-1-2-3.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.01s. */
++/* Generated from ./byu98-1-2-3.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (i=2;i<=3;i++) {
+ for (j=-i+6;j<=6;j++) {
+ S1(i,j);
+@@ -11,11 +11,11 @@ for (i=4;i<=7;i++) {
+ }
+ }
+ if (i >= 6) {
+- S2(i,-i+9);
++ S2(i,(-i+9));
+ }
+ if (i <= 5) {
+- S1(i,-i+9);
+- S2(i,-i+9);
++ S1(i,(-i+9));
++ S2(i,(-i+9));
+ }
+ for (j=max(-i+10,i-1);j<=6;j++) {
+ S1(i,j);
+diff --git a/test/cholesky2.c b/test/cholesky2.c
+index 3141bdc..98c8ad2 100644
+--- test/cholesky2.c
++++ test/cholesky2.c
+@@ -1,4 +1,4 @@
+-/* Generated from ../../../git/cloog/test/cholesky2.cloog by CLooG 0.16.1-2-g33ac553 gmp bits in 0.02s. */
++/* Generated from ./cholesky2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.02s. */
+ if (M >= 1) {
+ for (c2=1;c2<=M-1;c2++) {
+ S1(c2);
+@@ -22,44 +22,44 @@ if (M >= 1) {
+ }
+ for (c1=3;c1<=3*M-7;c1++) {
+ if ((c1+2)%3 == 0) {
+- S3((c1+2)/3);
++ S3(((c1+2)/3));
+ }
+ if (c1%3 == 0) {
+- S2((c1+3)/3,c1/3);
++ S2(((c1+3)/3),(c1/3));
+ }
+ if ((c1+1)%3 == 0) {
+- S6((c1+1)/3,(c1+4)/3);
++ S6(((c1+1)/3),((c1+4)/3));
+ }
+ if (c1%3 == 0) {
+- S2((c1+6)/3,c1/3);
++ S2(((c1+6)/3),(c1/3));
+ }
+ for (c2=ceild(c1+7,3);c2<=M;c2++) {
+ if ((c1+1)%3 == 0) {
+- S6((c1+1)/3,c2);
++ S6(((c1+1)/3),c2);
+ }
+ if (c1%3 == 0) {
+- S2(c2,c1/3);
++ S2(c2,(c1/3));
+ }
+ if ((c1+1)%3 == 0) {
+ for (i=ceild(c1+4,3);i<=c2-1;i++) {
+- S5(i,c2,(c1+1)/3);
++ S5(i,c2,((c1+1)/3));
+ }
+ }
+ }
+ }
+ if (M >= 3) {
+ for (c2=M-1;c2<=M;c2++) {
+- S2(c2,M-2);
++ S2(c2,(M-2));
+ }
+ }
+ if (M >= 3) {
+- S3(M-1);
++ S3((M-1));
+ }
+ if (M >= 3) {
+- S6(M-1,M);
++ S6((M-1),M);
+ }
+ if (M >= 2) {
+- S2(M,M-1);
++ S2(M,(M-1));
+ }
+ if (M >= 2) {
+ S3(M);
+diff --git a/test/christian.c b/test/christian.c
+index cc3c5d3..b68b392 100644
+--- test/christian.c
++++ test/christian.c
+@@ -1,17 +1,17 @@
+-/* Generated from ../../../git/cloog/test/christian.cloog by CLooG 0.16.2-5-g3b3bf96 gmp bits in 0.01s. */
++/* Generated from ./christian.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ if (N >= 1) {
+- S1(0,N-1);
++ S1(0,(N-1));
+ for (p=-N+2;p<=N-1;p++) {
+ if (p >= 1) {
+- S2(p-1,0);
++ S2((p-1),0);
+ }
+ for (i=max(0,p);i<=min(N-1,p+N-2);i++) {
+- S1(i,-p+i);
+- S2(i,-p+i+1);
++ S1(i,(-p+i));
++ S2(i,(-p+i+1));
+ }
+ if (p <= 0) {
+- S1(p+N-1,N-1);
++ S1((p+N-1),(N-1));
+ }
+ }
+- S2(N-1,0);
++ S2((N-1),0);
+ }
+diff --git a/test/classen.c b/test/classen.c
+index 3b5b05e..18166cf 100644
+--- test/classen.c
++++ test/classen.c
+@@ -1,4 +1,4 @@
+-/* Generated from /home/skimo/git/cloog/test/classen.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.45s. */
++/* Generated from ./classen.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.25s. */
+ if (m >= 1) {
+ if (m >= 2) {
+ S1(0,1,1,1);
+@@ -13,52 +13,52 @@ if (m >= 1) {
+ }
+ for (glT1=1;glT1<=2*m-4;glT1++) {
+ if (glT1 <= m-2) {
+- S5(glT1-1,1,glT1,1,glT1,1,glT1+1,1);
+- S1(glT1,1,glT1+1,1);
+- S2(glT1,1,glT1+1,1,glT1+1,1,glT1+2,1);
+- S3(glT1,1,glT1+1,2,glT1+1,1,glT1+1,2);
+- S4(glT1,1,glT1+2,2,glT1+1,1,glT1+2,2);
++ S5((glT1-1),1,glT1,1,glT1,1,(glT1+1),1);
++ S1(glT1,1,(glT1+1),1);
++ S2(glT1,1,(glT1+1),1,(glT1+1),1,(glT1+2),1);
++ S3(glT1,1,(glT1+1),2,(glT1+1),1,(glT1+1),2);
++ S4(glT1,1,(glT1+2),2,(glT1+1),1,(glT1+2),2);
+ }
+ if (glT1 >= m) {
+- S5(glT1-1,glT1-m+2,glT1,glT1-m+2,m-1,glT1-m+2,m,glT1-m+2);
+- S6(glT1-1,glT1-m+1,glT1,glT1-m+2,m,glT1-m+1,m,glT1-m+2);
+- S1(glT1,glT1-m+2,m,glT1-m+2);
+- S3(glT1,glT1-m+2,glT1+1,glT1-m+3,m,glT1-m+2,m,glT1-m+3);
++ S5((glT1-1),(glT1-m+2),glT1,(glT1-m+2),(m-1),(glT1-m+2),m,(glT1-m+2));
++ S6((glT1-1),(glT1-m+1),glT1,(glT1-m+2),m,(glT1-m+1),m,(glT1-m+2));
++ S1(glT1,(glT1-m+2),m,(glT1-m+2));
++ S3(glT1,(glT1-m+2),(glT1+1),(glT1-m+3),m,(glT1-m+2),m,(glT1-m+3));
+ }
+ if (glT1 == m-1) {
+- S5(m-2,1,m-1,1,m-1,1,m,1);
+- S1(m-1,1,m,1);
+- S3(m-1,1,m,2,m,1,m,2);
++ S5((m-2),1,(m-1),1,(m-1),1,m,1);
++ S1((m-1),1,m,1);
++ S3((m-1),1,m,2,m,1,m,2);
+ }
+ for (rp1=max(2,glT1-m+3);rp1<=min(glT1,m-1);rp1++) {
+- S5(glT1-1,rp1,glT1,rp1,glT1-rp1+1,rp1,glT1-rp1+2,rp1);
+- S6(glT1-1,rp1-1,glT1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+2,rp1);
+- S7(glT1-1,rp1-1,glT1+1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+3,rp1);
+- S1(glT1,rp1,glT1-rp1+2,rp1);
+- S2(glT1,rp1,glT1+1,rp1,glT1-rp1+2,rp1,glT1-rp1+3,rp1);
+- S3(glT1,rp1,glT1+1,rp1+1,glT1-rp1+2,rp1,glT1-rp1+2,rp1+1);
+- S4(glT1,rp1,glT1+2,rp1+1,glT1-rp1+2,rp1,glT1-rp1+3,rp1+1);
++ S5((glT1-1),rp1,glT1,rp1,(glT1-rp1+1),rp1,(glT1-rp1+2),rp1);
++ S6((glT1-1),(rp1-1),glT1,rp1,(glT1-rp1+2),(rp1-1),(glT1-rp1+2),rp1);
++ S7((glT1-1),(rp1-1),(glT1+1),rp1,(glT1-rp1+2),(rp1-1),(glT1-rp1+3),rp1);
++ S1(glT1,rp1,(glT1-rp1+2),rp1);
++ S2(glT1,rp1,(glT1+1),rp1,(glT1-rp1+2),rp1,(glT1-rp1+3),rp1);
++ S3(glT1,rp1,(glT1+1),(rp1+1),(glT1-rp1+2),rp1,(glT1-rp1+2),(rp1+1));
++ S4(glT1,rp1,(glT1+2),(rp1+1),(glT1-rp1+2),rp1,(glT1-rp1+3),(rp1+1));
+ }
+ if (glT1 <= m-2) {
+- S6(glT1-1,glT1,glT1,glT1+1,1,glT1,1,glT1+1);
+- S7(glT1-1,glT1,glT1+1,glT1+1,1,glT1,2,glT1+1);
+- S1(glT1,glT1+1,1,glT1+1);
+- S2(glT1,glT1+1,glT1+1,glT1+1,1,glT1+1,2,glT1+1);
+- S3(glT1,glT1+1,glT1+1,glT1+2,1,glT1+1,1,glT1+2);
+- S4(glT1,glT1+1,glT1+2,glT1+2,1,glT1+1,2,glT1+2);
++ S6((glT1-1),glT1,glT1,(glT1+1),1,glT1,1,(glT1+1));
++ S7((glT1-1),glT1,(glT1+1),(glT1+1),1,glT1,2,(glT1+1));
++ S1(glT1,(glT1+1),1,(glT1+1));
++ S2(glT1,(glT1+1),(glT1+1),(glT1+1),1,(glT1+1),2,(glT1+1));
++ S3(glT1,(glT1+1),(glT1+1),(glT1+2),1,(glT1+1),1,(glT1+2));
++ S4(glT1,(glT1+1),(glT1+2),(glT1+2),1,(glT1+1),2,(glT1+2));
+ }
+ if (glT1 >= m) {
+- S5(glT1-1,m,glT1,m,glT1-m+1,m,glT1-m+2,m);
+- S6(glT1-1,m-1,glT1,m,glT1-m+2,m-1,glT1-m+2,m);
+- S7(glT1-1,m-1,glT1+1,m,glT1-m+2,m-1,glT1-m+3,m);
+- S1(glT1,m,glT1-m+2,m);
+- S2(glT1,m,glT1+1,m,glT1-m+2,m,glT1-m+3,m);
++ S5((glT1-1),m,glT1,m,(glT1-m+1),m,(glT1-m+2),m);
++ S6((glT1-1),(m-1),glT1,m,(glT1-m+2),(m-1),(glT1-m+2),m);
++ S7((glT1-1),(m-1),(glT1+1),m,(glT1-m+2),(m-1),(glT1-m+3),m);
++ S1(glT1,m,(glT1-m+2),m);
++ S2(glT1,m,(glT1+1),m,(glT1-m+2),m,(glT1-m+3),m);
+ }
+ if (glT1 == m-1) {
+- S6(m-2,m-1,m-1,m,1,m-1,1,m);
+- S7(m-2,m-1,m,m,1,m-1,2,m);
+- S1(m-1,m,1,m);
+- S2(m-1,m,m,m,1,m,2,m);
++ S6((m-2),(m-1),(m-1),m,1,(m-1),1,m);
++ S7((m-2),(m-1),m,m,1,(m-1),2,m);
++ S1((m-1),m,1,m);
++ S2((m-1),m,m,m,1,m,2,m);
+ }
+ for (coordP1=max(1,glT1-m+2);coordP1<=min(m,glT1+1);coordP1++) {
+ S8(glT1,coordP1);
+@@ -66,10 +66,10 @@ if (m >= 1) {
+ }
+ if (m >= 2) {
+ if (m >= 3) {
+- S5(2*m-4,m-1,2*m-3,m-1,m-1,m-1,m,m-1);
+- S6(2*m-4,m-2,2*m-3,m-1,m,m-2,m,m-1);
+- S1(2*m-3,m-1,m,m-1);
+- S3(2*m-3,m-1,2*m-2,m,m,m-1,m,m);
++ S5((2*m-4),(m-1),(2*m-3),(m-1),(m-1),(m-1),m,(m-1));
++ S6((2*m-4),(m-2),(2*m-3),(m-1),m,(m-2),m,(m-1));
++ S1((2*m-3),(m-1),m,(m-1));
++ S3((2*m-3),(m-1),(2*m-2),m,m,(m-1),m,m);
+ }
+ if (m == 2) {
+ S5(0,1,1,1,1,1,2,1);
+@@ -77,25 +77,25 @@ if (m >= 1) {
+ S3(1,1,2,2,2,1,2,2);
+ }
+ if (m >= 3) {
+- S5(2*m-4,m,2*m-3,m,m-2,m,m-1,m);
+- S6(2*m-4,m-1,2*m-3,m,m-1,m-1,m-1,m);
+- S7(2*m-4,m-1,2*m-2,m,m-1,m-1,m,m);
+- S1(2*m-3,m,m-1,m);
++ S5((2*m-4),m,(2*m-3),m,(m-2),m,(m-1),m);
++ S6((2*m-4),(m-1),(2*m-3),m,(m-1),(m-1),(m-1),m);
++ S7((2*m-4),(m-1),(2*m-2),m,(m-1),(m-1),m,m);
++ S1((2*m-3),m,(m-1),m);
+ }
+ if (m == 2) {
+ S6(0,1,1,2,1,1,1,2);
+ S7(0,1,2,2,1,1,2,2);
+ S1(1,2,1,2);
+ }
+- S2(2*m-3,m,2*m-2,m,m-1,m,m,m);
++ S2((2*m-3),m,(2*m-2),m,(m-1),m,m,m);
+ for (coordP1=m-1;coordP1<=m;coordP1++) {
+- S8(2*m-3,coordP1);
++ S8((2*m-3),coordP1);
+ }
+ }
+ if (m >= 2) {
+- S5(2*m-3,m,2*m-2,m,m-1,m,m,m);
+- S6(2*m-3,m-1,2*m-2,m,m,m-1,m,m);
+- S1(2*m-2,m,m,m);
+- S8(2*m-2,m);
++ S5((2*m-3),m,(2*m-2),m,(m-1),m,m,m);
++ S6((2*m-3),(m-1),(2*m-2),m,m,(m-1),m,m);
++ S1((2*m-2),m,m,m);
++ S8((2*m-2),m);
+ }
+ }
+diff --git a/test/classen2.c b/test/classen2.c
+index 2afd378..b824b4d 100644
+--- test/classen2.c
++++ test/classen2.c
+@@ -1,9 +1,9 @@
+-/* Generated from ../../../git/cloog/test/classen2.cloog by CLooG 0.14.0-271-gaa1e292 gmp bits in 0.14s. */
++/* Generated from ./classen2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.08s. */
+ if ((M >= 2) && (N >= 3) && (outerProcTileScatter1 >= outerProcTileScatter2) && (5*outerProcTileScatter1 <= M+2*N-4) && (5*outerProcTileScatter1 <= 5*outerProcTileScatter2+N+2) && (outerProcTileScatter2 >= 0) && (5*outerProcTileScatter2 <= M+N-2) && (outerTimeTileScatter >= outerProcTileScatter1) && (outerTimeTileScatter <= 2*outerProcTileScatter1) && (outerTimeTileScatter <= outerProcTileScatter1+outerProcTileScatter2+1) && (5*outerTimeTileScatter <= 2*M+2*N-6) && (5*outerTimeTileScatter <= 5*outerProcTileScatter1+M+2) && (5*outerTimeTileScatter >= 10*outerProcTileScatter1-2*N-2) && (5*outerTimeTileScatter <= 5*outerProcTileScatter2+M+N) && (5*outerTimeTileScatter >= 10*outerProcTileScatter2-N-3) && (5*outerTimeTileScatter <= 10*outerProcTileScatter2+N+3) && (5*outerTimeTileScatter >= 5*outerProcTileScatter1+5*outerProcTileScatter2-N-4)) {
+ for (compScatter1=max(max(max(max(max(4,5*outerTimeTileScatter),5*outerProcTileScatter2+1),5*outerProcTileScatter1+5*outerProcTileScatter2-N),10*outerProcTileScatter1-2*N+2),10*outerProcTileScatter2-N+1);compScatter1<=min(min(min(min(min(5*outerTimeTileScatter+4,2*M+2*N-6),5*outerProcTileScatter1+M+2),5*outerProcTileScatter1+5*outerProcTileScatter2+5),5*outerProcTileScatter2+M+N),10*outerProcTileScatter2+N+3);compScatter1++) {
+ for (compScatter2=max(max(max(max(ceild(compScatter1+4,2),5*outerProcTileScatter1),5*outerProcTileScatter2+1),compScatter1-M+2),compScatter1-5*outerProcTileScatter2-1);compScatter2<=min(min(min(min(floord(compScatter1+2*N-2,2),compScatter1),5*outerProcTileScatter1+4),compScatter1-5*outerProcTileScatter2+N),5*outerProcTileScatter2+N+2);compScatter2++) {
+ for (compScatter3=max(max(5*outerProcTileScatter2,compScatter1-compScatter2+3),compScatter2-N+2);compScatter3<=min(min(compScatter2-1,5*outerProcTileScatter2+4),compScatter1-compScatter2+N);compScatter3++) {
+- S1(compScatter1-compScatter2+1,-compScatter1+compScatter2+compScatter3-2,compScatter2-compScatter3,compScatter1,compScatter2,compScatter3);
++ S1((compScatter1-compScatter2+1),(-compScatter1+compScatter2+compScatter3-2),(compScatter2-compScatter3),compScatter1,compScatter2,compScatter3);
+ }
+ }
+ }
+diff --git a/test/darte.c b/test/darte.c
+index 2a4a1b8..65840ad 100644
+--- test/darte.c
++++ test/darte.c
+@@ -1,15 +1,15 @@
+-/* Generated from /home/skimo/git/cloog/test/darte.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.05s. */
++/* Generated from ./darte.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.02s. */
+ if (n >= 1) {
+ for (t3=n+3;t3<=3*n+1;t3++) {
+ if ((t3+n+1)%2 == 0) {
+- S1(1,n,(t3-n-1)/2);
++ S1(1,n,((t3-n-1)/2));
+ }
+ }
+ for (t1=-n+2;t1<=n-1;t1++) {
+ if (t1 >= 0) {
+ for (t3=t1+4;t3<=t1+2*n+2;t3++) {
+ if ((t1+t3)%2 == 0) {
+- S1(t1+1,1,(-t1+t3-2)/2);
++ S1((t1+1),1,((-t1+t3-2)/2));
+ }
+ }
+ }
+@@ -17,7 +17,7 @@ if (n >= 1) {
+ for (t3=t2+2;t3<=t2+2*n;t3++) {
+ if ((t1+t2)%2 == 0) {
+ if ((t1+t3)%2 == 0) {
+- S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2);
++ S1(((t1+t2)/2),((-t1+t2)/2),((-t2+t3)/2));
+ }
+ }
+ }
+@@ -25,36 +25,36 @@ if (n >= 1) {
+ for (t2=max(-t1+5,t1+3);t2<=min(-t1+2*n,t1+2*n);t2++) {
+ for (t3=1;t3<=min(n,t2+1);t3++) {
+ if ((t1+t2+1)%2 == 0) {
+- S2((t1+t2-3)/2,(-t1+t2-1)/2,t3);
++ S2(((t1+t2-3)/2),((-t1+t2-1)/2),t3);
+ }
+ }
+ for (t3=t2+2;t3<=n;t3++) {
+ if ((t1+t2+1)%2 == 0) {
+- S2((t1+t2-3)/2,(-t1+t2-1)/2,t3);
++ S2(((t1+t2-3)/2),((-t1+t2-1)/2),t3);
+ }
+ if ((t1+t2)%2 == 0) {
+ if ((t1+t3)%2 == 0) {
+- S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2);
++ S1(((t1+t2)/2),((-t1+t2)/2),((-t2+t3)/2));
+ }
+ }
+ }
+ for (t3=max(n+1,t2+2);t3<=t2+2*n;t3++) {
+ if ((t1+t2)%2 == 0) {
+ if ((t1+t3)%2 == 0) {
+- S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2);
++ S1(((t1+t2)/2),((-t1+t2)/2),((-t2+t3)/2));
+ }
+ }
+ }
+ }
+ if (t1 <= -1) {
+ for (t3=1;t3<=n;t3++) {
+- S2(t1+n-1,n,t3);
++ S2((t1+n-1),n,t3);
+ }
+ }
+ for (t2=-t1+2*n+1;t2<=min(-t1+2*n+3,t1+2*n+1);t2++) {
+ for (t3=1;t3<=n;t3++) {
+ if ((t1+t2+1)%2 == 0) {
+- S2((t1+t2-3)/2,(-t1+t2-1)/2,t3);
++ S2(((t1+t2-3)/2),((-t1+t2-1)/2),t3);
+ }
+ }
+ }
+diff --git a/test/dartef.f b/test/dartef.f
+index 3b5e3e2..81ca031 100644
+--- test/dartef.f
++++ test/dartef.f
+@@ -1,15 +1,15 @@
+-! Generated from /home/skimo/git/cloog/test/dartef.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.08s.
++! Generated from ./dartef.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.03s.
+ IF (n >= 1) THEN
+ DO t3=n+3, 3*n+1
+ IF (MOD(t3+n+1, 2) == 0) THEN
+- S1(1,n,(t3-n-1)/2)
++ S1(1,n,((t3-n-1)/2))
+ END IF
+ END DO
+ DO t1=-n+2, n-1
+ IF (t1 >= 0) THEN
+ DO t3=t1+4, t1+2*n+2
+ IF (MOD(t1+t3, 2) == 0) THEN
+- S1(t1+1,1,(-t1+t3-2)/2)
++ S1((t1+1),1,((-t1+t3-2)/2))
+ END IF
+ END DO
+ END IF
+@@ -17,7 +17,7 @@ IF (n >= 1) THEN
+ DO t3=t2+2, t2+2*n
+ IF (MOD(t1+t2, 2) == 0) THEN
+ IF (MOD(t1+t3, 2) == 0) THEN
+- S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2)
++ S1(((t1+t2)/2),((-t1+t2)/2),((-t2+t3)/2))
+ END IF
+ END IF
+ END DO
+@@ -25,36 +25,36 @@ IF (n >= 1) THEN
+ DO t2=MAX(-t1+5,t1+3), MIN(-t1+2*n,t1+2*n)
+ DO t3=1, MIN(n,t2+1)
+ IF (MOD(t1+t2+1, 2) == 0) THEN
+- S2((t1+t2-3)/2,(-t1+t2-1)/2,t3)
++ S2(((t1+t2-3)/2),((-t1+t2-1)/2),t3)
+ END IF
+ END DO
+ DO t3=t2+2, n
+ IF (MOD(t1+t2+1, 2) == 0) THEN
+- S2((t1+t2-3)/2,(-t1+t2-1)/2,t3)
++ S2(((t1+t2-3)/2),((-t1+t2-1)/2),t3)
+ END IF
+ IF (MOD(t1+t2, 2) == 0) THEN
+ IF (MOD(t1+t3, 2) == 0) THEN
+- S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2)
++ S1(((t1+t2)/2),((-t1+t2)/2),((-t2+t3)/2))
+ END IF
+ END IF
+ END DO
+ DO t3=MAX(n+1,t2+2), t2+2*n
+ IF (MOD(t1+t2, 2) == 0) THEN
+ IF (MOD(t1+t3, 2) == 0) THEN
+- S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2)
++ S1(((t1+t2)/2),((-t1+t2)/2),((-t2+t3)/2))
+ END IF
+ END IF
+ END DO
+ END DO
+ IF (t1 <= -1) THEN
+ DO t3=1, n
+- S2(t1+n-1,n,t3)
++ S2((t1+n-1),n,t3)
+ END DO
+ END IF
+ DO t2=-t1+2*n+1, MIN(-t1+2*n+3,t1+2*n+1)
+ DO t3=1, n
+ IF (MOD(t1+t2+1, 2) == 0) THEN
+- S2((t1+t2-3)/2,(-t1+t2-1)/2,t3)
++ S2(((t1+t2-3)/2),((-t1+t2-1)/2),t3)
+ END IF
+ END DO
+ END DO
+diff --git a/test/durbin_e_s.c b/test/durbin_e_s.c
+index d0301c8..51b337a 100644
+--- test/durbin_e_s.c
++++ test/durbin_e_s.c
+@@ -1,4 +1,4 @@
+-/* Generated from ../../../git/cloog/test/durbin_e_s.cloog by CLooG 0.14.0-238-gb1cb779 gmp bits in 0.01s. */
++/* Generated from ./durbin_e_s.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ S4(1,0,0);
+ S7(1,0,0);
+ S8(1,0,3);
+@@ -7,7 +7,7 @@ for (i=2;i<=9;i++) {
+ for (j=-7;j<=i-9;j++) {
+ S3(i,j,1);
+ }
+- S6(i,i-9,2);
++ S6(i,(i-9),2);
+ S8(i,0,3);
+ for (j=1;j<=i-1;j++) {
+ S5(i,j,3);
+diff --git a/test/equality2.c b/test/equality2.c
+index ea28ab2..507f906 100644
+--- test/equality2.c
++++ test/equality2.c
+@@ -1,13 +1,13 @@
+-/* Generated from ../../../git/cloog/test/equality2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.07s. */
++/* Generated from ./equality2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.01s. */
+ for (i0=1;i0<=10000;i0++) {
+ for (i1=1000;i1<=1016;i1++) {
+ for (i2=1;i2<=min(-2*i1+2033,2*i1-1999);i2++) {
+ if (2*i1 == i2+1999) {
+- S2(i0,i1,i2,1,i0,2*i1-1000,1,2,i0,i1-499,2*i1-1999,i0,2*i1-1999,i1-999,i1-999) ;
++ S2(i0,i1,i2,1,i0,(2*i1-1000),1,2,i0,(i1-499),(2*i1-1999),i0,(2*i1-1999),(i1-999),(i1-999));
+ }
+ if (i2 == 1) {
+ if (i1%2 == 0) {
+- S1(i0,i1,i2,2,i0,(i1+2)/2,i1-999,i0,i1-999,(i1-998)/2,(i1-998)/2) ;
++ S1(i0,i1,i2,2,i0,((i1+2)/2),(i1-999),i0,(i1-999),((i1-998)/2),((i1-998)/2));
+ }
+ }
+ }
+diff --git a/test/forwardsub-3-1-2.c b/test/forwardsub-3-1-2.c
+index 0f398ed..da340ac 100644
+--- test/forwardsub-3-1-2.c
++++ test/forwardsub-3-1-2.c
+@@ -1,23 +1,23 @@
+-/* Generated from ../../../git/cloog/test/forwardsub-3-1-2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */
+-S3(2,1) ;
+-S1(3,1) ;
+-S1(4,1) ;
+-S4(4,2) ;
++/* Generated from ./forwardsub-3-1-2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
++S3(2,1);
++S1(3,1);
++S1(4,1);
++S4(4,2);
+ for (i=5;i<=M+1;i++) {
+- S1(i,1) ;
++ S1(i,1);
+ for (j=2;j<=floord(i-1,2);j++) {
+- S2(i,j) ;
++ S2(i,j);
+ }
+ if (i%2 == 0) {
+- S4(i,i/2) ;
++ S4(i,(i/2));
+ }
+ }
+ for (i=M+2;i<=2*M-1;i++) {
+ for (j=i-M;j<=floord(i-1,2);j++) {
+- S2(i,j) ;
++ S2(i,j);
+ }
+ if (i%2 == 0) {
+- S4(i,i/2) ;
++ S4(i,(i/2));
+ }
+ }
+-S4(2*M,M) ;
++S4(2*M,M);
+diff --git a/test/gesced.c b/test/gesced.c
+index 6b69507..e95ae38 100644
+--- test/gesced.c
++++ test/gesced.c
+@@ -1,20 +1,20 @@
+-/* Generated from ../../../git/cloog/test/gesced.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.05s. */
++/* Generated from ./gesced.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (c1=1;c1<=N;c1++) {
+- S1(c1) ;
++ S1(c1);
+ }
+ for (c1=N+1;c1<=2*N;c1++) {
+ for (i=1;i<=N;i++) {
+- S2(i,c1-N) ;
++ S2(i,(c1-N));
+ }
+ }
+ for (c1=2*N+1;c1<=M+N;c1++) {
+ for (i=1;i<=N;i++) {
+- S3(i,c1-2*N) ;
+- S2(i,c1-N) ;
++ S3(i,(c1-2*N));
++ S2(i,(c1-N));
+ }
+ }
+ for (c1=M+N+1;c1<=M+2*N;c1++) {
+ for (i=1;i<=N;i++) {
+- S3(i,c1-2*N) ;
++ S3(i,(c1-2*N));
+ }
+ }
+diff --git a/test/gesced2.c b/test/gesced2.c
+index 5cebdb5..475d36e 100644
+--- test/gesced2.c
++++ test/gesced2.c
+@@ -1,4 +1,4 @@
+-/* Generated from /home/skimo/git/cloog/test/gesced2.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.03s. */
++/* Generated from ./gesced2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.01s. */
+ for (c1=1;c1<=4;c1++) {
+ for (c2=5;c2<=M-10;c2++) {
+ S1(c1,c2);
+@@ -6,17 +6,17 @@ for (c1=1;c1<=4;c1++) {
+ }
+ for (c1=5;c1<=M-10;c1++) {
+ for (c2=-c1+1;c2<=4;c2++) {
+- S2(c1+c2,c1);
++ S2((c1+c2),c1);
+ }
+ for (c2=5;c2<=min(M-10,-c1+M);c2++) {
+ S1(c1,c2);
+- S2(c1+c2,c1);
++ S2((c1+c2),c1);
+ }
+ for (c2=-c1+M+1;c2<=M-10;c2++) {
+ S1(c1,c2);
+ }
+ for (c2=M-9;c2<=-c1+M;c2++) {
+- S2(c1+c2,c1);
++ S2((c1+c2),c1);
+ }
+ }
+ for (c1=M-9;c1<=M;c1++) {
+diff --git a/test/gesced3.c b/test/gesced3.c
+index 8d2119d..2eb7997 100644
+--- test/gesced3.c
++++ test/gesced3.c
+@@ -1,11 +1,11 @@
+-/* Generated from ../../../git/cloog/test/gesced3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */
++/* Generated from ./gesced3.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (c1=M+1;c1<=2*M;c1++) {
+- S1(c1-M) ;
++ S1((c1-M));
+ }
+ for (c1=2*M+1;c1<=M+N;c1++) {
+- S2(c1-2*M) ;
+- S1(c1-M) ;
++ S2((c1-2*M));
++ S1((c1-M));
+ }
+ for (c1=M+N+1;c1<=2*M+N;c1++) {
+- S2(c1-2*M) ;
++ S2((c1-2*M));
+ }
+diff --git a/test/isl/jacobi-shared.c b/test/isl/jacobi-shared.c
+index 0c9983d..8b0cfd1 100644
+--- test/isl/jacobi-shared.c
++++ test/isl/jacobi-shared.c
+@@ -1,10 +1,10 @@
+-/* Generated from ../../../git/cloog/test/isl/jacobi-shared.cloog by CLooG 0.16.3-2-g5511bef gmp bits in 1.82s. */
++/* Generated from ./isl/jacobi-shared.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.33s. */
+ if ((h0+1)%2 == 0) {
+ if ((16*floord(t0-1,16) >= -N+g1+t0+1) && (16*floord(g1+t0-3,16) >= -N+g1+t0+1) && (32*floord(t1-1,32) >= -N+g2+t1+1) && (32*floord(g2+t1-3,32) >= t1-32)) {
+ for (c0=max(-16*floord(t0-1,16)+t0,-16*floord(g1+t0-3,16)+t0);c0<=min(32,N-g1-1);c0+=16) {
+ for (c1=-32*floord(t1-1,32)+t1;c1<=min(32,N-g2-1);c1+=32) {
+ if ((c1 >= 1) && (c1 <= 32)) {
+- S1(c0+g1-1,c1+g2-1);
++ S1((c0+g1-1),(c1+g2-1));
+ }
+ }
+ }
+diff --git a/test/isl/mxm-shared.c b/test/isl/mxm-shared.c
+index e5f4c66..0060441 100644
+--- test/isl/mxm-shared.c
++++ test/isl/mxm-shared.c
+@@ -1,8 +1,8 @@
+-/* Generated from ../../../git/cloog/test/isl/mxm-shared.cloog by CLooG 0.16.1-5-gcba2a9f gmp bits in 0.34s. */
++/* Generated from ./isl/mxm-shared.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.17s. */
+ if (g4%4 == 0) {
+ if ((N >= g0+t1+1) && (N >= g1+t0+1) && (t1 <= 7)) {
+ for (c0=t0;c0<=min(127,N-g1-1);c0+=16) {
+- S1(g0+t1,c0+g1);
++ S1((g0+t1),(c0+g1));
+ }
+ }
+ }
+diff --git a/test/isl/unroll2.c b/test/isl/unroll2.c
+index 7ec66bd..709f773 100644
+--- test/isl/unroll2.c
++++ test/isl/unroll2.c
+@@ -1,7 +1,7 @@
+-/* Generated from ../../../git/cloog/test/isl/unroll2.cloog by CLooG 0.16.3-13-g27516e4 gmp bits in 0.00s. */
++/* Generated from ./isl/unroll2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ if ((M >= -1) && (M <= 9)) {
+ if (M >= 0) {
+ S1(M);
+ }
+- S1(M+1);
++ S1((M+1));
+ }
+diff --git a/test/levenshtein-1-2-3.c b/test/levenshtein-1-2-3.c
+index 224bd29..d854541 100644
+--- test/levenshtein-1-2-3.c
++++ test/levenshtein-1-2-3.c
+@@ -1,37 +1,37 @@
+-/* Generated from ../../../git/cloog/test/levenshtein-1-2-3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.12s. */
+-S1(0,0) ;
+-S2(1,0) ;
+-S3(1,1) ;
++/* Generated from ./levenshtein-1-2-3.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.01s. */
++S1(0,0);
++S2(1,0);
++S3(1,1);
+ for (i=2;i<=N;i++) {
+- S2(i,0) ;
++ S2(i,0);
+ for (j=1;j<=i-1;j++) {
+- S6(i,j) ;
++ S6(i,j);
+ }
+- S3(i,i) ;
++ S3(i,i);
+ }
+-S7(N+1,0) ;
++S7((N+1),0);
+ for (j=1;j<=N;j++) {
+- S6(N+1,j) ;
+- S8(N+1,j) ;
++ S6((N+1),j);
++ S8((N+1),j);
+ }
+ for (i=N+2;i<=2*M-N-2;i++) {
+- j = floord(i-N-1,2) ;
+- S7(i,j) ;
++ j = floord(i-N-1,2);
++ S7(i,j);
+ if ((i+N)%2 == 0) {
+- S5(i,(i-N)/2) ;
+- S8(i,(i-N)/2) ;
++ S5(i,((i-N)/2));
++ S8(i,((i-N)/2));
+ }
+ for (j=ceild(i-N+1,2);j<=floord(i+N-1,2);j++) {
+- S6(i,j) ;
+- S8(i,j) ;
++ S6(i,j);
++ S8(i,j);
+ }
+ if ((i+N)%2 == 0) {
+- S4(i,(i+N)/2) ;
+- S8(i,(i+N)/2) ;
++ S4(i,((i+N)/2));
++ S8(i,((i+N)/2));
+ }
+ }
+ for (i=2*M-N-1;i<=2*M-2;i++) {
+ for (j=i-M+1;j<=M-1;j++) {
+- S6(i,j) ;
++ S6(i,j);
+ }
+ }
+diff --git a/test/levenshtein-1-2-3f.f b/test/levenshtein-1-2-3f.f
+index 5a57950..e24f77d 100644
+--- test/levenshtein-1-2-3f.f
++++ test/levenshtein-1-2-3f.f
+@@ -1,4 +1,4 @@
+-! Generated from ../../../git/cloog/test/levenshtein-1-2-3f.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.11s.
++! Generated from ./levenshtein-1-2-3f.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s.
+ S1(0,0)
+ S2(1,0)
+ S3(1,1)
+@@ -9,25 +9,25 @@ DO i=2, N
+ END DO
+ S3(i,i)
+ END DO
+-S7(N+1,0)
++S7((N+1),0)
+ DO j=1, N
+- S6(N+1,j)
+- S8(N+1,j)
++ S6((N+1),j)
++ S8((N+1),j)
+ END DO
+ DO i=N+2, 2*M-N-2
+ j = FLOOR(REAL(i-N-1)/REAL(2))
+ S7(i,j)
+ IF (MOD(i+N, 2) == 0) THEN
+- S5(i,(i-N)/2)
+- S8(i,(i-N)/2)
++ S5(i,((i-N)/2))
++ S8(i,((i-N)/2))
+ END IF
+ DO j=CEILING(REAL(i-N+1)/REAL(2)), FLOOR(REAL(i+N-1)/REAL(2))
+ S6(i,j)
+ S8(i,j)
+ END DO
+ IF (MOD(i+N, 2) == 0) THEN
+- S4(i,(i+N)/2)
+- S8(i,(i+N)/2)
++ S4(i,((i+N)/2))
++ S8(i,((i+N)/2))
+ END IF
+ END DO
+ DO i=2*M-N-1, 2*M-2
+diff --git a/test/lineality-2-1-2.c b/test/lineality-2-1-2.c
+index 37a7e2a..630c1d4 100644
+--- test/lineality-2-1-2.c
++++ test/lineality-2-1-2.c
+@@ -1,14 +1,14 @@
+-/* Generated from /home/skimo/git/cloog/test/lineality-2-1-2.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.00s. */
++/* Generated from ./lineality-2-1-2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (i=1;i<=M;i++) {
+ for (j=1;j<=min(M,i+1);j++) {
+ S1(i,j);
+ }
+ if (i >= M-1) {
+- S2(i,i+2);
++ S2(i,(i+2));
+ }
+ if (i <= M-2) {
+- S1(i,i+2);
+- S2(i,i+2);
++ S1(i,(i+2));
++ S2(i,(i+2));
+ }
+ for (j=i+3;j<=M;j++) {
+ S1(i,j);
+diff --git a/test/mod4.c b/test/mod4.c
+index 6a1ad6a..eb898de 100644
+--- test/mod4.c
++++ test/mod4.c
+@@ -1,6 +1,6 @@
+-/* Generated from /home/skimo/git/cloog/test/mod4.cloog by CLooG 0.14.0-225-g6e2d019 gmp bits in 0.00s. */
++/* Generated from ./mod4.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (j=2;j<=10;j+=3) {
+- S1(j,(j+1)/3,(j+1)/3,2,(j-2)/3);
+- S2(j,(j+1)/3,(j+1)/3,2,(j-2)/3);
+- S3(j,(j+1)/3,(j+1)/3,2,(j-2)/3);
++ S1(j,((j+1)/3),((j+1)/3),2,((j-2)/3));
++ S2(j,((j+1)/3),((j+1)/3),2,((j-2)/3));
++ S3(j,((j+1)/3),((j+1)/3),2,((j-2)/3));
+ }
+diff --git a/test/multi-stride2.c b/test/multi-stride2.c
+index 443107b..a30b9b7 100644
+--- test/multi-stride2.c
++++ test/multi-stride2.c
+@@ -1,4 +1,4 @@
+-/* Generated from ../../../git/cloog/test/multi-stride2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */
++/* Generated from ./multi-stride2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (i=5;i<=100;i+=6) {
+- S1(i,(i-1)/2,(i-2)/3) ;
++ S1(i,((i-1)/2),((i-2)/3));
+ }
+diff --git a/test/no_lindep.c b/test/no_lindep.c
+index 3c7c574..14d605b 100644
+--- test/no_lindep.c
++++ test/no_lindep.c
+@@ -1,2 +1,2 @@
+-/* Generated from ../../../git/cloog/test/no_lindep.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */
+-S1(N+2) ;
++/* Generated from ./no_lindep.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
++S1((N+2));
+diff --git a/test/non_optimal/nul_complex1.c b/test/non_optimal/nul_complex1.c
+index ff78145..9a6760d 100644
+--- test/non_optimal/nul_complex1.c
++++ test/non_optimal/nul_complex1.c
+@@ -1,9 +1,9 @@
+-/* Generated from ../../../git/cloog/test/./non_optimal/nul_complex1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */
++/* Generated from ./non_optimal/nul_complex1.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ if (n >= 0) {
+ for (c1=0;c1<=5*n;c1++) {
+ for (c2=max(ceild(2*c1,3),c1-n);c2<=min(floord(2*c1+2*n,3),c1);c2++) {
+ if (c2%2 == 0) {
+- S1((-2*c1+3*c2)/2,c1-c2) ;
++ S1(((-2*c1+3*c2)/2),(c1-c2));
+ }
+ }
+ }
+diff --git a/test/nul_basic1.c b/test/nul_basic1.c
+index d6b0cf0..838fc58 100644
+--- test/nul_basic1.c
++++ test/nul_basic1.c
+@@ -1,6 +1,6 @@
+-/* Generated from ../../../git/cloog/test/nul_basic1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */
++/* Generated from ./nul_basic1.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ if (M >= 0) {
+ for (i=0;i<=M;i+=2) {
+- S1(i,i/2) ;
++ S1(i,(i/2));
+ }
+ }
+diff --git a/test/nul_basic2.c b/test/nul_basic2.c
+index 6231f0e..ce5e3ae 100644
+--- test/nul_basic2.c
++++ test/nul_basic2.c
+@@ -1,7 +1,7 @@
+-/* Generated from ../../../git/cloog/test/nul_basic2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */
++/* Generated from ./nul_basic2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (i=2;i<=n;i+=2) {
+ if (i%4 == 0) {
+- S2(i,i/4) ;
++ S2(i,(i/4));
+ }
+- S1(i,i/2) ;
++ S1(i,(i/2));
+ }
+diff --git a/test/nul_lcpc.c b/test/nul_lcpc.c
+index b9592f5..82b1704 100644
+--- test/nul_lcpc.c
++++ test/nul_lcpc.c
+@@ -1,15 +1,15 @@
+-/* Generated from ../../../git/cloog/test/nul_lcpc.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.03s. */
++/* Generated from ./nul_lcpc.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (i=1;i<=6;i+=2) {
+ for (j=1;j<=i;j++) {
+- S1(i,(i-1)/2,j) ;
+- S2(i,(i-1)/2,j) ;
++ S1(i,((i-1)/2),j);
++ S2(i,((i-1)/2),j);
+ }
+ for (j=i+1;j<=p;j++) {
+- S1(i,(i-1)/2,j) ;
++ S1(i,((i-1)/2),j);
+ }
+ }
+ for (i=7;i<=m;i+=2) {
+ for (j=1;j<=p;j++) {
+- S1(i,(i-1)/2,j) ;
++ S1(i,((i-1)/2),j);
+ }
+ }
+diff --git a/test/orc.c b/test/orc.c
+index 7ed1547..ff4ce2d 100644
+--- test/orc.c
++++ test/orc.c
+@@ -1,21 +1,21 @@
+-/* Generated from ../../../git/cloog/test/orc.cloog by CLooG 0.16.2-5-g590827b gmp bits in 0.03s. */
++/* Generated from ./orc.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.01s. */
+ S1(0);
+ S2(0,0);
+ for (p2=1;p2<=22;p2++) {
+ if ((p2+1)%2 == 0) {
+- S3(0,(p2-1)/2);
++ S3(0,((p2-1)/2));
+ }
+ if (p2%2 == 0) {
+- S2(0,p2/2);
++ S2(0,(p2/2));
+ }
+ }
+ S3(0,11);
+ for (p1=2;p1<=6;p1++) {
+ if ((p1+1)%3 == 0) {
+- S4((p1-2)/3);
++ S4(((p1-2)/3));
+ }
+ if (p1%3 == 0) {
+- S1(p1/3);
++ S1((p1/3));
+ }
+ if (p1 == 4) {
+ S2(1,0);
+@@ -23,10 +23,10 @@ for (p1=2;p1<=6;p1++) {
+ if (p1 == 4) {
+ for (p2=1;p2<=20;p2++) {
+ if ((p2+1)%2 == 0) {
+- S3(1,(p2-1)/2);
++ S3(1,((p2-1)/2));
+ }
+ if (p2%2 == 0) {
+- S2(1,p2/2);
++ S2(1,(p2/2));
+ }
+ }
+ }
+@@ -37,10 +37,10 @@ for (p1=2;p1<=6;p1++) {
+ S2(2,0);
+ for (p2=1;p2<=18;p2++) {
+ if ((p2+1)%2 == 0) {
+- S3(2,(p2-1)/2);
++ S3(2,((p2-1)/2));
+ }
+ if (p2%2 == 0) {
+- S2(2,p2/2);
++ S2(2,(p2/2));
+ }
+ }
+ S3(2,9);
+@@ -51,14 +51,14 @@ for (p2=0;p2<=9;p2++) {
+ }
+ for (p1=2;p1<=42;p1++) {
+ if ((p1+1)%3 == 0) {
+- S7((p1-2)/3);
++ S7(((p1-2)/3));
+ }
+ if (p1%3 == 0) {
+- S5(p1/3);
++ S5((p1/3));
+ }
+ for (p2=0;p2<=9;p2++) {
+ if ((p1+2)%3 == 0) {
+- S6((p1-1)/3,p2);
++ S6(((p1-1)/3),p2);
+ }
+ }
+ }
+diff --git a/test/pouchet.c b/test/pouchet.c
+index 3eb887f..ddf1537 100644
+--- test/pouchet.c
++++ test/pouchet.c
+@@ -1,18 +1,18 @@
+-/* Generated from ../../../git/cloog/test/pouchet.cloog by CLooG 0.16.2-3-gc1aebd7 gmp bits in 0.03s. */
++/* Generated from ./pouchet.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.02s. */
+ if (Ny >= 2) {
+ for (c0=1;c0<=floord(Ny+4,2);c0++) {
+ for (c1=max(ceild(c0+1,2),c0-1);c1<=min(floord(2*c0+Ny,4),c0);c1++) {
+ if (c0 >= ceild(4*c1-Ny+1,2)) {
+ for (c2=1;c2<=2;c2++) {
+- S1(c0-c1,c1,2*c0-2*c1,-2*c0+4*c1,c2);
+- S2(c0-c1,c1,2*c0-2*c1,-2*c0+4*c1-1,c2);
++ S1((c0-c1),c1,(2*c0-2*c1),(-2*c0+4*c1),c2);
++ S2((c0-c1),c1,(2*c0-2*c1),(-2*c0+4*c1-1),c2);
+ }
+ }
+ if (2*c0 == 4*c1-Ny) {
+ for (c2=1;c2<=2;c2++) {
+ if (Ny%2 == 0) {
+ if ((2*c0+3*Ny)%4 == 0) {
+- S2((2*c0-Ny)/4,(2*c0+Ny)/4,(2*c0-Ny)/2,Ny-1,c2);
++ S2(((2*c0-Ny)/4),((2*c0+Ny)/4),((2*c0-Ny)/2),(Ny-1),c2);
+ }
+ }
+ }
+diff --git a/test/rectangle.c b/test/rectangle.c
+index dba226a..b8b671c 100644
+--- test/rectangle.c
++++ test/rectangle.c
+@@ -1,6 +1,6 @@
+-/* Generated from ../../../git/cloog/test/rectangle.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */
++/* Generated from ./rectangle.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (c1=0;c1<=2*n;c1++) {
+ for (i=max(0,c1-n);i<=min(c1,n);i++) {
+- S1(i,c1-i) ;
++ S1(i,(c1-i));
+ }
+ }
+diff --git a/test/reservoir/QR.c b/test/reservoir/QR.c
+index 5a8c26f..8818d9f 100644
+--- test/reservoir/QR.c
++++ test/reservoir/QR.c
+@@ -1,117 +1,117 @@
+-/* Generated from ../../../git/cloog/test/./reservoir/QR.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.21s. */
++/* Generated from ./reservoir/QR.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.07s. */
+ if (N >= 1) {
+- S1(0) ;
++ S1(0);
+ if ((M >= 1) && (N == 1)) {
+ for (c4=0;c4<=M-1;c4++) {
+- S2(0,c4) ;
++ S2(0,c4);
+ }
+- S3(0) ;
++ S3(0);
+ for (c4=0;c4<=M-1;c4++) {
+- S4(0,c4) ;
++ S4(0,c4);
+ }
+- S10(0) ;
+- S5(0) ;
++ S10(0);
++ S5(0);
+ }
+ if ((M <= 0) && (N == 1)) {
+- S3(0) ;
+- S10(0) ;
+- S5(0) ;
++ S3(0);
++ S10(0);
++ S5(0);
+ }
+ if ((M >= 1) && (N >= 2)) {
+ for (c4=0;c4<=M-1;c4++) {
+- S2(0,c4) ;
++ S2(0,c4);
+ }
+- S3(0) ;
++ S3(0);
+ for (c4=0;c4<=M-1;c4++) {
+- S4(0,c4) ;
++ S4(0,c4);
+ }
+- S10(0) ;
+- S1(1) ;
+- S5(0) ;
++ S10(0);
++ S1(1);
++ S5(0);
+ }
+ if ((M <= 0) && (N >= 2)) {
+- S3(0) ;
+- S10(0) ;
+- S1(1) ;
+- S5(0) ;
++ S3(0);
++ S10(0);
++ S1(1);
++ S5(0);
+ }
+ for (c2=2;c2<=min(M,N-1);c2++) {
+ for (c4=c2-1;c4<=N-1;c4++) {
+- S6(c2-2,c4) ;
++ S6((c2-2),c4);
+ for (c6=c2-2;c6<=M-1;c6++) {
+- S7(c2-2,c4,c6) ;
++ S7((c2-2),c4,c6);
+ }
+- S8(c2-2,c4) ;
++ S8((c2-2),c4);
+ for (c6=c2-2;c6<=M-1;c6++) {
+- S9(c2-2,c4,c6) ;
++ S9((c2-2),c4,c6);
+ }
+ }
+ for (c4=c2-1;c4<=M-1;c4++) {
+- S2(c2-1,c4) ;
++ S2((c2-1),c4);
+ }
+- S3(c2-1) ;
++ S3((c2-1));
+ for (c4=c2-1;c4<=M-1;c4++) {
+- S4(c2-1,c4) ;
++ S4((c2-1),c4);
+ }
+- S10(c2-1) ;
+- S1(c2) ;
+- S5(c2-1) ;
++ S10((c2-1));
++ S1(c2);
++ S5((c2-1));
+ }
+ if ((M >= 1) && (M <= N-2)) {
+ for (c4=M;c4<=N-1;c4++) {
+- S6(M-1,c4) ;
+- S7(M-1,c4,M-1) ;
+- S8(M-1,c4) ;
+- S9(M-1,c4,M-1) ;
++ S6((M-1),c4);
++ S7((M-1),c4,(M-1));
++ S8((M-1),c4);
++ S9((M-1),c4,(M-1));
+ }
+- S3(M) ;
+- S10(M) ;
+- S1(M+1) ;
+- S5(M) ;
++ S3(M);
++ S10(M);
++ S1((M+1));
++ S5(M);
+ }
+ for (c2=max(2,M+2);c2<=N-1;c2++) {
+ for (c4=c2-1;c4<=N-1;c4++) {
+- S6(c2-2,c4) ;
+- S8(c2-2,c4) ;
++ S6((c2-2),c4);
++ S8((c2-2),c4);
+ }
+- S3(c2-1) ;
+- S10(c2-1) ;
+- S1(c2) ;
+- S5(c2-1) ;
++ S3((c2-1));
++ S10((c2-1));
++ S1(c2);
++ S5((c2-1));
+ }
+ if ((M >= N) && (N >= 2)) {
+- S6(N-2,N-1) ;
++ S6((N-2),(N-1));
+ for (c6=N-2;c6<=M-1;c6++) {
+- S7(N-2,N-1,c6) ;
++ S7((N-2),(N-1),c6);
+ }
+- S8(N-2,N-1) ;
++ S8((N-2),(N-1));
+ for (c6=N-2;c6<=M-1;c6++) {
+- S9(N-2,N-1,c6) ;
++ S9((N-2),(N-1),c6);
+ }
+ for (c4=N-1;c4<=M-1;c4++) {
+- S2(N-1,c4) ;
++ S2((N-1),c4);
+ }
+- S3(N-1) ;
++ S3((N-1));
+ for (c4=N-1;c4<=M-1;c4++) {
+- S4(N-1,c4) ;
++ S4((N-1),c4);
+ }
+- S10(N-1) ;
+- S5(N-1) ;
++ S10((N-1));
++ S5((N-1));
+ }
+ if ((M == N-1) && (M >= 1)) {
+- S6(M-1,M) ;
+- S7(M-1,M,M-1) ;
+- S8(M-1,M) ;
+- S9(M-1,M,M-1) ;
+- S3(M) ;
+- S10(M) ;
+- S5(M) ;
++ S6((M-1),M);
++ S7((M-1),M,(M-1));
++ S8((M-1),M);
++ S9((M-1),M,(M-1));
++ S3(M);
++ S10(M);
++ S5(M);
+ }
+ if ((M <= N-2) && (N >= 2)) {
+- S6(N-2,N-1) ;
+- S8(N-2,N-1) ;
+- S3(N-1) ;
+- S10(N-1) ;
+- S5(N-1) ;
++ S6((N-2),(N-1));
++ S8((N-2),(N-1));
++ S3((N-1));
++ S10((N-1));
++ S5((N-1));
+ }
+ }
+diff --git a/test/reservoir/bastoul3.c b/test/reservoir/bastoul3.c
+index 5f4b050..a96d9bd 100644
+--- test/reservoir/bastoul3.c
++++ test/reservoir/bastoul3.c
+@@ -1,6 +1,6 @@
+-/* Generated from ../../../git/cloog/test/reservoir/bastoul3.cloog by CLooG 0.16.3 gmp bits in 0.01s. */
++/* Generated from ./reservoir/bastoul3.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (i=3;i<=9;i++) {
+ for (j=max(i-6,i-2*floord(i+1,2)+2);j<=min(3,i-2);j+=2) {
+- S1(i,j,(i-j)/2);
++ S1(i,j,((i-j)/2));
+ }
+ }
+diff --git a/test/reservoir/cholesky2.c b/test/reservoir/cholesky2.c
+index ee3c52e..e0c3236 100644
+--- test/reservoir/cholesky2.c
++++ test/reservoir/cholesky2.c
+@@ -1,4 +1,4 @@
+-/* Generated from ../../../git/cloog/test/reservoir/cholesky2.cloog by CLooG 0.14.0-283-g7c18f7a gmp bits in 0.04s. */
++/* Generated from ./reservoir/cholesky2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.01s. */
+ if (M >= 1) {
+ if (M >= 2) {
+ S1(1);
+@@ -11,21 +11,21 @@ if (M >= 1) {
+ }
+ for (c2=4;c2<=3*M-4;c2++) {
+ if ((c2+1)%3 == 0) {
+- S1((c2+1)/3);
++ S1(((c2+1)/3));
+ }
+ for (c4=ceild(c2+2,3);c4<=min(M,c2-2);c4++) {
+ for (c6=ceild(c2-c4+2,2);c6<=min(c4,c2-c4);c6++) {
+- S3(c2-c4-c6+1,c4,c6);
++ S3((c2-c4-c6+1),c4,c6);
+ }
+ }
+ for (c4=ceild(c2+4,3);c4<=min(M,c2);c4++) {
+ if ((c2+c4)%2 == 0) {
+- S2((c2-c4+2)/2,c4);
++ S2(((c2-c4+2)/2),c4);
+ }
+ }
+ }
+ for (c2=max(2*M,3*M-3);c2<=3*M-2;c2++) {
+- S3(c2-2*M+1,M,M);
++ S3((c2-2*M+1),M,M);
+ }
+ if (M >= 2) {
+ S1(M);
+diff --git a/test/reservoir/fusion2.c b/test/reservoir/fusion2.c
+index d9d02d6..0df2ac2 100644
+--- test/reservoir/fusion2.c
++++ test/reservoir/fusion2.c
+@@ -1,17 +1,17 @@
+-/* Generated from ../../../git/cloog/test/./reservoir/fusion2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */
++/* Generated from ./reservoir/fusion2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ if ((M >= 1) && (N >= 1)) {
+ for (c4=1;c4<=M;c4++) {
+- S1(1,c4) ;
++ S1(1,c4);
+ }
+ for (c2=2;c2<=N;c2++) {
+ for (c4=1;c4<=M;c4++) {
+- S2(c2-1,c4) ;
++ S2((c2-1),c4);
+ }
+ for (c4=1;c4<=M;c4++) {
+- S1(c2,c4) ;
++ S1(c2,c4);
+ }
+ }
+ for (c4=1;c4<=M;c4++) {
+- S2(N,c4) ;
++ S2(N,c4);
+ }
+ }
+diff --git a/test/reservoir/jacobi3.c b/test/reservoir/jacobi3.c
+index 0182c15..ec640cf 100644
+--- test/reservoir/jacobi3.c
++++ test/reservoir/jacobi3.c
+@@ -1,29 +1,29 @@
+-/* Generated from ../../../git/cloog/test/./reservoir/jacobi3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */
++/* Generated from ./reservoir/jacobi3.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.01s. */
+ if ((M >= 1) && (N >= 3)) {
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+- S1(1,c4,c6) ;
++ S1(1,c4,c6);
+ }
+ }
+ for (c2=3;c2<=2*M;c2++) {
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ if (c2%2 == 0) {
+- S1(c2/2,c4,c6) ;
++ S1((c2/2),c4,c6);
+ }
+ }
+ }
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ if ((c2+1)%2 == 0) {
+- S2((c2-1)/2,c4,c6) ;
++ S2(((c2-1)/2),c4,c6);
+ }
+ }
+ }
+ }
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+- S2(M,c4,c6) ;
++ S2(M,c4,c6);
+ }
+ }
+ }
+diff --git a/test/reservoir/lim-lam1.c b/test/reservoir/lim-lam1.c
+index 469117c..76603e6 100644
+--- test/reservoir/lim-lam1.c
++++ test/reservoir/lim-lam1.c
+@@ -1,25 +1,25 @@
+-/* Generated from /home/skimo/git/cloog/test/./reservoir/lim-lam1.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.01s. */
++/* Generated from ./reservoir/lim-lam1.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ S1(1,100);
+ for (c2=-98;c2<=99;c2++) {
+ if (c2 <= 0) {
+- S1(1,-c2+1);
++ S1(1,(-c2+1));
+ }
+ if (c2 >= 1) {
+ S2(c2,1);
+ }
+ for (c4=max(2,-2*c2+3);c4<=min(199,-2*c2+200);c4++) {
+ if (c4%2 == 0) {
+- S1((2*c2+c4)/2,c4/2);
++ S1(((2*c2+c4)/2),(c4/2));
+ }
+ if ((c4+1)%2 == 0) {
+- S2((2*c2+c4-1)/2,(c4+1)/2);
++ S2(((2*c2+c4-1)/2),((c4+1)/2));
+ }
+ }
+ if (c2 <= 0) {
+- S1(c2+100,100);
++ S1((c2+100),100);
+ }
+ if (c2 >= 1) {
+- S2(100,-c2+101);
++ S2(100,(-c2+101));
+ }
+ }
+ S2(100,1);
+diff --git a/test/reservoir/lim-lam3.c b/test/reservoir/lim-lam3.c
+index c68a629..1db4230 100644
+--- test/reservoir/lim-lam3.c
++++ test/reservoir/lim-lam3.c
+@@ -1,33 +1,33 @@
+-/* Generated from ../../../git/cloog/test/reservoir/lim-lam3.cloog by CLooG 0.16.2-8-g1421b58 gmp bits in 0.03s. */
++/* Generated from ./reservoir/lim-lam3.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.01s. */
+ S4(1);
+ for (c2=9;c2<=min(13,5*M-1);c2++) {
+ if (c2 <= M+7) {
+- S2(c2-7,1);
++ S2((c2-7),1);
+ }
+ if (c2 == 10) {
+ S4(2);
+ }
+ if (c2 <= 3*M+3) {
+ if (c2%3 == 0) {
+- S3((c2-3)/3,1);
++ S3(((c2-3)/3),1);
+ }
+ }
+ }
+ for (c2=14;c2<=5*M-1;c2++) {
+ for (c4=max(2,ceild(c2-M-3,4));c4<=min(floord(c2-8,3),M-1);c4++) {
+ for (c6=max(1,ceild(c2-2*c4-M-5,2));c6<=min(floord(c2-3*c4-6,2),c4-1);c6++) {
+- S1(c2-2*c4-2*c6-5,c4,c6);
++ S1((c2-2*c4-2*c6-5),c4,c6);
+ }
+ }
+ for (c4=max(1,ceild(c2-M-3,4));c4<=floord(c2-4,5);c4++) {
+- S2(c2-4*c4-3,c4);
++ S2((c2-4*c4-3),c4);
+ }
+ if (c2%5 == 0) {
+- S4(c2/5);
++ S4((c2/5));
+ }
+ for (c4=max(1,ceild(c2-3*M-1,2));c4<=floord(c2-4,5);c4++) {
+ if ((c2+c4+2)%3 == 0) {
+- S3((c2-2*c4-1)/3,c4);
++ S3(((c2-2*c4-1)/3),c4);
+ }
+ }
+ }
+diff --git a/test/reservoir/lim-lam4.c b/test/reservoir/lim-lam4.c
+index b2c0845..1b22312 100644
+--- test/reservoir/lim-lam4.c
++++ test/reservoir/lim-lam4.c
+@@ -1,17 +1,17 @@
+-/* Generated from ../../../git/cloog/test/./reservoir/lim-lam4.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.04s. */
++/* Generated from ./reservoir/lim-lam4.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.01s. */
+ if (M >= 2) {
+- S1(1,0,0) ;
++ S1(1,0,0);
+ for (c2=2;c2<=2*M-2;c2++) {
+ for (c4=max(-M+1,-c2+1);c4<=-1;c4++) {
+ for (i=max(1,c2-M+1);i<=min(M-1,c2+c4);i++) {
+- S1(i,c2+c4-i,-c4) ;
++ S1(i,(c2+c4-i),-c4);
+ }
+ for (c6=max(-c4,c2-M+1);c6<=min(M-1,c2-1);c6++) {
+- S2(c2-c6,c4+c6,c6) ;
++ S2((c2-c6),(c4+c6),c6);
+ }
+ }
+ for (i=max(1,c2-M+1);i<=min(c2,M-1);i++) {
+- S1(i,c2-i,0) ;
++ S1(i,(c2-i),0);
+ }
+ }
+ }
+diff --git a/test/reservoir/liu-zhuge1.c b/test/reservoir/liu-zhuge1.c
+index b0f8602..a083203 100644
+--- test/reservoir/liu-zhuge1.c
++++ test/reservoir/liu-zhuge1.c
+@@ -1,46 +1,46 @@
+-/* Generated from /home/skimo/git/cloog/test/./reservoir/liu-zhuge1.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.02s. */
++/* Generated from ./reservoir/liu-zhuge1.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.02s. */
+ if ((M >= 0) && (N >= 0)) {
+ for (c2=-4;c2<=min(-1,3*M+N-4);c2++) {
+ for (c4=max(0,c2-3*M+4);c4<=min(N,c2+4);c4++) {
+ if ((c2+2*c4+1)%3 == 0) {
+- S1((c2-c4+4)/3,c4);
++ S1(((c2-c4+4)/3),c4);
+ }
+ }
+ }
+ for (c2=0;c2<=3*M+N-4;c2++) {
+ for (c4=max(0,c2-3*M);c4<=min(c2,c2-3*M+3);c4++) {
+ if ((c2+2*c4)%3 == 0) {
+- S2((c2-c4)/3,c4);
++ S2(((c2-c4)/3),c4);
+ }
+ }
+ for (c4=max(0,c2-3*M+4);c4<=min(N,c2);c4++) {
+ if ((c2+2*c4)%3 == 0) {
+- S2((c2-c4)/3,c4);
++ S2(((c2-c4)/3),c4);
+ }
+ if ((c2+2*c4+1)%3 == 0) {
+- S1((c2-c4+4)/3,c4);
++ S1(((c2-c4+4)/3),c4);
+ }
+ }
+ for (c4=max(c2+1,c2-3*M+4);c4<=min(N,c2+4);c4++) {
+ if ((c2+2*c4+1)%3 == 0) {
+- S1((c2-c4+4)/3,c4);
++ S1(((c2-c4+4)/3),c4);
+ }
+ }
+ for (c4=max(0,c2-3*M);c4<=min(N,c2);c4++) {
+ if ((c2+2*c4)%3 == 0) {
+- S3((c2-c4)/3,c4);
++ S3(((c2-c4)/3),c4);
+ }
+ }
+ }
+ for (c2=max(0,3*M+N-3);c2<=3*M+N;c2++) {
+ for (c4=max(0,c2-3*M);c4<=min(N,c2);c4++) {
+ if ((c2+2*c4)%3 == 0) {
+- S2((c2-c4)/3,c4);
++ S2(((c2-c4)/3),c4);
+ }
+ }
+ for (c4=max(0,c2-3*M);c4<=min(N,c2);c4++) {
+ if ((c2+2*c4)%3 == 0) {
+- S3((c2-c4)/3,c4);
++ S3(((c2-c4)/3),c4);
+ }
+ }
+ }
+diff --git a/test/reservoir/loechner3.c b/test/reservoir/loechner3.c
+index c3967b8..46856d5 100644
+--- test/reservoir/loechner3.c
++++ test/reservoir/loechner3.c
+@@ -1,9 +1,9 @@
+-/* Generated from ../../../git/cloog/test/./reservoir/loechner3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */
++/* Generated from ./reservoir/loechner3.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ if (M >= 1) {
+ for (c2=1;c2<=M;c2++) {
+ for (c4=2;c4<=c2+M;c4++) {
+ for (c6=max(1,-c2+c4);c6<=min(M,c4-1);c6++) {
+- S1(c2,c6,c4-c6) ;
++ S1(c2,c6,(c4-c6));
+ }
+ }
+ }
+diff --git a/test/reservoir/loechner4.c b/test/reservoir/loechner4.c
+index 8c4b9c7..377bb71 100644
+--- test/reservoir/loechner4.c
++++ test/reservoir/loechner4.c
+@@ -1,10 +1,10 @@
+-/* Generated from ../../../git/cloog/test/./reservoir/loechner4.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */
++/* Generated from ./reservoir/loechner4.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ if (M >= 1) {
+ for (c2=2;c2<=2*M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ for (c8=max(1,c2-M);c8<=min(M,c2-1);c8++) {
+- S1(c6,c4,c8,c2-c8) ;
++ S1(c6,c4,c8,(c2-c8));
+ }
+ }
+ }
+diff --git a/test/reservoir/mg-interp.c b/test/reservoir/mg-interp.c
+index 3ed1fcf..6a26074 100644
+--- test/reservoir/mg-interp.c
++++ test/reservoir/mg-interp.c
+@@ -1,4 +1,4 @@
+-/* Generated from ../../../git/cloog/test/reservoir/mg-interp.cloog by CLooG 0.16.2-5-g590827b gmp bits in 0.29s. */
++/* Generated from ./reservoir/mg-interp.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.16s. */
+ if ((M >= 2) && (N >= 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+@@ -55,58 +55,58 @@ if ((M >= 2) && (N >= 2)) {
+ for (c4=3;c4<=2*N-5;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ if ((c4+1)%2 == 0) {
+- S10(c2,(c4-1)/2,c6);
++ S10(c2,((c4-1)/2),c6);
+ }
+ }
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+- S3(c2,(c4+1)/2,c6);
++ S3(c2,((c4+1)/2),c6);
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+- S6(c2,(c4+2)/2,c6);
++ S6(c2,((c4+2)/2),c6);
+ }
+ if ((c4+1)%2 == 0) {
+- S1(c2,(c4+3)/2,c6);
++ S1(c2,((c4+3)/2),c6);
+ }
+ if (c4%2 == 0) {
+- S7(c2,(c4+2)/2,c6);
++ S7(c2,((c4+2)/2),c6);
+ }
+ }
+ if ((c4+1)%2 == 0) {
+- S1(c2,(c4+3)/2,M);
++ S1(c2,((c4+3)/2),M);
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+- S11(c2,c4/2,c6);
++ S11(c2,(c4/2),c6);
+ }
+ }
+ }
+ if (N >= 4) {
+ for (c6=1;c6<=M-1;c6++) {
+- S6(c2,N-1,c6);
+- S7(c2,N-1,c6);
++ S6(c2,(N-1),c6);
++ S7(c2,(N-1),c6);
+ }
+ for (c6=1;c6<=M-1;c6++) {
+- S11(c2,N-2,c6);
++ S11(c2,(N-2),c6);
+ }
+ }
+ if (N >= 3) {
+ for (c6=1;c6<=M-1;c6++) {
+- S10(c2,N-2,c6);
++ S10(c2,(N-2),c6);
+ }
+ for (c6=1;c6<=M;c6++) {
+- S3(c2,N-1,c6);
++ S3(c2,(N-1),c6);
+ }
+ }
+ if (N >= 3) {
+ for (c6=1;c6<=M-1;c6++) {
+- S11(c2,N-1,c6);
++ S11(c2,(N-1),c6);
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+- S10(c2,N-1,c6);
++ S10(c2,(N-1),c6);
+ }
+ }
+ }
+@@ -115,13 +115,13 @@ if ((M == 1) && (N >= 2)) {
+ S1(c2,1,1);
+ for (c4=1;c4<=2*N-5;c4++) {
+ if ((c4+1)%2 == 0) {
+- S3(c2,(c4+1)/2,1);
++ S3(c2,((c4+1)/2),1);
+ }
+ if ((c4+1)%2 == 0) {
+- S1(c2,(c4+3)/2,1);
++ S1(c2,((c4+3)/2),1);
+ }
+ }
+- S3(c2,N-1,1);
++ S3(c2,(N-1),1);
+ }
+ }
+ if ((M >= 2) && (N >= 2)) {
+@@ -135,22 +135,22 @@ if ((M >= 2) && (N >= 2)) {
+ for (c4=3;c4<=2*N-2;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if (c4%2 == 0) {
+- S2(c2,c4/2,c6);
++ S2(c2,(c4/2),c6);
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+- S8(c2,c4/2,c6);
++ S8(c2,(c4/2),c6);
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if ((c4+1)%2 == 0) {
+- S9(c2,(c4-1)/2,c6);
++ S9(c2,((c4-1)/2),c6);
+ }
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+- S9(c2,N-1,c6);
++ S9(c2,(N-1),c6);
+ }
+ }
+ }
+@@ -158,7 +158,7 @@ if ((M == 1) && (N >= 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=2;c4<=2*N-2;c4++) {
+ if (c4%2 == 0) {
+- S2(c2,c4/2,1);
++ S2(c2,(c4/2),1);
+ }
+ }
+ }
+diff --git a/test/reservoir/mg-psinv.c b/test/reservoir/mg-psinv.c
+index a0447e1..9fc6b38 100644
+--- test/reservoir/mg-psinv.c
++++ test/reservoir/mg-psinv.c
+@@ -1,4 +1,4 @@
+-/* Generated from /home/skimo/git/cloog/test/./reservoir/mg-psinv.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.02s. */
++/* Generated from ./reservoir/mg-psinv.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.02s. */
+ if ((M >= 1) && (N >= 3) && (O >= 3)) {
+ if (M >= 3) {
+ for (c2=2;c2<=O-1;c2++) {
+@@ -9,18 +9,18 @@ if ((M >= 1) && (N >= 3) && (O >= 3)) {
+ for (c4=4;c4<=2*N-3;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+- S1(c2,(c4+1)/2,c6);
+- S2(c2,(c4+1)/2,c6);
++ S1(c2,((c4+1)/2),c6);
++ S2(c2,((c4+1)/2),c6);
+ }
+ }
+ for (c6=2;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+- S3(c2,c4/2,c6);
++ S3(c2,(c4/2),c6);
+ }
+ }
+ }
+ for (c6=2;c6<=M-1;c6++) {
+- S3(c2,N-1,c6);
++ S3(c2,(N-1),c6);
+ }
+ }
+ }
+@@ -29,8 +29,8 @@ if ((M >= 1) && (N >= 3) && (O >= 3)) {
+ for (c4=3;c4<=2*N-3;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+- S1(c2,(c4+1)/2,c6);
+- S2(c2,(c4+1)/2,c6);
++ S1(c2,((c4+1)/2),c6);
++ S2(c2,((c4+1)/2),c6);
+ }
+ }
+ }
+diff --git a/test/reservoir/mg-resid.c b/test/reservoir/mg-resid.c
+index 89a3cda..73902be 100644
+--- test/reservoir/mg-resid.c
++++ test/reservoir/mg-resid.c
+@@ -1,4 +1,4 @@
+-/* Generated from /home/skimo/git/cloog/test/./reservoir/mg-resid.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.03s. */
++/* Generated from ./reservoir/mg-resid.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.02s. */
+ if ((M >= 1) && (N >= 3) && (O >= 3)) {
+ if (M >= 3) {
+ for (c2=2;c2<=O-1;c2++) {
+@@ -9,18 +9,18 @@ if ((M >= 1) && (N >= 3) && (O >= 3)) {
+ for (c4=4;c4<=2*N-3;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+- S1(c2,(c4+1)/2,c6);
+- S2(c2,(c4+1)/2,c6);
++ S1(c2,((c4+1)/2),c6);
++ S2(c2,((c4+1)/2),c6);
+ }
+ }
+ for (c6=2;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+- S3(c2,c4/2,c6);
++ S3(c2,(c4/2),c6);
+ }
+ }
+ }
+ for (c6=2;c6<=M-1;c6++) {
+- S3(c2,N-1,c6);
++ S3(c2,(N-1),c6);
+ }
+ }
+ }
+@@ -29,8 +29,8 @@ if ((M >= 1) && (N >= 3) && (O >= 3)) {
+ for (c4=3;c4<=2*N-3;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+- S1(c2,(c4+1)/2,c6);
+- S2(c2,(c4+1)/2,c6);
++ S1(c2,((c4+1)/2),c6);
++ S2(c2,((c4+1)/2),c6);
+ }
+ }
+ }
+diff --git a/test/reservoir/mg-rprj3.c b/test/reservoir/mg-rprj3.c
+index f7f7a4d..0b9a395 100644
+--- test/reservoir/mg-rprj3.c
++++ test/reservoir/mg-rprj3.c
+@@ -1,4 +1,4 @@
+-/* Generated from /home/skimo/git/cloog/test/./reservoir/mg-rprj3.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.10s. */
++/* Generated from ./reservoir/mg-rprj3.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.05s. */
+ if ((M >= 2) && (N >= 3) && (O >= 3)) {
+ if (M >= 3) {
+ for (c2=2;c2<=O-1;c2++) {
+@@ -7,41 +7,41 @@ if ((M >= 2) && (N >= 3) && (O >= 3)) {
+ }
+ for (c4=3;c4<=N-1;c4++) {
+ for (c6=2;c6<=M;c6++) {
+- S2(c2,c4-1,c6);
++ S2(c2,(c4-1),c6);
+ }
+- S4(c2,c4-1,2);
++ S4(c2,(c4-1),2);
+ for (c6=2;c6<=M-2;c6++) {
+- S3(c2,c4-1,c6);
+- S5(c2,c4-1,c6);
+- S4(c2,c4-1,c6+1);
++ S3(c2,(c4-1),c6);
++ S5(c2,(c4-1),c6);
++ S4(c2,(c4-1),(c6+1));
+ }
+- S3(c2,c4-1,M-1);
+- S5(c2,c4-1,M-1);
++ S3(c2,(c4-1),(M-1));
++ S5(c2,(c4-1),(M-1));
+ for (c6=2;c6<=M;c6++) {
+ S1(c2,c4,c6);
+ }
+ }
+ for (c6=2;c6<=M;c6++) {
+- S2(c2,N-1,c6);
++ S2(c2,(N-1),c6);
+ }
+- S4(c2,N-1,2);
++ S4(c2,(N-1),2);
+ for (c6=2;c6<=M-2;c6++) {
+- S3(c2,N-1,c6);
+- S5(c2,N-1,c6);
+- S4(c2,N-1,c6+1);
++ S3(c2,(N-1),c6);
++ S5(c2,(N-1),c6);
++ S4(c2,(N-1),(c6+1));
+ }
+- S3(c2,N-1,M-1);
+- S5(c2,N-1,M-1);
++ S3(c2,(N-1),(M-1));
++ S5(c2,(N-1),(M-1));
+ }
+ }
+ if (M == 2) {
+ for (c2=2;c2<=O-1;c2++) {
+ S1(c2,2,2);
+ for (c4=3;c4<=N-1;c4++) {
+- S2(c2,c4-1,2);
++ S2(c2,(c4-1),2);
+ S1(c2,c4,2);
+ }
+- S2(c2,N-1,2);
++ S2(c2,(N-1),2);
+ }
+ }
+ }
+diff --git a/test/reservoir/pingali1.c b/test/reservoir/pingali1.c
+index 505df8d..5b790c0 100644
+--- test/reservoir/pingali1.c
++++ test/reservoir/pingali1.c
+@@ -1,14 +1,14 @@
+-/* Generated from /home/skimo/git/cloog/test/./reservoir/pingali1.cloog by CLooG 0.14.0-225-g6e2d019 gmp bits in 0.01s. */
++/* Generated from ./reservoir/pingali1.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ if ((M >= 1) && (N >= 1)) {
+ if (N >= 2) {
+ for (c2=1;c2<=M;c2++) {
+ S2(c2,1);
+ for (c4=3;c4<=2*N-1;c4++) {
+ for (c6=max(1,c4-N);c6<=floord(c4-1,2);c6++) {
+- S1(c2,c4-c6,c6);
++ S1(c2,(c4-c6),c6);
+ }
+ if ((c4+1)%2 == 0) {
+- S2(c2,(c4+1)/2);
++ S2(c2,((c4+1)/2));
+ }
+ }
+ }
+diff --git a/test/reservoir/pingali5.c b/test/reservoir/pingali5.c
+index 1b2c415..8da6ad6 100644
+--- test/reservoir/pingali5.c
++++ test/reservoir/pingali5.c
+@@ -1,21 +1,21 @@
+-/* Generated from /home/skimo/git/cloog/test/./reservoir/pingali5.cloog by CLooG 0.14.0-225-g6e2d019 gmp bits in 0.02s. */
++/* Generated from ./reservoir/pingali5.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.01s. */
+ if (M >= 2) {
+ for (c2=3;c2<=2*M-3;c2++) {
+ for (c4=ceild(c2+3,2);c4<=M;c4++) {
+ for (i=ceild(c2+1,2);i<=min(c2-1,c4-1);i++) {
+- S1(i,c2-i,c4);
++ S1(i,(c2-i),c4);
+ }
+ }
+ for (c4=max(1,c2-M);c4<=floord(c2-1,2);c4++) {
+- S2(c2-c4,c4);
++ S2((c2-c4),c4);
+ }
+ for (c4=ceild(c2+3,2);c4<=M;c4++) {
+ for (i=ceild(c2+1,2);i<=min(c2-1,c4-1);i++) {
+- S3(i,c2-i,c4);
++ S3(i,(c2-i),c4);
+ }
+ }
+ }
+ for (c2=max(M+1,2*M-2);c2<=2*M-1;c2++) {
+- S2(M,c2-M);
++ S2(M,(c2-M));
+ }
+ }
+diff --git a/test/reservoir/pingali6.c b/test/reservoir/pingali6.c
+index 5ce4a85..08765c1 100644
+--- test/reservoir/pingali6.c
++++ test/reservoir/pingali6.c
+@@ -1,29 +1,29 @@
+-/* Generated from ../../../git/cloog/test/./reservoir/pingali6.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.04s. */
++/* Generated from ./reservoir/pingali6.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.01s. */
+ if (N >= 3) {
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+- S1(1,c4,c6) ;
++ S1(1,c4,c6);
+ }
+ }
+ for (c2=3;c2<=2*M;c2++) {
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ if (c2%2 == 0) {
+- S1(c2/2,c4,c6) ;
++ S1((c2/2),c4,c6);
+ }
+ }
+ }
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ if ((c2+1)%2 == 0) {
+- S2((c2-1)/2,c4,c6) ;
++ S2(((c2-1)/2),c4,c6);
+ }
+ }
+ }
+ }
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+- S2(M,c4,c6) ;
++ S2(M,c4,c6);
+ }
+ }
+ }
+diff --git a/test/reservoir/stride.c b/test/reservoir/stride.c
+index e22c74b..bfbabff 100644
+--- test/reservoir/stride.c
++++ test/reservoir/stride.c
+@@ -1,6 +1,6 @@
+-/* Generated from ../../../git/cloog/test/reservoir/stride.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */
++/* Generated from ./reservoir/stride.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ if (M >= 2) {
+ for (c2=2;c2<=M;c2+=7) {
+- S1(c2,(c2-2)/7) ;
++ S1(c2,((c2-2)/7));
+ }
+ }
+diff --git a/test/reservoir/stride2.c b/test/reservoir/stride2.c
+index 8c2b7bf..4c7c23c 100644
+--- test/reservoir/stride2.c
++++ test/reservoir/stride2.c
+@@ -1,6 +1,6 @@
+-/* Generated from ../../../git/cloog/test/reservoir/stride2.cloog by CLooG 0.16.1-2-g0ae5c85 gmp bits in 0.00s. */
++/* Generated from ./reservoir/stride2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ if (M >= 2) {
+ for (c2=2;c2<=M;c2+=7) {
+- S1(c2,(c2-2)/7);
++ S1(c2,((c2-2)/7));
+ }
+ }
+diff --git a/test/reservoir/tang-xue1.c b/test/reservoir/tang-xue1.c
+index 7dd0610..b555ba6 100644
+--- test/reservoir/tang-xue1.c
++++ test/reservoir/tang-xue1.c
+@@ -1,11 +1,11 @@
+-/* Generated from ../../../git/cloog/test/reservoir/tang-xue1.cloog by CLooG 0.14.0-165-g01eb246 gmp bits in 0.01s. */
++/* Generated from ./reservoir/tang-xue1.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.01s. */
+ for (c2=0;c2<=9;c2++) {
+ for (c4=max(-1,c2-9);c4<=min(4,c2+3);c4++) {
+ for (c6=max(max(1,c2),c2-c4);c6<=min(min(9,c2+1),c2-c4+4);c6++) {
+ for (c8=max(1,-c2+c4+c6);c8<=min(4,-c2+c4+c6+1);c8++) {
+ if (c2%2 == 0) {
+ if (c4%2 == 0) {
+- S1(c2/2,(-c2+c4)/2,-c2+c6,-c4+c8);
++ S1((c2/2),((-c2+c4)/2),(-c2+c6),(-c4+c8));
+ }
+ }
+ }
+diff --git a/test/sor1d.c b/test/sor1d.c
+index da1b5ec..19d807b 100644
+--- test/sor1d.c
++++ test/sor1d.c
+@@ -1,16 +1,16 @@
+-/* Generated from ../../../git/cloog/test/sor1d.cloog by CLooG 0.14.0-278-gcf1f323 gmp bits in 0.11s. */
++/* Generated from ./sor1d.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.13s. */
+ if ((M >= 1) && (N >= 3)) {
+ for (glT1=-1;glT1<=floord(3*M+N-5,100);glT1++) {
+ for (rp1=max(max(0,ceild(100*glT1-2*M-N+5,100)),ceild(100*glT1-N-193,300));rp1<=min(min(floord(glT1+1,3),floord(M,100)),glT1);rp1++) {
+ for (vT1=max(max(100*glT1-100*rp1,200*rp1-3),200*rp1-N+1);vT1<=min(min(min(2*M+N-5,100*glT1-100*rp1+99),200*rp1+N+193),100*glT1-100*rp1+N+95);vT1++) {
+ if (rp1 >= max(1,ceild(vT1-N+7,200))) {
+- S3(glT1-rp1,rp1-1,rp1,100*rp1-1,-200*rp1+vT1+6);
++ S3((glT1-rp1),(rp1-1),rp1,(100*rp1-1),(-200*rp1+vT1+6));
+ }
+ for (vP1=max(max(1,ceild(vT1-N+5,2)),100*rp1);vP1<=min(min(floord(vT1+2,2),M),100*rp1+99);vP1++) {
+- S1(glT1-rp1,rp1,vP1,vT1-2*vP1+4);
++ S1((glT1-rp1),rp1,vP1,(vT1-2*vP1+4));
+ }
+ if (rp1 <= min(floord(M-100,100),floord(vT1-197,200))) {
+- S2(glT1-rp1,rp1,rp1+1,100*rp1+99,-200*rp1+vT1-194);
++ S2((glT1-rp1),rp1,(rp1+1),(100*rp1+99),(-200*rp1+vT1-194));
+ }
+ }
+ }
+diff --git a/test/stride.c b/test/stride.c
+index d2cf8fe..115b083 100644
+--- test/stride.c
++++ test/stride.c
+@@ -1,9 +1,9 @@
+-/* Generated from stride.cloog by CLooG 0.14.0-200-g26bdb56 gmp bits in 0.01s. */
++/* Generated from ./stride.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (c1=3;c1<=100;c1++) {
+ if (c1 == 25) {
+ S1(25);
+ }
+ if (c1%3 == 0) {
+- S2(c1,c1/3);
++ S2(c1,(c1/3));
+ }
+ }
+diff --git a/test/stride2.c b/test/stride2.c
+index 320a2fb..bfc332d 100644
+--- test/stride2.c
++++ test/stride2.c
+@@ -1,7 +1,7 @@
+-/* Generated from stride2.cloog by CLooG 0.14.0-200-g26bdb56 gmp bits in 0.00s. */
++/* Generated from ./stride2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (c1=3;c1<=100;c1+=3) {
+ if (c1 == 27) {
+ S1(27);
+ }
+- S2(c1,c1/3);
++ S2(c1,(c1/3));
+ }
+diff --git a/test/stride3.c b/test/stride3.c
+index c228cb6..9f7b828 100644
+--- test/stride3.c
++++ test/stride3.c
+@@ -1,6 +1,6 @@
+-/* Generated from ../../../git/cloog/test/stride3.cloog by CLooG 0.14.0-291-g5879c32 gmp bits in 0.00s. */
++/* Generated from ./stride3.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ if ((m <= n) && (n >= 1)) {
+ for (p1=max(50,50*m);p1<=50*n;p1+=50) {
+- S1(p1/50);
++ S1((p1/50));
+ }
+ }
+diff --git a/test/thomasset.c b/test/thomasset.c
+index f201f6f..d118308 100644
+--- test/thomasset.c
++++ test/thomasset.c
+@@ -1,4 +1,4 @@
+-/* Generated from /home/skimo/git/cloog/test/thomasset.cloog by CLooG 0.14.0-292-g2bfd6ac gmp bits in 0.04s. */
++/* Generated from ./thomasset.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.02s. */
+ if (n >= 1) {
+ for (c1=0;c1<=floord(n-4,3);c1++) {
+ for (i=3*c1+1;i<=3*c1+3;i++) {
+@@ -25,14 +25,14 @@ if (n >= 1) {
+ if (3*c1 == n-3) {
+ for (i=n-2;i<=n;i++) {
+ if (n%3 == 0) {
+- S1(i,(n-3)/3);
++ S1(i,((n-3)/3));
+ }
+ }
+ }
+ if (c1 >= ceild(n-2,3)) {
+ for (c2=1;c2<=n-1;c2++) {
+ for (j=1;j<=2;j++) {
+- S2(c2+1,j,0,c1,0);
++ S2((c2+1),j,0,c1,0);
+ }
+ }
+ }
+@@ -41,7 +41,7 @@ if (n >= 1) {
+ for (j=max(1,3*c1-n);j<=min(n,3*c1-n+4);j++) {
+ p = max(ceild(3*c1-j,3),ceild(n-2,3));
+ if (p <= min(floord(n,3),floord(3*c1-j+2,3))) {
+- S2(c2+1,j,0,p,c1-p);
++ S2((c2+1),j,0,p,(c1-p));
+ }
+ }
+ }
+diff --git a/test/vasilache.c b/test/vasilache.c
+index fdff031..c5ef6a9 100644
+--- test/vasilache.c
++++ test/vasilache.c
+@@ -1,4 +1,4 @@
+-/* Generated from ../../../git/cloog/test/vasilache.cloog by CLooG 0.14.0-162-g1e599e0 gmp bits in 0.03s. */
++/* Generated from ./vasilache.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.02s. */
+ S1();
+ S2();
+ for (p1=0;p1<=N-1;p1++) {
+@@ -12,14 +12,14 @@ for (p1=0;p1<=N-1;p1++) {
+ for (p5=0;p5<=floord(N-1,32);p5++) {
+ S7(p1,p3,p5,32*p5);
+ for (p7=32*p5+1;p7<=min(N-1,32*p5+31);p7++) {
+- S6(p1,p3,p5,p7-1);
++ S6(p1,p3,p5,(p7-1));
+ S7(p1,p3,p5,p7);
+ }
+ if (p5 >= ceild(N-31,32)) {
+- S6(p1,p3,p5,N-1);
++ S6(p1,p3,p5,(N-1));
+ }
+ if (p5 <= floord(N-32,32)) {
+- S6(p1,p3,p5,32*p5+31);
++ S6(p1,p3,p5,(32*p5+31));
+ }
+ }
+ }
+diff --git a/test/vivien.c b/test/vivien.c
+index d364046..6368e6d 100644
+--- test/vivien.c
++++ test/vivien.c
+@@ -1,8 +1,8 @@
+-/* Generated from /home/skimo/git/cloog/test/vivien.cloog by CLooG 0.14.0-292-g2bfd6ac gmp bits in 0.12s. */
++/* Generated from ./vivien.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.07s. */
+ if (n >= 0) {
+ for (p1=-54*n+4;p1<=4;p1++) {
+ if (p1%2 == 0) {
+- S1((p1-2)/2);
++ S1(((p1-2)/2));
+ }
+ }
+ if (n >= 1) {
+@@ -30,164 +30,164 @@ if (n >= 0) {
+ S3(2);
+ }
+ if ((p1+1)%2 == 0) {
+- S2((p1-3)/2,1);
++ S2(((p1-3)/2),1);
+ }
+ }
+ for (p1=10;p1<=min(2*n+58,4*n-2);p1++) {
+ p2 = ceild(-p1+2,4);
+ if (p2 <= min(floord(-p1+2*n,2),floord(-p1+5,4))) {
+ if (p1%2 == 0) {
+- S4(-p2,(p1+2*p2)/2);
++ S4(-p2,((p1+2*p2)/2));
+ }
+ }
+ if (p1 >= 4*n-4) {
+ if (p1%2 == 0) {
+ for (p3=1;p3<=floord(p1-2*n-2,2);p3++) {
+- S5((p1-2*n)/2,n,p3);
++ S5(((p1-2*n)/2),n,p3);
+ }
+ }
+ }
+ p2 = ceild(-p1+6,4);
+ if (p2 <= min(floord(-p1+2*n,2),floord(-p1+9,4))) {
+ if (p1%2 == 0) {
+- S4(-p2,(p1+2*p2)/2);
++ S4(-p2,((p1+2*p2)/2));
+ }
+ for (p3=1;p3<=-p2;p3++) {
+ if (p1%2 == 0) {
+- S5(-p2+1,(p1+2*p2-2)/2,p3);
++ S5((-p2+1),((p1+2*p2-2)/2),p3);
+ }
+ }
+ }
+ for (p2=ceild(-p1+10,4);p2<=min(-1,floord(-p1+2*n,2));p2++) {
+ if (p1%2 == 0) {
+- S4(-p2,(p1+2*p2)/2);
++ S4(-p2,((p1+2*p2)/2));
+ }
+ if (p1%2 == 0) {
+- S6(-p2+2,(p1+2*p2-4)/2);
++ S6((-p2+2),((p1+2*p2-4)/2));
+ }
+ for (p3=1;p3<=-p2;p3++) {
+ if (p1%2 == 0) {
+- S5(-p2+1,(p1+2*p2-2)/2,p3);
++ S5((-p2+1),((p1+2*p2-2)/2),p3);
+ }
+ }
+ }
+ if ((p1 >= 2*n+4) && (p1 <= 4*n-6)) {
+ if (p1%2 == 0) {
+- S6((p1-2*n+2)/2,n-1);
++ S6(((p1-2*n+2)/2),(n-1));
+ for (p3=1;p3<=floord(p1-2*n-2,2);p3++) {
+- S5((p1-2*n)/2,n,p3);
++ S5(((p1-2*n)/2),n,p3);
+ }
+ }
+ }
+ if (p1 >= 2*n+6) {
+ if (p1%2 == 0) {
+- S6((p1-2*n)/2,n);
++ S6(((p1-2*n)/2),n);
+ }
+ }
+ if (p1 <= 2*n+4) {
+ if (p1%2 == 0) {
+- S6(2,(p1-4)/2);
++ S6(2,((p1-4)/2));
+ }
+ if ((p1+3)%4 == 0) {
+- S3((p1-1)/4);
++ S3(((p1-1)/4));
+ }
+ if (p1%2 == 0) {
+- S1((p1-2)/2);
++ S1(((p1-2)/2));
+ }
+ }
+ if (p1 >= 2*n+5) {
+ if ((p1+3)%4 == 0) {
+- S3((p1-1)/4);
++ S3(((p1-1)/4));
+ }
+ if (p1%2 == 0) {
+- S1((p1-2)/2);
++ S1(((p1-2)/2));
+ }
+ }
+ if (p1 <= 2*n+2) {
+ if (p1%2 == 0) {
+- S6(1,(p1-2)/2);
++ S6(1,((p1-2)/2));
+ }
+ }
+ for (p2=max(1,ceild(p1-2*n-1,2));p2<=floord(p1-3,4);p2++) {
+ if ((p1+1)%2 == 0) {
+- S2((p1-2*p2-1)/2,p2);
++ S2(((p1-2*p2-1)/2),p2);
+ }
+ }
+ }
+ if ((n >= 2) && (n <= 29)) {
+- S2(n,n-1);
++ S2(n,(n-1));
+ }
+ if ((n >= 2) && (n <= 29)) {
+- S1(2*n-1);
++ S1((2*n-1));
+ }
+ if ((n >= 2) && (n <= 28)) {
+ S3(n);
+ }
+ for (p1=max(7,4*n+2);p1<=2*n+58;p1++) {
+ if (p1%2 == 0) {
+- S1((p1-2)/2);
++ S1(((p1-2)/2));
+ }
+ }
+ for (p1=2*n+59;p1<=4*n-2;p1++) {
+ p2 = ceild(-p1+2,4);
+ if (p2 <= min(floord(-p1+2*n,2),floord(-p1+5,4))) {
+ if (p1%2 == 0) {
+- S4(-p2,(p1+2*p2)/2);
++ S4(-p2,((p1+2*p2)/2));
+ }
+ }
+ if (p1 >= 4*n-4) {
+ if (p1%2 == 0) {
+ for (p3=1;p3<=floord(p1-2*n-2,2);p3++) {
+- S5((p1-2*n)/2,n,p3);
++ S5(((p1-2*n)/2),n,p3);
+ }
+ }
+ }
+ p2 = ceild(-p1+6,4);
+ if (p2 <= min(floord(-p1+2*n,2),floord(-p1+9,4))) {
+ if (p1%2 == 0) {
+- S4(-p2,(p1+2*p2)/2);
++ S4(-p2,((p1+2*p2)/2));
+ }
+ for (p3=1;p3<=-p2;p3++) {
+ if (p1%2 == 0) {
+- S5(-p2+1,(p1+2*p2-2)/2,p3);
++ S5((-p2+1),((p1+2*p2-2)/2),p3);
+ }
+ }
+ }
+ for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) {
+ if (p1%2 == 0) {
+- S4(-p2,(p1+2*p2)/2);
++ S4(-p2,((p1+2*p2)/2));
+ }
+ if (p1%2 == 0) {
+- S6(-p2+2,(p1+2*p2-4)/2);
++ S6((-p2+2),((p1+2*p2-4)/2));
+ }
+ for (p3=1;p3<=-p2;p3++) {
+ if (p1%2 == 0) {
+- S5(-p2+1,(p1+2*p2-2)/2,p3);
++ S5((-p2+1),((p1+2*p2-2)/2),p3);
+ }
+ }
+ }
+ if (p1 <= 4*n-6) {
+ if (p1%2 == 0) {
+- S6((p1-2*n+2)/2,n-1);
++ S6(((p1-2*n+2)/2),(n-1));
+ for (p3=1;p3<=floord(p1-2*n-2,2);p3++) {
+- S5((p1-2*n)/2,n,p3);
++ S5(((p1-2*n)/2),n,p3);
+ }
+ }
+ }
+ if (p1%2 == 0) {
+- S6((p1-2*n)/2,n);
++ S6(((p1-2*n)/2),n);
+ }
+ if ((p1+3)%4 == 0) {
+- S3((p1-1)/4);
++ S3(((p1-1)/4));
+ }
+ for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) {
+ if ((p1+1)%2 == 0) {
+- S2((p1-2*p2-1)/2,p2);
++ S2(((p1-2*p2-1)/2),p2);
+ }
+ }
+ }
+ if (n >= 30) {
+- S2(n,n-1);
++ S2(n,(n-1));
+ }
+ if (n >= 29) {
+ S3(n);
+diff --git a/test/vivien2.c b/test/vivien2.c
+index d4f1f04..91a0292 100644
+--- test/vivien2.c
++++ test/vivien2.c
+@@ -1,7 +1,7 @@
+-/* Generated from /home/skimo/git/cloog/test/vivien2.cloog by CLooG 0.14.0-292-g2bfd6ac gmp bits in 0.10s. */
++/* Generated from ./vivien2.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.08s. */
+ for (p1=-54*n+4;p1<=4;p1++) {
+ if (p1%2 == 0) {
+- S1((p1-2)/2);
++ S1(((p1-2)/2));
+ }
+ }
+ S3(1);
+@@ -22,87 +22,87 @@ for (p1=7;p1<=9;p1++) {
+ S3(2);
+ }
+ if ((p1+1)%2 == 0) {
+- S2((p1-3)/2,1);
++ S2(((p1-3)/2),1);
+ }
+ }
+ for (p1=10;p1<=2*n+58;p1++) {
+ p2 = ceild(-p1+2,4);
+ if (p2 <= min(floord(-p1+2*n,2),floord(-p1+5,4))) {
+ if (p1%2 == 0) {
+- S4(-p2,(p1+2*p2)/2);
++ S4(-p2,((p1+2*p2)/2));
+ }
+ }
+ if (p1 >= 4*n-4) {
+ if (p1%2 == 0) {
+ for (p3=1;p3<=floord(p1-2*n-2,2);p3++) {
+- S5((p1-2*n)/2,n,p3);
++ S5(((p1-2*n)/2),n,p3);
+ }
+ }
+ }
+ p2 = ceild(-p1+6,4);
+ if (p2 <= min(floord(-p1+2*n,2),floord(-p1+9,4))) {
+ if (p1%2 == 0) {
+- S4(-p2,(p1+2*p2)/2);
++ S4(-p2,((p1+2*p2)/2));
+ }
+ for (p3=1;p3<=-p2;p3++) {
+ if (p1%2 == 0) {
+- S5(-p2+1,(p1+2*p2-2)/2,p3);
++ S5((-p2+1),((p1+2*p2-2)/2),p3);
+ }
+ }
+ }
+ for (p2=ceild(-p1+10,4);p2<=min(-1,floord(-p1+2*n,2));p2++) {
+ if (p1%2 == 0) {
+- S4(-p2,(p1+2*p2)/2);
++ S4(-p2,((p1+2*p2)/2));
+ }
+ if (p1%2 == 0) {
+- S6(-p2+2,(p1+2*p2-4)/2);
++ S6((-p2+2),((p1+2*p2-4)/2));
+ }
+ for (p3=1;p3<=-p2;p3++) {
+ if (p1%2 == 0) {
+- S5(-p2+1,(p1+2*p2-2)/2,p3);
++ S5((-p2+1),((p1+2*p2-2)/2),p3);
+ }
+ }
+ }
+ if ((p1 >= 2*n+4) && (p1 <= 4*n-6)) {
+ if (p1%2 == 0) {
+- S6((p1-2*n+2)/2,n-1);
++ S6(((p1-2*n+2)/2),(n-1));
+ for (p3=1;p3<=floord(p1-2*n-2,2);p3++) {
+- S5((p1-2*n)/2,n,p3);
++ S5(((p1-2*n)/2),n,p3);
+ }
+ }
+ }
+ if (p1 >= 2*n+6) {
+ if (p1%2 == 0) {
+- S6((p1-2*n)/2,n);
++ S6(((p1-2*n)/2),n);
+ }
+ }
+ if (p1 <= 2*n+4) {
+ if (p1%2 == 0) {
+- S6(2,(p1-4)/2);
++ S6(2,((p1-4)/2));
+ }
+ if ((p1+3)%4 == 0) {
+- S3((p1-1)/4);
++ S3(((p1-1)/4));
+ }
+ if (p1%2 == 0) {
+- S1((p1-2)/2);
++ S1(((p1-2)/2));
+ }
+ }
+ if (p1 >= 2*n+5) {
+ if ((p1+3)%4 == 0) {
+- S3((p1-1)/4);
++ S3(((p1-1)/4));
+ }
+ if (p1%2 == 0) {
+- S1((p1-2)/2);
++ S1(((p1-2)/2));
+ }
+ }
+ if (p1 <= 2*n+2) {
+ if (p1%2 == 0) {
+- S6(1,(p1-2)/2);
++ S6(1,((p1-2)/2));
+ }
+ }
+ for (p2=max(1,ceild(p1-2*n-1,2));p2<=floord(p1-3,4);p2++) {
+ if ((p1+1)%2 == 0) {
+- S2((p1-2*p2-1)/2,p2);
++ S2(((p1-2*p2-1)/2),p2);
+ }
+ }
+ }
+@@ -110,59 +110,59 @@ for (p1=2*n+59;p1<=4*n-2;p1++) {
+ p2 = ceild(-p1+2,4);
+ if (p2 <= min(floord(-p1+2*n,2),floord(-p1+5,4))) {
+ if (p1%2 == 0) {
+- S4(-p2,(p1+2*p2)/2);
++ S4(-p2,((p1+2*p2)/2));
+ }
+ }
+ if (p1 >= 4*n-4) {
+ if (p1%2 == 0) {
+ for (p3=1;p3<=floord(p1-2*n-2,2);p3++) {
+- S5((p1-2*n)/2,n,p3);
++ S5(((p1-2*n)/2),n,p3);
+ }
+ }
+ }
+ p2 = ceild(-p1+6,4);
+ if (p2 <= min(floord(-p1+2*n,2),floord(-p1+9,4))) {
+ if (p1%2 == 0) {
+- S4(-p2,(p1+2*p2)/2);
++ S4(-p2,((p1+2*p2)/2));
+ }
+ for (p3=1;p3<=-p2;p3++) {
+ if (p1%2 == 0) {
+- S5(-p2+1,(p1+2*p2-2)/2,p3);
++ S5((-p2+1),((p1+2*p2-2)/2),p3);
+ }
+ }
+ }
+ for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) {
+ if (p1%2 == 0) {
+- S4(-p2,(p1+2*p2)/2);
++ S4(-p2,((p1+2*p2)/2));
+ }
+ if (p1%2 == 0) {
+- S6(-p2+2,(p1+2*p2-4)/2);
++ S6((-p2+2),((p1+2*p2-4)/2));
+ }
+ for (p3=1;p3<=-p2;p3++) {
+ if (p1%2 == 0) {
+- S5(-p2+1,(p1+2*p2-2)/2,p3);
++ S5((-p2+1),((p1+2*p2-2)/2),p3);
+ }
+ }
+ }
+ if (p1 <= 4*n-6) {
+ if (p1%2 == 0) {
+- S6((p1-2*n+2)/2,n-1);
++ S6(((p1-2*n+2)/2),(n-1));
+ for (p3=1;p3<=floord(p1-2*n-2,2);p3++) {
+- S5((p1-2*n)/2,n,p3);
++ S5(((p1-2*n)/2),n,p3);
+ }
+ }
+ }
+ if (p1%2 == 0) {
+- S6((p1-2*n)/2,n);
++ S6(((p1-2*n)/2),n);
+ }
+ if ((p1+3)%4 == 0) {
+- S3((p1-1)/4);
++ S3(((p1-1)/4));
+ }
+ for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) {
+ if ((p1+1)%2 == 0) {
+- S2((p1-2*p2-1)/2,p2);
++ S2(((p1-2*p2-1)/2),p2);
+ }
+ }
+ }
+-S2(n,n-1);
++S2(n,(n-1));
+ S3(n);
+diff --git a/test/walters.c b/test/walters.c
+index fdb2183..221dd80 100644
+--- test/walters.c
++++ test/walters.c
+@@ -1,21 +1,21 @@
+-/* Generated from ../../../git/cloog/test/walters.cloog by CLooG 0.16.1-3-g354eed5 gmp bits in 0.01s. */
++/* Generated from ./walters.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ S2(1,0,1,0);
+ S4(1,0,1,0);
+ S3(2,0,1,1);
+ S4(2,0,1,1);
+ for (i=3;i<=10;i++) {
+ if ((i+1)%3 == 0) {
+- S3(i,(i-2)/3,(i+1)/3,(i+1)/3);
++ S3(i,((i-2)/3),((i+1)/3),((i+1)/3));
+ }
+ if ((i+2)%3 == 0) {
+- S2(i,(i-1)/3,(i+2)/3,(i-1)/3);
++ S2(i,((i-1)/3),((i+2)/3),((i-1)/3));
+ }
+ if (i%3 == 0) {
+- S1(i,i/3,i/3,i/3);
++ S1(i,(i/3),(i/3),(i/3));
+ }
+ div36 = floord(i,3);
+ div37 = ceild(2*i-3*div36-1,3);
+ if (div37 <= floord(i+2,3)) {
+- S4(i,div36,div37,i-div36-div37);
++ S4(i,div36,div37,(i-div36-div37));
+ }
+ }
+diff --git a/test/walters3.c b/test/walters3.c
+index fc922d6..f9128a8 100644
+--- test/walters3.c
++++ test/walters3.c
+@@ -1,8 +1,8 @@
+-/* Generated from ../../../git/cloog/test/walters3.cloog by CLooG 0.14.0-338-g99c7504 gmp bits in 0.00s. */
++/* Generated from ./walters3.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ for (j=2;j<=8;j++) {
+ if (j%2 == 0) {
+- S1(j,j/2,j/2);
+- S2(j,j/2,j/2);
++ S1(j,(j/2),(j/2));
++ S2(j,(j/2),(j/2));
+ }
+ }
+ S2(10,5,5);
+diff --git a/test/wavefront.c b/test/wavefront.c
+index c6d2868..c4ee686 100644
+--- test/wavefront.c
++++ test/wavefront.c
+@@ -1,8 +1,8 @@
+-/* Generated from ../../../git/cloog/test/wavefront.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */
++/* Generated from ./wavefront.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.00s. */
+ if ((m >= 1) && (n >= 1)) {
+ for (c1=2;c1<=n+m;c1++) {
+ for (c2=max(1,c1-m);c2<=min(n,c1-1);c2++) {
+- S1(c2,c1-c2) ;
++ S1(c2,(c1-c2));
+ }
+ }
+ }
+--
+1.9.3
+
Added: trunk/dports/devel/cloog/files/0004-cloog_domain_cube-reimplement-using-documented-funct.patch
===================================================================
--- trunk/dports/devel/cloog/files/0004-cloog_domain_cube-reimplement-using-documented-funct.patch (rev 0)
+++ trunk/dports/devel/cloog/files/0004-cloog_domain_cube-reimplement-using-documented-funct.patch 2014-05-28 04:50:58 UTC (rev 120437)
@@ -0,0 +1,54 @@
+From b561f860f2fefa84459750d576807d214e4aad97 Mon Sep 17 00:00:00 2001
+From: Sven Verdoolaege <skimo at kotnet.org>
+Date: Sun, 12 Jan 2014 14:35:00 +0100
+Subject: [PATCH 04/10] cloog_domain_cube: reimplement using documented
+ functions
+
+The original implementation used the undocumented
+isl_basic_set_interval function, which will be removed
+in the next release of isl.
+
+Signed-off-by: Sven Verdoolaege <skimo at kotnet.org>
+Signed-off-by: Cedric Bastoul <cedric.bastoul at unistra.fr>
+---
+ source/isl/domain.c | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/source/isl/domain.c b/source/isl/domain.c
+index d11da7b..620584d 100644
+--- source/isl/domain.c
++++ source/isl/domain.c
+@@ -1389,20 +1389,20 @@ CloogDomain *cloog_domain_cube(CloogState *state,
+ int dim, cloog_int_t min, cloog_int_t max)
+ {
+ int i;
+- struct isl_basic_set *cube;
+- struct isl_basic_set *interval;
+- struct isl_basic_set_list *list;
++ isl_space *space;
++ isl_set *cube;
+
+ if (dim == 0)
+ return cloog_domain_universe(state, dim);
+
+- interval = isl_basic_set_interval(state->backend->ctx, min, max);
+- list = isl_basic_set_list_alloc(state->backend->ctx, dim);
+- for (i = 0; i < dim; ++i)
+- list = isl_basic_set_list_add(list, isl_basic_set_copy(interval));
+- isl_basic_set_free(interval);
+- cube = isl_basic_set_list_product(list);
+- return cloog_domain_from_isl_set(isl_set_from_basic_set(cube));
++ space = isl_space_set_alloc(state->backend->ctx, 0, dim);
++ cube = isl_set_universe(space);
++ for (i = 0; i < dim; ++i) {
++ cube = isl_set_lower_bound(cube, isl_dim_set, i, min);
++ cube = isl_set_upper_bound(cube, isl_dim_set, i, max);
++ }
++
++ return cloog_domain_from_isl_set(cube);
+ }
+
+
+--
+1.9.3
+
Added: trunk/dports/devel/cloog/files/0007-expose-clast_pprint_expr.patch
===================================================================
--- trunk/dports/devel/cloog/files/0007-expose-clast_pprint_expr.patch (rev 0)
+++ trunk/dports/devel/cloog/files/0007-expose-clast_pprint_expr.patch 2014-05-28 04:50:58 UTC (rev 120437)
@@ -0,0 +1,41 @@
+From a31cbdab3d9994c3371ba4ad5996fe01dc314229 Mon Sep 17 00:00:00 2001
+From: Uday Bondhugula <udayreddy at gmail.com>
+Date: Tue, 14 Jan 2014 21:41:16 +0530
+Subject: [PATCH 07/10] expose clast_pprint_expr
+
+Signed-off-by: Uday Bondhugula <udayreddy at gmail.com>
+Signed-off-by: Cedric Bastoul <cedric.bastoul at unistra.fr>
+---
+ include/cloog/pprint.h | 1 +
+ source/pprint.c | 6 ++++++
+ 2 files changed, 7 insertions(+)
+
+diff --git a/include/cloog/pprint.h b/include/cloog/pprint.h
+index 55e2b5e..627e929 100644
+--- include/cloog/pprint.h
++++ include/cloog/pprint.h
+@@ -60,6 +60,7 @@ extern "C"
+ void clast_pprint(FILE *foo, struct clast_stmt *root, int indent,
+ CloogOptions *options);
+
++void clast_pprint_expr(struct cloogoptions *i, FILE *dst, struct clast_expr *e);
+
+ #if defined(__cplusplus)
+ }
+diff --git a/source/pprint.c b/source/pprint.c
+index 83fcc32..ab4b22f 100644
+--- source/pprint.c
++++ source/pprint.c
+@@ -626,3 +626,9 @@ void clast_pprint(FILE *foo, struct clast_stmt *root,
+ {
+ pprint_stmt_list(options, foo, indent, root);
+ }
++
++
++void clast_pprint_expr(struct cloogoptions *i, FILE *dst, struct clast_expr *e)
++{
++ pprint_expr(i, dst, e);
++}
+--
+1.9.3
+
Added: trunk/dports/devel/cloog/files/0009-Use-isl_val-instead-of-isl_int.patch
===================================================================
--- trunk/dports/devel/cloog/files/0009-Use-isl_val-instead-of-isl_int.patch (rev 0)
+++ trunk/dports/devel/cloog/files/0009-Use-isl_val-instead-of-isl_int.patch 2014-05-28 04:50:58 UTC (rev 120437)
@@ -0,0 +1,1109 @@
+From 2d8b7c6b43ee46fee978a57fa6877de49675f357 Mon Sep 17 00:00:00 2001
+From: Taj Muhammad Khan <taj.khan at lri.fr>
+Date: Thu, 5 Dec 2013 07:55:16 +0530
+Subject: [PATCH 09/10] Use isl_val instead of isl_int
+
+isl is moving from the macro-based isl_int to a more generic
+integer type isl_val, so CLooG does with this patch.
+Authors are Uday Bondhugula, Taj Muhammad Khan and Cedric Bastoul.
+---
+ include/cloog/isl/constraintset.h | 6 +
+ source/isl/constraints.c | 247 +++++++++++++++++++---------
+ source/isl/domain.c | 329 ++++++++++++++++++++++++--------------
+ 3 files changed, 389 insertions(+), 193 deletions(-)
+
+diff --git a/include/cloog/isl/constraintset.h b/include/cloog/isl/constraintset.h
+index c3c2eed..5d48cdb 100644
+--- include/cloog/isl/constraintset.h
++++ include/cloog/isl/constraintset.h
+@@ -27,6 +27,12 @@ CloogConstraintSet *cloog_constraint_set_from_isl_basic_set(struct isl_basic_set
+ CloogConstraint *cloog_constraint_from_isl_constraint(struct isl_constraint *constraint);
+ isl_constraint *cloog_constraint_to_isl(CloogConstraint *constraint);
+
++__isl_give isl_val *cloog_int_to_isl_val(isl_ctx* ctx, cloog_int_t c);
++void isl_val_to_cloog_int(__isl_keep isl_val *val, cloog_int_t *cint);
++
++__isl_give isl_val *cloog_constraint_coefficient_get_val(CloogConstraint *constraint,
++ int var);
++
+ #if defined(__cplusplus)
+ }
+ #endif
+diff --git a/source/isl/constraints.c b/source/isl/constraints.c
+index e860000..73d72df 100644
+--- source/isl/constraints.c
++++ source/isl/constraints.c
+@@ -5,11 +5,51 @@
+ #include <cloog/isl/backend.h>
+ #include <isl/aff.h>
+ #include <isl/set.h>
++#include <isl/val.h>
++#include <isl/val_gmp.h>
+
+
+ #define ALLOC(type) (type*)malloc(sizeof(type))
+ #define ALLOCN(type,n) (type*)malloc((n)*sizeof(type))
+
++__isl_give isl_val *cloog_int_to_isl_val(isl_ctx* ctx, cloog_int_t c)
++{
++ isl_val *v;
++#if defined(CLOOG_INT_INT)
++ v = isl_val_int_from_si(ctx, c);
++#elif defined(CLOOG_INT_LONG)
++ v = isl_val_int_from_si(ctx, c);
++#elif defined(CLOOG_INT_LONG_LONG)
++ v = isl_val_int_from_si(ctx, c);
++#elif defined(CLOOG_INT_GMP)
++ v = isl_val_int_from_gmp(ctx, c);
++#else
++#error "No integer type defined"
++#endif
++ return v;
++}
++
++/*
++ * CLooG'll be dealing in integers so we expect numerator/1 form
++ * from isl_val. Thus get numerator to assign to cloog_int
++ */
++void isl_val_to_cloog_int(__isl_keep isl_val *val, cloog_int_t *cint)
++{
++ assert(isl_val_is_int(val));
++#if defined(CLOOG_INT_INT)
++ *cint = isl_val_get_num_si(val);
++#elif defined(CLOOG_INT_LONG)
++ *cint = isl_val_get_num_si(val);
++#elif defined(CLOOG_INT_LONG_LONG)
++ *cint = isl_val_get_num_si(val);
++#elif defined(CLOOG_INT_GMP)
++ isl_val_get_num_gmp(val, *cint);
++#else
++#error "No integer type defined"
++#endif
++}
++
++
+ CloogConstraintSet *cloog_constraint_set_from_isl_basic_set(struct isl_basic_set *bset)
+ {
+ return (CloogConstraintSet *)bset;
+@@ -266,53 +306,65 @@ int cloog_equal_count(CloogEqualities *equal)
+ static int cloog_constraint_equal_type(CloogConstraint *cc, int level)
+ {
+ int i;
+- isl_int c;
++ isl_val *c;
+ int type = EQTYPE_NONE;
+ struct isl_constraint *constraint = cloog_constraint_to_isl(cc);
+
+- isl_int_init(c);
+- isl_constraint_get_constant(constraint, &c);
+- if (!isl_int_is_zero(c))
++ c = isl_constraint_get_constant_val(constraint);
++ if (!isl_val_is_zero(c))
+ type = EQTYPE_CONSTANT;
+- isl_constraint_get_coefficient(constraint, isl_dim_set, level - 1, &c);
+- if (!isl_int_is_one(c) && !isl_int_is_negone(c))
++ isl_val_free(c);
++ c = isl_constraint_get_coefficient_val(constraint, isl_dim_set, level - 1);
++ if (!isl_val_is_one(c) && !isl_val_is_negone(c))
+ type = EQTYPE_EXAFFINE;
++ isl_val_free(c);
+ for (i = 0; i < isl_constraint_dim(constraint, isl_dim_param); ++i) {
+- isl_constraint_get_coefficient(constraint, isl_dim_param, i, &c);
+- if (isl_int_is_zero(c))
++ c = isl_constraint_get_coefficient_val(constraint, isl_dim_param, i);
++ if (isl_val_is_zero(c)){
++ isl_val_free(c);
+ continue;
+- if ((!isl_int_is_one(c) && !isl_int_is_negone(c)) ||
++ }
++ if ((!isl_val_is_one(c) && !isl_val_is_negone(c)) ||
+ type != EQTYPE_NONE) {
+ type = EQTYPE_EXAFFINE;
++ isl_val_free(c);
+ break;
+ }
+ type = EQTYPE_PUREITEM;
++ isl_val_free(c);
+ }
+ for (i = 0; i < isl_constraint_dim(constraint, isl_dim_set); ++i) {
+ if (i == level - 1)
+ continue;
+- isl_constraint_get_coefficient(constraint, isl_dim_set, i, &c);
+- if (isl_int_is_zero(c))
++ c = isl_constraint_get_coefficient_val(constraint, isl_dim_set, i);
++ if (isl_val_is_zero(c)){
++ isl_val_free(c);
+ continue;
+- if ((!isl_int_is_one(c) && !isl_int_is_negone(c)) ||
++ }
++ if ((!isl_val_is_one(c) && !isl_val_is_negone(c)) ||
+ type != EQTYPE_NONE) {
+ type = EQTYPE_EXAFFINE;
++ isl_val_free(c);
+ break;
+ }
+ type = EQTYPE_PUREITEM;
++ isl_val_free(c);
+ }
+ for (i = 0; i < isl_constraint_dim(constraint, isl_dim_div); ++i) {
+- isl_constraint_get_coefficient(constraint, isl_dim_div, i, &c);
+- if (isl_int_is_zero(c))
++ c = isl_constraint_get_coefficient_val(constraint, isl_dim_div, i);
++ if (isl_val_is_zero(c)){
++ isl_val_free(c);
+ continue;
+- if ((!isl_int_is_one(c) && !isl_int_is_negone(c)) ||
++ }
++ if ((!isl_val_is_one(c) && !isl_val_is_negone(c)) ||
+ type != EQTYPE_NONE) {
+ type = EQTYPE_EXAFFINE;
++ isl_val_free(c);
+ break;
+ }
+ type = EQTYPE_PUREITEM;
++ isl_val_free(c);
+ }
+- isl_int_clear(c);
+
+ if (type == EQTYPE_NONE)
+ type = EQTYPE_CONSTANT;
+@@ -447,27 +499,31 @@ static struct clast_expr *div_expr(CloogConstraint *constraint, int pos,
+ {
+ int i, nb_elts;
+ unsigned dim = cloog_constraint_total_dimension(constraint);
+- cloog_int_t c;
++ isl_val *c;
+ struct clast_reduction *r;
+ struct clast_expr *e = NULL;
+ isl_aff *div;
++ cloog_int_t cint;
+
++ cloog_int_init(cint);
+ div = isl_constraint_get_div(cloog_constraint_to_isl(constraint), pos);
+
+- cloog_int_init(c);
+ for (i = 0, nb_elts = 0; i < dim; ++i) {
+ struct cloog_isl_dim dim;
+
+ dim = constraint_cloog_dim_to_isl_dim(constraint, i);
+ if (dim.type == isl_dim_set)
+ dim.type = isl_dim_in;
+- isl_aff_get_coefficient(div, dim.type, dim.pos, &c);
+- if (!cloog_int_is_zero(c))
++ c = isl_aff_get_coefficient_val(div, dim.type, dim.pos);
++ if (!isl_val_is_zero(c))
+ ++nb_elts;
++
++ isl_val_free(c);
+ }
+- isl_aff_get_constant(div, &c);
+- if (!cloog_int_is_zero(c))
++ c = isl_aff_get_constant_val(div);
++ if (!isl_val_is_zero(c))
+ ++nb_elts;
++ isl_val_free(c);
+
+ r = new_clast_reduction(clast_red_sum, nb_elts);
+ for (i = 0, nb_elts = 0; i < dim; ++i) {
+@@ -477,22 +533,35 @@ static struct clast_expr *div_expr(CloogConstraint *constraint, int pos,
+ dim = constraint_cloog_dim_to_isl_dim(constraint, i);
+ if (dim.type == isl_dim_set)
+ dim.type = isl_dim_in;
+- isl_aff_get_coefficient(div, dim.type, dim.pos, &c);
+- if (cloog_int_is_zero(c))
++ c = isl_aff_get_coefficient_val(div, dim.type, dim.pos);
++ if (isl_val_is_zero(c)){
++ isl_val_free(c);
+ continue;
++ }
+
+ v = cloog_constraint_variable_expr(constraint, 1 + i, names);
+
+- r->elts[nb_elts++] = &new_clast_term(c, v)->expr;
++ /* We are interested only in the numerator */
++ cloog_int_set_si(cint, isl_val_get_num_si(c));
++ r->elts[nb_elts++] = &new_clast_term(cint, v)->expr;
++
++ isl_val_free(c);
++ }
++
++ c = isl_aff_get_constant_val(div);
++ if (!isl_val_is_zero(c)) {
++ /* We are interested only in the numerator */
++ cloog_int_set_si(cint, isl_val_get_num_si(c));
++ r->elts[nb_elts++] = &new_clast_term(cint, NULL)->expr;
+ }
+- isl_aff_get_constant(div, &c);
+- if (!cloog_int_is_zero(c))
+- r->elts[nb_elts++] = &new_clast_term(c, NULL)->expr;
++ isl_val_free(c);
+
+- isl_aff_get_denominator(div, &c);
+- e = &new_clast_binary(clast_bin_fdiv, &r->expr, c)->expr;
++ c = isl_aff_get_denominator_val(div);
++ isl_val_to_cloog_int(c, &cint);
++ isl_val_free(c);
++ e = &new_clast_binary(clast_bin_fdiv, &r->expr, cint)->expr;
+
+- cloog_int_clear(c);
++ cloog_int_clear(cint);
+
+ isl_aff_free(div);
+
+@@ -529,37 +598,34 @@ struct clast_expr *cloog_constraint_variable_expr(CloogConstraint *constraint,
+ */
+ int cloog_constraint_involves(CloogConstraint *constraint, int v)
+ {
+- isl_int c;
++ isl_val *c;
+ int res;
+
+- isl_int_init(c);
+- cloog_constraint_coefficient_get(constraint, v, &c);
+- res = !isl_int_is_zero(c);
+- isl_int_clear(c);
++ c = cloog_constraint_coefficient_get_val(constraint, v);
++ res = !isl_val_is_zero(c);
++ isl_val_free(c);
+ return res;
+ }
+
+ int cloog_constraint_is_lower_bound(CloogConstraint *constraint, int v)
+ {
+- isl_int c;
++ isl_val *c;
+ int res;
+
+- isl_int_init(c);
+- cloog_constraint_coefficient_get(constraint, v, &c);
+- res = isl_int_is_pos(c);
+- isl_int_clear(c);
++ c = cloog_constraint_coefficient_get_val(constraint, v);
++ res = isl_val_is_pos(c);
++ isl_val_free(c);
+ return res;
+ }
+
+ int cloog_constraint_is_upper_bound(CloogConstraint *constraint, int v)
+ {
+- isl_int c;
++ isl_val *c;
+ int res;
+
+- isl_int_init(c);
+- cloog_constraint_coefficient_get(constraint, v, &c);
+- res = isl_int_is_neg(c);
+- isl_int_clear(c);
++ c = cloog_constraint_coefficient_get_val(constraint, v);
++ res = isl_val_is_neg(c);
++ isl_val_free(c);
+ return res;
+ }
+
+@@ -585,15 +651,37 @@ void cloog_constraint_coefficient_get(CloogConstraint *constraint,
+ {
+ struct cloog_isl_dim dim;
+ isl_constraint *c;
++ isl_val *ival;
++
++ if (!constraint)
++ val = NULL;
++
++ dim = constraint_cloog_dim_to_isl_dim(constraint, var);
++ c = cloog_constraint_to_isl(constraint);
++ ival = isl_constraint_get_coefficient_val(c, dim.type, dim.pos);
++
++ isl_val_to_cloog_int(ival, val);
++ isl_val_free(ival);
++}
++
++isl_val *cloog_constraint_coefficient_get_val(CloogConstraint *constraint,
++ int var)
++{
++ struct cloog_isl_dim dim;
++ isl_constraint *c;
++ isl_val *val;
+
+ if (!constraint)
+- return;
++ return NULL;
+
+ dim = constraint_cloog_dim_to_isl_dim(constraint, var);
+ c = cloog_constraint_to_isl(constraint);
+- isl_constraint_get_coefficient(c, dim.type, dim.pos, val);
++ val = isl_constraint_get_coefficient_val(c, dim.type, dim.pos);
++ return val;
+ }
+
++
++
+ void cloog_constraint_coefficient_set(CloogConstraint *constraint,
+ int var, cloog_int_t val)
+ {
+@@ -604,14 +692,26 @@ void cloog_constraint_coefficient_set(CloogConstraint *constraint,
+
+ dim = constraint_cloog_dim_to_isl_dim(constraint, var);
+ c = cloog_constraint_to_isl(constraint);
+- isl_constraint_set_coefficient(c, dim.type, dim.pos, val);
++ isl_constraint_set_coefficient_val(c, dim.type, dim.pos,
++ cloog_int_to_isl_val(isl_constraint_get_ctx(c), val));
+ }
+
+ void cloog_constraint_constant_get(CloogConstraint *constraint, cloog_int_t *val)
+ {
+- isl_constraint_get_constant(cloog_constraint_to_isl(constraint), val);
++ isl_val *ival;
++ ival = isl_constraint_get_constant_val(cloog_constraint_to_isl(constraint));
++ isl_val_to_cloog_int(ival, val);
++ isl_val_free(ival);
+ }
+
++
++__isl_give isl_val *cloog_constraint_constant_get_val(CloogConstraint *constraint)
++{
++ return isl_constraint_get_constant_val(cloog_constraint_to_isl(constraint));
++}
++
++
++
+ /**
+ * Copy the coefficient of constraint c into dst in PolyLib order,
+ * i.e., first the coefficients of the variables, then the coefficients
+@@ -700,15 +800,11 @@ CloogConstraintSet *cloog_constraint_set_for_reduction(CloogConstraint *upper,
+
+ static int add_constant_term(CloogConstraint *c, void *user)
+ {
+- isl_int *bound = (isl_int *)user;
+- isl_int v;
+-
+- isl_int_init(v);
+-
+- cloog_constraint_constant_get(c, &v);
+- isl_int_add(*bound, *bound, v);
++ isl_val **bound = (isl_val **)user;
++ isl_val *v;
+
+- isl_int_clear(v);
++ v = cloog_constraint_constant_get_val(c);
++ *bound = isl_val_add(*bound, v);
+
+ return 0;
+ }
+@@ -822,11 +918,14 @@ CloogConstraintSet *cloog_constraint_set_reduce(CloogConstraintSet *constraints,
+ c = isl_constraint_set_coefficient_si(c, isl_dim_set, dim.pos, -1);
+ bset = isl_basic_set_add_constraint(bset, c);
+
+- isl_int_set_si(*bound, 0);
++ cloog_int_set_si(*bound, 0);
++ isl_val *v = cloog_int_to_isl_val(isl_basic_set_get_ctx(bset), *bound);
+ constraints = cloog_constraint_set_from_isl_basic_set(bset);
+ cloog_constraint_set_foreach_constraint(constraints,
+- add_constant_term, bound);
++ add_constant_term, &v);
++ isl_val_to_cloog_int(v, bound); //return the value to bound
+
++ isl_val_free(v);
+ isl_basic_set_free(orig);
+ return cloog_constraint_set_from_isl_basic_set(bset);
+ }
+@@ -896,31 +995,27 @@ static isl_aff *extract_stride_offset(__isl_keep isl_constraint *c,
+ isl_space *dim = isl_constraint_get_space(c);
+ isl_local_space *ls = isl_local_space_from_space(dim);
+ isl_aff *offset = isl_aff_zero_on_domain(ls);
+- isl_int u;
++ isl_val *u;
+ unsigned nparam, nvar;
+
+- isl_int_init(u);
+-
+ nparam = isl_constraint_dim(c, isl_dim_param);
+ nvar = isl_constraint_dim(c, isl_dim_set);
+
+ for (i = 0; i < nparam; ++i) {
+- isl_constraint_get_coefficient(c, isl_dim_param, i, &u);
+- isl_int_mul(u, u, stride->factor);
+- offset = isl_aff_set_coefficient(offset, isl_dim_param, i, u);
++ u = isl_constraint_get_coefficient_val(c, isl_dim_param, i);
++ u = isl_val_mul(u, cloog_int_to_isl_val(isl_constraint_get_ctx(c), stride->factor));
++ offset = isl_aff_set_coefficient_val(offset, isl_dim_param, i, u);
+ }
+ for (i = 0; i < nvar; ++i) {
+ if (i == level - 1)
+ continue;
+- isl_constraint_get_coefficient(c, isl_dim_set, i, &u);
+- isl_int_mul(u, u, stride->factor);
+- offset = isl_aff_set_coefficient(offset, isl_dim_in, i, u);
++ u = isl_constraint_get_coefficient_val(c, isl_dim_set, i);
++ u = isl_val_mul(u, cloog_int_to_isl_val(isl_constraint_get_ctx(c), stride->factor));
++ offset = isl_aff_set_coefficient_val(offset, isl_dim_in, i, u);
+ }
+- isl_constraint_get_constant(c, &u);
+- isl_int_mul(u, u, stride->factor);
+- offset = isl_aff_set_constant(offset, u);
+-
+- isl_int_clear(u);
++ u = isl_constraint_get_constant_val(c);
++ u = isl_val_mul(u, cloog_int_to_isl_val(isl_constraint_get_ctx(c), stride->factor));
++ offset = isl_aff_set_constant_val(offset, u);
+
+ return offset;
+ }
+@@ -953,9 +1048,9 @@ CloogConstraint *cloog_constraint_stride_lower_bound(CloogConstraint *c,
+ offset = extract_stride_offset(stride_c, level, stride);
+
+ lower = isl_aff_sub(lower, isl_aff_copy(offset));
+- lower = isl_aff_scale_down(lower, stride->stride);
++ lower = isl_aff_scale_down_val(lower, cloog_int_to_isl_val(isl_constraint_get_ctx(stride_c), stride->stride));
+ lower = isl_aff_ceil(lower);
+- lower = isl_aff_scale(lower, stride->stride);
++ lower = isl_aff_scale_val(lower, cloog_int_to_isl_val(isl_constraint_get_ctx(stride_c), stride->stride));
+ lower = isl_aff_add(lower, offset);
+ lower = isl_aff_neg(lower);
+ lower = isl_aff_add_coefficient_si(lower, isl_dim_in, level - 1, 1);
+diff --git a/source/isl/domain.c b/source/isl/domain.c
+index 620584d..dc81a96 100644
+--- source/isl/domain.c
++++ source/isl/domain.c
+@@ -7,7 +7,11 @@
+ #include <isl/list.h>
+ #include <isl/constraint.h>
+ #include <isl/ilp.h>
++#include <isl/lp.h>
+ #include <isl/aff.h>
++#include <isl/map.h>
++#include <isl/val.h>
++#include <isl/val_gmp.h>
+
+ #ifdef OSL_SUPPORT
+ #include <osl/macros.h>
+@@ -510,15 +514,18 @@ static struct isl_constraint *isl_constraint_read_from_matrix(
+ else
+ constraint = isl_inequality_alloc(ls);
+
+- for (j = 0; j < nvariables; ++j)
+- isl_constraint_set_coefficient(constraint, isl_dim_out, j,
+- row[1 + j]);
++ for (j = 0; j < nvariables; ++j) {
++ isl_val *val = cloog_int_to_isl_val(isl_constraint_get_ctx(constraint), row[1 + j]);
++ isl_constraint_set_coefficient_val(constraint, isl_dim_out, j, val);
++ }
+
+- for (j = 0; j < nparam; ++j)
+- isl_constraint_set_coefficient(constraint, isl_dim_param, j,
+- row[1 + nvariables + j]);
++ for (j = 0; j < nparam; ++j) {
++ isl_val *val = cloog_int_to_isl_val(isl_constraint_get_ctx(constraint), row[1 + nvariables + j]);
++ isl_constraint_set_coefficient_val(constraint, isl_dim_param, j, val);
++ }
+
+- isl_constraint_set_constant(constraint, row[1 + nvariables + nparam]);
++ isl_val *val = cloog_int_to_isl_val(isl_constraint_get_ctx(constraint), row[1 + nvariables + nparam]);
++ isl_constraint_set_constant_val(constraint, val);
+
+ return constraint;
+ }
+@@ -631,7 +638,6 @@ CloogDomain *cloog_domain_from_osl_relation(CloogState *state,
+ return domain;
+ }
+
+-
+ /**
+ * Converts an openscop scattering relation to a CLooG scattering.
+ * \param[in,out] state CLooG state.
+@@ -779,10 +785,22 @@ int cloog_domain_is_otl(CloogDomain *domain, int level)
+ void cloog_domain_stride(CloogDomain *domain, int strided_level,
+ cloog_int_t *stride, cloog_int_t *offset)
+ {
++ int ret = -1;
+ isl_set *set = isl_set_from_cloog_domain(domain);
+- isl_set_dim_residue_class(set, strided_level - 1, stride, offset);
+- if (!isl_int_is_zero(*offset))
+- isl_int_sub(*offset, *stride, *offset);
++ isl_val *stride_val = NULL;
++ isl_val *offset_val = NULL;
++ ret = isl_set_dim_residue_class_val(set, strided_level - 1, &stride_val, &offset_val);
++ if (ret != 0)
++ cloog_die("failure to compute stride.\n");
++ isl_val_to_cloog_int(stride_val, stride);
++ isl_val_to_cloog_int(offset_val, offset);
++
++ if (!cloog_int_is_zero(*offset))
++ cloog_int_sub(*offset, *stride, *offset);
++
++ isl_val_free(stride_val);
++ isl_val_free(offset_val);
++
+ return;
+ }
+
+@@ -796,7 +814,7 @@ static int constraint_can_stride(__isl_take isl_constraint *c, void *user)
+ {
+ struct cloog_can_stride *ccs = (struct cloog_can_stride *)user;
+ int i;
+- isl_int v;
++ isl_val *v;
+ unsigned n_div;
+
+ if (isl_constraint_is_equality(c)) {
+@@ -804,21 +822,22 @@ static int constraint_can_stride(__isl_take isl_constraint *c, void *user)
+ return 0;
+ }
+
+- isl_int_init(v);
+- isl_constraint_get_coefficient(c, isl_dim_set, ccs->level - 1, &v);
+- if (isl_int_is_pos(v)) {
++ v = isl_constraint_get_coefficient_val(c, isl_dim_set, ccs->level - 1);
++ if (isl_val_is_pos(v)) {
+ n_div = isl_constraint_dim(c, isl_dim_div);
++
+ for (i = 0; i < n_div; ++i) {
+- isl_constraint_get_coefficient(c, isl_dim_div, i, &v);
+- if (!isl_int_is_zero(v))
++ isl_val_free(v);
++ v = isl_constraint_get_coefficient_val(c, isl_dim_div, i);
++ if (!isl_val_is_zero(v))
+ break;
+ }
+ if (i < n_div)
+ ccs->can_stride = 0;
+ }
+- isl_int_clear(v);
+- isl_constraint_free(c);
++ isl_val_free(v);
+
++ isl_constraint_free(c);
+ return 0;
+ }
+
+@@ -903,7 +922,7 @@ struct cloog_stride_lower {
+ static int constraint_stride_lower(__isl_take isl_constraint *c, void *user)
+ {
+ struct cloog_stride_lower *csl = (struct cloog_stride_lower *)user;
+- isl_int v;
++ isl_val *v;
+ isl_constraint *bound;
+ isl_aff *b;
+
+@@ -912,31 +931,31 @@ static int constraint_stride_lower(__isl_take isl_constraint *c, void *user)
+ return 0;
+ }
+
+- isl_int_init(v);
+- isl_constraint_get_coefficient(c, isl_dim_set, csl->level - 1, &v);
+- if (!isl_int_is_pos(v)) {
+- isl_int_clear(v);
++ v = isl_constraint_get_coefficient_val(c, isl_dim_set, csl->level - 1);
++ if (!isl_val_is_pos(v)) {
++ isl_val_free(v);
+ isl_constraint_free(c);
+
+ return 0;
+ }
++ isl_val_free(v);
+
+ b = isl_constraint_get_bound(c, isl_dim_set, csl->level - 1);
+
+ b = isl_aff_neg(b);
+- b = isl_aff_add_constant(b, csl->stride->offset);
+- b = isl_aff_scale_down(b, csl->stride->stride);
++ b = isl_aff_add_constant_val(b, cloog_int_to_isl_val(isl_constraint_get_ctx(c), csl->stride->offset));
++ b = isl_aff_scale_down_val(b, cloog_int_to_isl_val(isl_constraint_get_ctx(c), csl->stride->stride));
+ b = isl_aff_floor(b);
+- b = isl_aff_scale(b, csl->stride->stride);
+- isl_int_neg(v, csl->stride->offset);
+- b = isl_aff_add_constant(b, v);
++ b = isl_aff_scale_val(b, cloog_int_to_isl_val(isl_constraint_get_ctx(c), csl->stride->stride));
++ v = cloog_int_to_isl_val(isl_constraint_get_ctx(c), csl->stride->offset);
++ v = isl_val_neg(v);
++ b = isl_aff_add_constant_val(b, v);
+ b = isl_aff_add_coefficient_si(b, isl_dim_in, csl->level - 1, 1);
+
+ bound = isl_inequality_from_aff(b);
+
+ csl->bounds = isl_basic_set_add_constraint(csl->bounds, bound);
+
+- isl_int_clear(v);
+ isl_constraint_free(c);
+
+ return 0;
+@@ -960,7 +979,7 @@ static int constraint_stride_lower(__isl_take isl_constraint *c, void *user)
+ static int constraint_stride_lower_c(__isl_take isl_constraint *c, void *user)
+ {
+ struct cloog_stride_lower *csl = (struct cloog_stride_lower *)user;
+- isl_int v;
++ isl_val *v;
+ isl_constraint *bound;
+ isl_constraint *csl_c;
+ isl_aff *d, *b;
+@@ -970,10 +989,9 @@ static int constraint_stride_lower_c(__isl_take isl_constraint *c, void *user)
+ return 0;
+ }
+
+- isl_int_init(v);
+- isl_constraint_get_coefficient(c, isl_dim_set, csl->level - 1, &v);
+- if (!isl_int_is_pos(v)) {
+- isl_int_clear(v);
++ v = isl_constraint_get_coefficient_val(c, isl_dim_set, csl->level - 1);
++ if (!isl_val_is_pos(v)) {
++ isl_val_free(v);
+ isl_constraint_free(c);
+
+ return 0;
+@@ -984,15 +1002,15 @@ static int constraint_stride_lower_c(__isl_take isl_constraint *c, void *user)
+ d = isl_constraint_get_aff(csl_c);
+ d = isl_aff_drop_dims(d, isl_dim_div, 0, isl_aff_dim(d, isl_dim_div));
+ d = isl_aff_set_coefficient_si(d, isl_dim_in, csl->level - 1, 0);
+- d = isl_aff_scale(d, csl->stride->factor);
++ d = isl_aff_scale_val(d, cloog_int_to_isl_val(isl_constraint_get_ctx(csl_c), csl->stride->factor));
+
+ b = isl_constraint_get_bound(c, isl_dim_set, csl->level - 1);
+
+ b = isl_aff_neg(b);
+ b = isl_aff_add(b, isl_aff_copy(d));
+- b = isl_aff_scale_down(b, csl->stride->stride);
++ b = isl_aff_scale_down_val(b, cloog_int_to_isl_val(isl_constraint_get_ctx(csl_c), csl->stride->stride));
+ b = isl_aff_floor(b);
+- b = isl_aff_scale(b, csl->stride->stride);
++ b = isl_aff_scale_val(b, cloog_int_to_isl_val(isl_constraint_get_ctx(csl_c), csl->stride->stride));
+ b = isl_aff_sub(b, d);
+ b = isl_aff_add_coefficient_si(b, isl_dim_in, csl->level - 1, 1);
+
+@@ -1000,7 +1018,7 @@ static int constraint_stride_lower_c(__isl_take isl_constraint *c, void *user)
+
+ csl->bounds = isl_basic_set_add_constraint(csl->bounds, bound);
+
+- isl_int_clear(v);
++ isl_val_free(v);
+ isl_constraint_free(c);
+
+ return 0;
+@@ -1090,28 +1108,30 @@ struct cloog_bound_split {
+ static int constraint_bound_split(__isl_take isl_constraint *c, void *user)
+ {
+ struct cloog_bound_split *cbs = (struct cloog_bound_split *)user;
+- isl_int v;
++ isl_val *v;
+ int i;
+ int handle = 0;
+
+- isl_int_init(v);
+- isl_constraint_get_coefficient(c, isl_dim_set, cbs->level - 1, &v);
+- if (!cbs->lower && isl_int_is_pos(v))
++ v = isl_constraint_get_coefficient_val(c, isl_dim_set, cbs->level - 1);
++ if (!cbs->lower && isl_val_is_pos(v))
+ cbs->lower = handle = 1;
+- else if (!cbs->upper && isl_int_is_neg(v))
++ else if (!cbs->upper && isl_val_is_neg(v))
+ cbs->upper = handle = 1;
++
+ if (handle) {
+ for (i = 0; i < isl_set_dim(cbs->set, isl_dim_param); ++i) {
+- isl_constraint_get_coefficient(c, isl_dim_param, i, &v);
+- if (isl_int_is_zero(v))
++ isl_val_free(v);
++ v = isl_constraint_get_coefficient_val(c, isl_dim_param, i);
++ if (isl_val_is_zero(v))
+ continue;
++
+ cbs->set = isl_set_split_dims(cbs->set,
+ isl_dim_param, i, 1);
+ }
+ }
+- isl_int_clear(v);
+- isl_constraint_free(c);
++ isl_val_free(v);
+
++ isl_constraint_free(c);
+ return (cbs->lower && cbs->upper) ? -1 : 0;
+ }
+
+@@ -1203,7 +1223,7 @@ static int injective_scattering(CloogScatteringList *list)
+ * - scattdims is the total number of scattering dimentions.
+ */
+ int cloog_scattering_lazy_block(CloogScattering *s1, CloogScattering *s2,
+- CloogScatteringList *scattering, int scattdims)
++ CloogScatteringList *scattering, int scattdims)
+ {
+ int i;
+ struct isl_space *dim;
+@@ -1211,8 +1231,8 @@ int cloog_scattering_lazy_block(CloogScattering *s1, CloogScattering *s2,
+ struct isl_set *delta;
+ isl_map *map1 = isl_map_from_cloog_scattering(s1);
+ isl_map *map2 = isl_map_from_cloog_scattering(s2);
+- int fixed, block;
+- isl_int cst;
++ int block;
++ isl_val *cst;
+ unsigned n_scat;
+
+ n_scat = isl_map_dim(map1, isl_dim_out);
+@@ -1225,22 +1245,33 @@ int cloog_scattering_lazy_block(CloogScattering *s1, CloogScattering *s2,
+ rel = isl_map_apply_domain(rel, isl_map_copy(map1));
+ rel = isl_map_apply_range(rel, isl_map_copy(map2));
+ delta = isl_map_deltas(rel);
+- isl_int_init(cst);
++ cst = NULL;
+ for (i = 0; i < n_scat; ++i) {
+- fixed = isl_set_fast_dim_is_fixed(delta, i, &cst);
+- if (fixed != 1)
++ cst = isl_set_plain_get_val_if_fixed(delta, isl_dim_set, i);
++ if (!cst){
++ isl_val_free(cst);
+ break;
+- if (isl_int_is_zero(cst))
++ }
++ if (isl_val_is_zero(cst)){
++ isl_val_free(cst);
+ continue;
+- if (i + 1 < n_scat)
++ }
++ if (i + 1 < n_scat){
++ isl_val_free(cst);
+ break;
+- if (!isl_int_is_one(cst))
++ }
++ if (!isl_val_is_one(cst)){
++ isl_val_free(cst);
+ break;
+- if (!injective_scattering(scattering))
++ }
++ if (!injective_scattering(scattering)){
++ isl_val_free(cst);
+ break;
++ }
++
++ isl_val_free(cst);
+ }
+ block = i >= n_scat;
+- isl_int_clear(cst);
+ isl_set_free(delta);
+ return block;
+ }
+@@ -1345,10 +1376,25 @@ CloogDomain *cloog_domain_simplify_union(CloogDomain *domain)
+ * If value is not NULL, then it is set to the constant value of dimension.
+ */
+ int cloog_scattering_lazy_isscalar(CloogScattering *scatt, int dimension,
+- cloog_int_t *value)
++ cloog_int_t *value)
+ {
+ isl_map *map = isl_map_from_cloog_scattering(scatt);
+- return isl_map_fast_is_fixed(map, isl_dim_out, dimension, value);
++ isl_val *v = isl_map_plain_get_val_if_fixed(map, isl_dim_out, dimension);
++ if (v != NULL) {
++ if (!isl_val_is_nan(v)){
++ if (value != NULL)
++ isl_val_to_cloog_int(v, value);
++
++ isl_val_free(v);
++ return 1;
++ }
++ else {
++ isl_val_free(v);
++ return 0;
++ }
++ }
++
++ return 0;
+ }
+
+
+@@ -1362,7 +1408,22 @@ int cloog_domain_lazy_isconstant(CloogDomain *domain, int dimension,
+ cloog_int_t *value)
+ {
+ isl_set *set = isl_set_from_cloog_domain(domain);
+- return isl_set_fast_dim_is_fixed(set, dimension, value);
++ isl_val *cst = isl_set_plain_get_val_if_fixed(set, isl_dim_set, dimension);
++ if (cst != NULL) {
++ if (!isl_val_is_nan(cst)){
++ if (value != NULL)
++ isl_val_to_cloog_int(cst, value);
++
++ isl_val_free(cst);
++ return 1;
++ }
++ else {
++ isl_val_free(cst);
++ return 0;
++ }
++ }
++
++ return 0;
+ }
+
+
+@@ -1391,6 +1452,8 @@ CloogDomain *cloog_domain_cube(CloogState *state,
+ int i;
+ isl_space *space;
+ isl_set *cube;
++ isl_val *min_v;
++ isl_val *max_v;
+
+ if (dim == 0)
+ return cloog_domain_universe(state, dim);
+@@ -1398,8 +1461,10 @@ CloogDomain *cloog_domain_cube(CloogState *state,
+ space = isl_space_set_alloc(state->backend->ctx, 0, dim);
+ cube = isl_set_universe(space);
+ for (i = 0; i < dim; ++i) {
+- cube = isl_set_lower_bound(cube, isl_dim_set, i, min);
+- cube = isl_set_upper_bound(cube, isl_dim_set, i, max);
++ min_v = cloog_int_to_isl_val(isl_set_get_ctx(cube), min);
++ max_v = cloog_int_to_isl_val(isl_set_get_ctx(cube), max);
++ cube = isl_set_lower_bound_val(cube, isl_dim_set, i, min_v);
++ cube = isl_set_upper_bound_val(cube, isl_dim_set, i, max_v);
+ }
+
+ return cloog_domain_from_isl_set(cube);
+@@ -1595,7 +1660,7 @@ static void Euclid(cloog_int_t a, cloog_int_t b,
+ cloog_int_mul(tmp, tmp, d);
+ cloog_int_sub(c, c, tmp);
+ cloog_int_swap(c, d);
+- cloog_int_swap(e, f);
++ cloog_int_swap(e, f);
+ }
+ cloog_int_set(*g, c);
+ if (cloog_int_is_zero(a))
+@@ -1631,49 +1696,70 @@ static void Euclid(cloog_int_t a, cloog_int_t b,
+ static CloogStride *construct_stride(isl_constraint *c, int level)
+ {
+ int i, n, sign;
+- isl_int v, m, gcd, stride, factor;
++ isl_val *v, *m, *gcd, *stride;
++ isl_val *v_copy, *m_copy, *gcd_copy;
++ cloog_int_t c_v, c_m, c_gcd, c_stride, c_factor;
+ CloogStride *s;
++ isl_ctx *ctx = isl_constraint_get_ctx(c);;
+
+ if (!c)
+ return NULL;
+
+- isl_int_init(v);
+- isl_int_init(m);
+- isl_int_init(gcd);
+- isl_int_init(factor);
+- isl_int_init(stride);
++ v = isl_constraint_get_coefficient_val(c, isl_dim_set, level - 1);
+
+- isl_constraint_get_coefficient(c, isl_dim_set, level - 1, &v);
+- sign = isl_int_sgn(v);
+- isl_int_abs(m, v);
++ sign = isl_val_sgn(v);
++ m = isl_val_abs(v); /* *takes* v. */
+
+- isl_int_set_si(gcd, 0);
++ gcd = isl_val_int_from_si(ctx, 0);
+ n = isl_constraint_dim(c, isl_dim_div);
+ for (i = 0; i < n; ++i) {
+- isl_constraint_get_coefficient(c, isl_dim_div, i, &v);
+- isl_int_gcd(gcd, gcd, v);
++ v = isl_constraint_get_coefficient_val(c, isl_dim_div, i);
++ gcd = isl_val_gcd(gcd, v);
+ }
+
+- isl_int_gcd(v, m, gcd);
+- isl_int_divexact(stride, gcd, v);
++ m_copy = isl_val_copy(m);
++ gcd_copy = isl_val_copy(gcd);
+
+- if (isl_int_is_zero(stride) || isl_int_is_one(stride))
++ v = isl_val_gcd(m, gcd);
++
++ v_copy = isl_val_copy(v);
++ gcd = isl_val_copy(gcd_copy);
++ stride = isl_val_div(gcd, v);
++
++ if (isl_val_is_zero(stride) || isl_val_is_one(stride))
+ s = NULL;
+ else {
+- Euclid(m, stride, &factor, &v, &gcd);
++ cloog_int_init(c_m);
++ cloog_int_init(c_stride);
++ cloog_int_init(c_v);
++ cloog_int_init(c_gcd);
++ cloog_int_init(c_factor);
++
++ isl_val_to_cloog_int(m_copy, &c_m);
++ isl_val_to_cloog_int(stride, &c_stride);
++ isl_val_to_cloog_int(v_copy, &c_v);
++ isl_val_to_cloog_int(gcd_copy, &c_gcd);
++
++ Euclid(c_m, c_stride, &c_factor, &c_v, &c_gcd);
+ if (sign > 0)
+- isl_int_neg(factor, factor);
++ cloog_int_neg(c_factor, c_factor);
+
+ c = isl_constraint_copy(c);
+- s = cloog_stride_alloc_from_constraint(stride,
+- cloog_constraint_from_isl_constraint(c), factor);
++ s = cloog_stride_alloc_from_constraint(c_stride,
++ cloog_constraint_from_isl_constraint(c), c_factor);
++
++
++ cloog_int_clear(c_m);
++ cloog_int_clear(c_stride);
++ cloog_int_clear(c_v);
++ cloog_int_clear(c_gcd);
++ cloog_int_clear(c_factor);
+ }
+
+- isl_int_clear(stride);
+- isl_int_clear(factor);
+- isl_int_clear(gcd);
+- isl_int_clear(m);
+- isl_int_clear(v);
++ isl_val_free(stride);
++ isl_val_free(gcd_copy);
++ isl_val_free(m_copy);
++ isl_val_free(v_copy);
+
+ return s;
+ }
+@@ -1694,7 +1780,7 @@ static int find_stride(__isl_take isl_constraint *c, void *user)
+ {
+ struct cloog_isl_find_stride_data *data;
+ int n;
+- isl_int v;
++ isl_val *v;
+
+ if (!isl_constraint_is_equality(c)) {
+ isl_constraint_free(c);
+@@ -1714,13 +1800,11 @@ static int find_stride(__isl_take isl_constraint *c, void *user)
+ return 0;
+ }
+
+- isl_int_init(v);
+-
+- isl_constraint_get_coefficient(c, isl_dim_set, data->level - 1, &v);
+- if (!isl_int_is_zero(v))
++ v = isl_constraint_get_coefficient_val(c, isl_dim_set, data->level - 1);
++ if (!isl_val_is_zero(v))
+ data->stride = construct_stride(c, data->level);
+
+- isl_int_clear(v);
++ isl_val_free(v);
+
+ isl_constraint_free(c);
+
+@@ -1769,7 +1853,7 @@ struct cloog_can_unroll {
+ int level;
+ isl_constraint *c;
+ isl_set *set;
+- isl_int *n;
++ isl_val *n;
+ };
+
+
+@@ -1782,11 +1866,11 @@ struct cloog_can_unroll {
+ * with l the given lower bound and i the iterator identified by level.
+ */
+ static int is_valid_unrolling_lower_bound(struct cloog_can_unroll *ccu,
+- __isl_keep isl_constraint *c, isl_int *v)
++ __isl_keep isl_constraint *c, isl_val **v)
+ {
+ unsigned n_div;
+ isl_aff *aff;
+- enum isl_lp_result res;
++ enum isl_lp_result;
+
+ n_div = isl_constraint_dim(c, isl_dim_div);
+ if (isl_constraint_involves_dims(c, isl_dim_div, 0, n_div))
+@@ -1796,15 +1880,19 @@ static int is_valid_unrolling_lower_bound(struct cloog_can_unroll *ccu,
+ aff = isl_aff_ceil(aff);
+ aff = isl_aff_neg(aff);
+ aff = isl_aff_add_coefficient_si(aff, isl_dim_in, ccu->level - 1, 1);
+- res = isl_set_max(ccu->set, aff, v);
++ *v = isl_set_max_val(ccu->set, aff);
+ isl_aff_free(aff);
+
+- if (res == isl_lp_unbounded)
+- return 0;
++ if (!*v || isl_val_is_nan(*v))
++ cloog_die("Fail to decide about unrolling (cannot find max)");
+
+- assert(res == isl_lp_ok);
++ if (isl_val_is_infty(*v) || isl_val_is_neginfty(*v)){
++ isl_val_free(*v);
++ *v = NULL;
++ return 0;
++ }
+
+- cloog_int_add_ui(*v, *v, 1);
++ *v = isl_val_add_ui(*v, 1);
+
+ return 1;
+ }
+@@ -1818,21 +1906,21 @@ static int is_valid_unrolling_lower_bound(struct cloog_can_unroll *ccu,
+ static int constraint_can_unroll(__isl_take isl_constraint *c, void *user)
+ {
+ struct cloog_can_unroll *ccu = (struct cloog_can_unroll *)user;
+- isl_int v;
+- isl_int count;
+-
+- isl_int_init(v);
+- isl_int_init(count);
+- isl_constraint_get_coefficient(c, isl_dim_set, ccu->level - 1, &v);
+- if (isl_int_is_pos(v) &&
+- is_valid_unrolling_lower_bound(ccu, c, &count) &&
+- (!ccu->c || isl_int_lt(count, *ccu->n))) {
++ isl_val *v;
++ isl_val *count = NULL;
++
++ v = isl_constraint_get_coefficient_val(c, isl_dim_set, ccu->level - 1);
++ if (isl_val_is_pos(v) &&
++ is_valid_unrolling_lower_bound(ccu, c, &count) &&
++ (!ccu->c || (isl_val_lt(count, ccu->n))) ) {
+ isl_constraint_free(ccu->c);
+ ccu->c = isl_constraint_copy(c);
+- isl_int_set(*ccu->n, count);
++ if (ccu->n)
++ isl_val_free(ccu->n);
++ ccu->n = isl_val_copy(count);
+ }
+- isl_int_clear(count);
+- isl_int_clear(v);
++ isl_val_free(count);
++ isl_val_free(v);
+ isl_constraint_free(c);
+
+ return 0;
+@@ -1872,7 +1960,8 @@ int cloog_domain_can_unroll(CloogDomain *domain, int level, cloog_int_t *n,
+ CloogConstraint **lb)
+ {
+ isl_set *set = isl_set_from_cloog_domain(domain);
+- struct cloog_can_unroll ccu = { 1, level, NULL, set, n };
++ isl_val *v = cloog_int_to_isl_val(isl_set_get_ctx(set), *n);
++ struct cloog_can_unroll ccu = { 1, level, NULL, set, v };
+ int r;
+
+ *lb = NULL;
+@@ -1887,6 +1976,11 @@ int cloog_domain_can_unroll(CloogDomain *domain, int level, cloog_int_t *n,
+
+ *lb = cloog_constraint_from_isl_constraint(ccu.c);
+
++ isl_val_to_cloog_int(ccu.n, n);
++ /* Note: we have to free ccu.n and not v because v has been
++ * freed and replaced in ccu during isl_set_foreach_basic_set
++ */
++ isl_val_free(ccu.n);
+ return ccu.can_unroll;
+ }
+
+@@ -1904,6 +1998,7 @@ CloogDomain *cloog_domain_fixed_offset(CloogDomain *domain,
+ {
+ isl_aff *aff;
+ isl_set *set = isl_set_from_cloog_domain(domain);
++ isl_ctx *ctx = isl_set_get_ctx(set);
+ isl_constraint *c;
+ isl_constraint *eq;
+
+@@ -1911,7 +2006,7 @@ CloogDomain *cloog_domain_fixed_offset(CloogDomain *domain,
+ aff = isl_constraint_get_bound(c, isl_dim_set, level - 1);
+ aff = isl_aff_ceil(aff);
+ aff = isl_aff_add_coefficient_si(aff, isl_dim_in, level - 1, -1);
+- aff = isl_aff_add_constant(aff, offset);
++ aff = isl_aff_add_constant_val(aff, cloog_int_to_isl_val(ctx, offset));
+ eq = isl_equality_from_aff(aff);
+ set = isl_set_add_constraint(set, eq);
+
+--
+1.9.3
+
Added: trunk/dports/devel/cloog/files/missing-cmake.patch
===================================================================
--- trunk/dports/devel/cloog/files/missing-cmake.patch (rev 0)
+++ trunk/dports/devel/cloog/files/missing-cmake.patch 2014-05-28 04:50:58 UTC (rev 120437)
@@ -0,0 +1,61 @@
+https://groups.google.com/forum/#!topic/cloog-development/2XBdvziVrNM
+
+diff -Naurp cmake.orig/cloog-isl-config.cmake cmake/cloog-isl-config.cmake
+--- cmake.orig/cloog-isl-config.cmake 1969-12-31 16:00:00.000000000 -0800
++++ cmake/cloog-isl-config.cmake 2014-03-10 10:05:19.000000000 -0700
+@@ -0,0 +1,26 @@
++# Try to find the cloog-isl library
++
++# CLOOG_ISL_FOUND - System has cloog-isl lib
++# CLOOG_ISL_INCLUDE_DIR - The cloog-isl include directory
++# CLOOG_ISL_LIBRARY - Library needed to use cloog-isl
++
++
++if (CLOOG_ISL_INCLUDE_DIR AND CLOOG_ISL_LIBRARY)
++ # Already in cache, be silent
++ set(CLOOG_ISL_FIND_QUIETLY TRUE)
++endif()
++
++find_path(CLOOG_ISL_INCLUDE_DIR NAMES cloog/isl/cloog.h)
++find_library(CLOOG_ISL_LIBRARY NAMES cloog-isl)
++
++if (CLOOG_ISL_LIBRARY AND CLOOG_ISL_INCLUDE_DIR)
++ message(STATUS "Library cloog-isl found =) ${CLOOG_ISL_LIBRARY}")
++else()
++ message(STATUS "Library cloog-isl not found =(")
++endif()
++
++
++include(FindPackageHandleStandardArgs)
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(CLOOG_ISL DEFAULT_MSG CLOOG_ISL_INCLUDE_DIR CLOOG_ISL_LIBRARY)
++
++mark_as_advanced(CLOOG_ISL_INCLUDE_DIR CLOOG_ISL_LIBRARY)
+diff -Naurp cmake.orig/isl-config.cmake cmake/isl-config.cmake
+--- cmake.orig/isl-config.cmake 1969-12-31 16:00:00.000000000 -0800
++++ cmake/isl-config.cmake 2014-03-10 10:05:19.000000000 -0700
+@@ -0,0 +1,25 @@
++# Try to find the isl library
++
++# ISL_FOUND - System has isl lib
++# ISL_INCLUDE_DIR - The isl include directory
++# ISL_LIBRARY - Library needed to use isl
++
++
++if (ISL_INCLUDE_DIR AND ISL_LIBRARY)
++ # Already in cache, be silent
++ set(ISL_FIND_QUIETLY TRUE)
++endif()
++
++find_path(ISL_INCLUDE_DIR NAMES isl/version.h)
++find_library(ISL_LIBRARY NAMES isl)
++
++if (ISL_LIBRARY AND ISL_INCLUDE_DIR)
++ message(STATUS "Library isl found =) ${ISL_LIBRARY}")
++else()
++ message(STATUS "Library isl not found =(")
++endif()
++
++include(FindPackageHandleStandardArgs)
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(ISL DEFAULT_MSG ISL_INCLUDE_DIR ISL_LIBRARY)
++
++mark_as_advanced(ISL_INCLUDE_DIR ISL_LIBRARY)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140527/809caa27/attachment-0001.html>
More information about the macports-changes
mailing list