[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