aboutsummaryrefslogtreecommitdiffstats
path: root/benchmarks/polybench-syn
diff options
context:
space:
mode:
authorNadesh Ramanathan <nadeshramanathan88@gmail.com>2020-11-11 19:47:42 +0000
committerNadesh Ramanathan <nadeshramanathan88@gmail.com>2020-11-11 19:47:42 +0000
commit95861dbef966e2cb612b303615681fc29c3acd3d (patch)
treee3bff372bdb4b769ec6fb54077e30bda406ef9ee /benchmarks/polybench-syn
parent47bad8cabe00a40723ce04852d02e7527473f3c3 (diff)
downloadvericert-95861dbef966e2cb612b303615681fc29c3acd3d.tar.gz
vericert-95861dbef966e2cb612b303615681fc29c3acd3d.zip
polybench edits
Diffstat (limited to 'benchmarks/polybench-syn')
-rw-r--r--benchmarks/polybench-syn/data-mining/covariance.c11
-rw-r--r--benchmarks/polybench-syn/include/misc.h52
-rw-r--r--benchmarks/polybench-syn/linear-algebra/blas/gemm.c64
-rw-r--r--benchmarks/polybench-syn/linear-algebra/blas/gemver.c15
-rw-r--r--benchmarks/polybench-syn/linear-algebra/blas/gesummv.c84
-rw-r--r--benchmarks/polybench-syn/linear-algebra/blas/symm.c10
-rw-r--r--benchmarks/polybench-syn/linear-algebra/blas/syr2k.c9
-rw-r--r--benchmarks/polybench-syn/linear-algebra/blas/syrk.c7
-rw-r--r--benchmarks/polybench-syn/linear-algebra/blas/trmm.c43
-rw-r--r--benchmarks/polybench-syn/linear-algebra/kernels/2mm.c13
-rw-r--r--benchmarks/polybench-syn/linear-algebra/kernels/3mm.c18
-rw-r--r--benchmarks/polybench-syn/linear-algebra/kernels/atas.c12
-rw-r--r--benchmarks/polybench-syn/linear-algebra/kernels/bicg.c10
-rw-r--r--benchmarks/polybench-syn/linear-algebra/kernels/doitgen.c8
-rw-r--r--benchmarks/polybench-syn/linear-algebra/kernels/mvt.c26
-rw-r--r--benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c2
-rw-r--r--benchmarks/polybench-syn/linear-algebra/solvers/durbin.c2
-rw-r--r--benchmarks/polybench-syn/linear-algebra/solvers/lu.c2
-rw-r--r--benchmarks/polybench-syn/linear-algebra/solvers/ludcmp.c126
-rw-r--r--benchmarks/polybench-syn/linear-algebra/solvers/trisolv.c22
-rw-r--r--benchmarks/polybench-syn/medley/floyd-warshall.c10
-rw-r--r--benchmarks/polybench-syn/medley/nussinov.c6
-rwxr-xr-xbenchmarks/polybench-syn/run-vericert.sh6
-rw-r--r--benchmarks/polybench-syn/stencils/adi.c7
-rw-r--r--benchmarks/polybench-syn/stencils/fdtd-2d.c8
-rw-r--r--benchmarks/polybench-syn/stencils/jacobi-1d.c7
-rw-r--r--benchmarks/polybench-syn/stencils/jacobi-2d.c7
-rw-r--r--benchmarks/polybench-syn/stencils/seidel-2d.c10
-rwxr-xr-xbenchmarks/polybench-syn/syn-remote.sh8
29 files changed, 295 insertions, 310 deletions
diff --git a/benchmarks/polybench-syn/data-mining/covariance.c b/benchmarks/polybench-syn/data-mining/covariance.c
index 63f2320..b0f1ffa 100644
--- a/benchmarks/polybench-syn/data-mining/covariance.c
+++ b/benchmarks/polybench-syn/data-mining/covariance.c
@@ -9,6 +9,8 @@
*/
/* covariance.c: this file is part of PolyBench/C */
+#include "../include/misc.h"
+
#define plus(i) i = i + ONE
static
void init_array (int m, int n,
@@ -17,13 +19,12 @@ void init_array (int m, int n,
{
int i, j;
int ONE = 1;
- int DIV = 28;
*float_n = (int)n;
for (i = 0; i < 32; plus(i))
for (j = 0; j < 28; plus(j))
- data[i][j] = ((int) i*j) / DIV;
+ data[i][j] = divider((int) i*j, 28);
}
@@ -57,13 +58,12 @@ void kernel_covariance(int m, int n,
int i, j, k;
int ONE = 1;
-#pragma scop
for (j = 0; j < m; plus(j))
{
mean[j] = 0;
for (i = 0; i < n; plus(i))
mean[j] += data[i][j];
- mean[j] /= float_n;
+ mean[j] = divider(mean[j], float_n);
}
for (i = 0; i < n; plus(i))
@@ -76,10 +76,9 @@ void kernel_covariance(int m, int n,
cov[i][j] = 0;
for (k = 0; k < n; plus(k))
cov[i][j] += data[k][i] * data[k][j];
- cov[i][j] /= (float_n - ONE);
+ cov[i][j] = divider( cov[i][j], (float_n - ONE));
cov[j][i] = cov[i][j];
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/include/misc.h b/benchmarks/polybench-syn/include/misc.h
index 55bb059..664677c 100644
--- a/benchmarks/polybench-syn/include/misc.h
+++ b/benchmarks/polybench-syn/include/misc.h
@@ -39,31 +39,43 @@ int smodulo(int N, int D) {
}
}
-unsigned int divider(unsigned int x, unsigned int y)
-{
- unsigned int r0, q0, y0, y1;
+unsigned divider_fast(unsigned x, unsigned y) {
+ unsigned r0, q0, y0, y1;
r0 = x;
q0 = 0;
y0 = y;
y1 = y;
- do
- {
+ do {
y1 = 2 * y1;
} while (y1 <= x);
- do
- {
- y1 = y1 / 2;
- q0 = 2 * q0;
- if (r0 >= y1)
- {
- r0 = r0 - y1;
- q0 = q0 + 1;
+ do {
+ y1 /= 2;
+ q0 *= 2;
+ if (r0 >= y1) {
+ r0 -= y1;
+ q0++;
}
} while ((int)y1 != (int)y0);
return q0;
}
+unsigned divider(unsigned x, unsigned y) {
+ unsigned q0, acc;
+ q0 = 0;
+ acc = y;
+
+ while (acc <= x) {
+ q0++;
+ acc += y;
+ }
+
+ return q0;
+}
+
+/*
+ * Signed division operation for faster frequency division.
+ */
int sdivider(int N, int D) {
if (D < 0) {
if (N < 0)
@@ -78,4 +90,16 @@ int sdivider(int N, int D) {
}
}
-
+int sdivider_fast(int N, int D) {
+ if (D < 0) {
+ if (N < 0)
+ return divider_fast(-N, -D);
+ else
+ return -divider_fast(N, -D);
+ } else {
+ if (N < 0)
+ return -divider_fast(-N, D);
+ else
+ return divider_fast(N, D);
+ }
+}
diff --git a/benchmarks/polybench-syn/linear-algebra/blas/gemm.c b/benchmarks/polybench-syn/linear-algebra/blas/gemm.c
index 5a28f08..a81f094 100644
--- a/benchmarks/polybench-syn/linear-algebra/blas/gemm.c
+++ b/benchmarks/polybench-syn/linear-algebra/blas/gemm.c
@@ -9,14 +9,16 @@
*/
/* gemm.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
+
#define plus(i) i = i + ONE
-static
+ static
void init_array(int ni, int nj, int nk,
- int *alpha,
- int *beta,
- int C[ 20 + 0][25 + 0],
- int A[ 20 + 0][30 + 0],
- int B[ 30 + 0][25 + 0])
+ int *alpha,
+ int *beta,
+ int C[ 20 + 0][25 + 0],
+ int A[ 20 + 0][30 + 0],
+ int B[ 30 + 0][25 + 0])
{
int i, j;
int ONE = 1;
@@ -25,21 +27,21 @@ void init_array(int ni, int nj, int nk,
*beta = 2;
for (i = 0; i < ni; plus(i))
for (j = 0; j < nj; plus(j))
- C[i][j] = (int) ((i*j+ONE) % ni) / ni;
+ C[i][j] = (int) divider(smodulo(i*j+ONE, ni), ni);
for (i = 0; i < ni; plus(i))
for (j = 0; j < nk; plus(j))
- A[i][j] = (int) (i*(j+ONE) % nk) / nk;
+ A[i][j] = (int) divider(smodulo(i*(j+ONE), nk), nk);
for (i = 0; i < nk; plus(i))
for (j = 0; j < nj; plus(j))
- B[i][j] = (int) (i*(j+ONE+ONE) % nj) / nj;
+ B[i][j] = (int) divider(smodulo(i*(j+ONE+ONE), nj), nj);
}
-static
+ static
int print_array(int ni, int nj,
- int C[ 20 + 0][25 + 0])
+ int C[ 20 + 0][25 + 0])
{
int i, j;
int ONE = 1;
@@ -48,30 +50,28 @@ int print_array(int ni, int nj,
for (j = 0; j < nj; plus(j)) {
res ^= C[i][j];
}
- return res;
+ return res;
}
-static
+ static
void kernel_gemm(int ni, int nj, int nk,
- int alpha,
- int beta,
- int C[ 20 + 0][25 + 0],
- int A[ 20 + 0][30 + 0],
- int B[ 30 + 0][25 + 0])
+ int alpha,
+ int beta,
+ int C[ 20 + 0][25 + 0],
+ int A[ 20 + 0][30 + 0],
+ int B[ 30 + 0][25 + 0])
{
int i, j, k;
int ONE = 1;
-#pragma scop
- for (i = 0; i < ni; plus(i)) {
+ for (i = 0; i < ni; plus(i)) {
for (j = 0; j < nj; plus(j))
- C[i][j] *= beta;
+ C[i][j] *= beta;
for (k = 0; k < nk; plus(k)) {
- for (j = 0; j < nj; plus(j))
- C[i][j] += alpha * A[i][k] * B[k][j];
+ for (j = 0; j < nj; plus(j))
+ C[i][j] += alpha * A[i][k] * B[k][j];
}
}
-#pragma endscop
}
@@ -92,20 +92,20 @@ int main()
init_array (ni, nj, nk, &alpha, &beta,
- C,
- A,
- B);
+ C,
+ A,
+ B);
kernel_gemm (ni, nj, nk,
- alpha, beta,
- C,
- A,
- B);
+ alpha, beta,
+ C,
+ A,
+ B);
return
- print_array(ni, nj, C);
+ print_array(ni, nj, C);
}
diff --git a/benchmarks/polybench-syn/linear-algebra/blas/gemver.c b/benchmarks/polybench-syn/linear-algebra/blas/gemver.c
index 5b627d1..fafd49f 100644
--- a/benchmarks/polybench-syn/linear-algebra/blas/gemver.c
+++ b/benchmarks/polybench-syn/linear-algebra/blas/gemver.c
@@ -37,15 +37,15 @@ void init_array (int n,
for (i = 0; i < n; plus(i))
{
u1[i] = i;
- u2[i] = sdivider(((i+ONE)/fn),2);
- v1[i] = sdivider(((i+ONE)/fn),4);
- v2[i] = sdivider(((i+ONE)/fn),6);
- y[i] = sdivider(((i+ONE)/fn),8);
- z[i] = sdivider(((i+ONE)/fn),9);
+ u2[i] = divider((i+ONE),fn*2);
+ v1[i] = divider((i+ONE),fn*4);
+ v2[i] = divider((i+ONE),fn*6);
+ y[i] = divider((i+ONE),fn*8);
+ z[i] = divider((i+ONE),fn*9);
x[i] = 0;
w[i] = 0;
for (j = 0; j < n; plus(j))
- A[i][j] = (int) sdivider(smodulo(i*j, n), n);
+ A[i][j] = (int) divider(smodulo(i*j, n), n);
}
}
@@ -86,8 +86,6 @@ void kernel_gemver(int n,
int i, j;
int ONE = 1;
-#pragma scop
-
for (i = 0; i < n; plus(i))
for (j = 0; j < n; plus(j))
A[i][j] = A[i][j] + u1[i] * v1[j] + u2[i] * v2[j];
@@ -103,7 +101,6 @@ void kernel_gemver(int n,
for (j = 0; j < n; plus(j))
w[i] = w[i] + alpha * A[i][j] * x[j];
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/linear-algebra/blas/gesummv.c b/benchmarks/polybench-syn/linear-algebra/blas/gesummv.c
index 606a581..e9fe78e 100644
--- a/benchmarks/polybench-syn/linear-algebra/blas/gesummv.c
+++ b/benchmarks/polybench-syn/linear-algebra/blas/gesummv.c
@@ -9,16 +9,17 @@
*/
/* gesummv.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
#define plus(i) i = i + ONE
-static
+ static
void init_array(int n,
- int *alpha,
- int *beta,
- int A[ 30 + 0][30 + 0],
- int B[ 30 + 0][30 + 0],
- int x[ 30 + 0])
+ int *alpha,
+ int *beta,
+ int A[ 30 + 0][30 + 0],
+ int B[ 30 + 0][30 + 0],
+ int x[ 30 + 0])
{
int i, j;
int ONE = 1;
@@ -26,21 +27,19 @@ void init_array(int n,
*alpha = 3;
*beta = 2;
for (i = 0; i < n; plus(i))
- {
- x[i] = (int)( i % n) / n;
- for (j = 0; j < n; plus(j)) {
- A[i][j] = (int) ((i*j+ONE) % n) / n;
- B[i][j] = (int) ((i*j+ONE+ONE) % n) / n;
- }
+ {
+ x[i] = (int) divider(smodulo(i, n), n);
+ for (j = 0; j < n; plus(j)) {
+ A[i][j] = (int) divider(smodulo(i*j+ONE, n), n);
+ B[i][j] = (int) divider(smodulo(i*j+ONE+ONE, n), n);
}
+ }
}
-
-
-static
+ static
int print_array(int n,
- int y[ 30 + 0])
+ int y[ 30 + 0])
{
int i;
@@ -53,33 +52,30 @@ int print_array(int n,
return res;
}
-static
+ static
void kernel_gesummv(int n,
- int alpha,
- int beta,
- int A[ 30 + 0][30 + 0],
- int B[ 30 + 0][30 + 0],
- int tmp[ 30 + 0],
- int x[ 30 + 0],
- int y[ 30 + 0])
+ int alpha,
+ int beta,
+ int A[ 30 + 0][30 + 0],
+ int B[ 30 + 0][30 + 0],
+ int tmp[ 30 + 0],
+ int x[ 30 + 0],
+ int y[ 30 + 0])
{
int i, j;
int ONE = 1;
-#pragma scop
- for (i = 0; i < n; plus(i))
+ for (i = 0; i < n; plus(i))
+ {
+ tmp[i] = 0;
+ y[i] = 0;
+ for (j = 0; j < n; plus(j))
{
- tmp[i] = 0;
- y[i] = 0;
- for (j = 0; j < n; plus(j))
- {
- tmp[i] = A[i][j] * x[j] + tmp[i];
- y[i] = B[i][j] * x[j] + y[i];
- }
- y[i] = alpha * tmp[i] + beta * y[i];
+ tmp[i] = A[i][j] * x[j] + tmp[i];
+ y[i] = B[i][j] * x[j] + y[i];
}
-#pragma endscop
-
+ y[i] = alpha * tmp[i] + beta * y[i];
+ }
}
@@ -98,16 +94,16 @@ int main()
int y[30 + 0];
init_array (n, &alpha, &beta,
- A,
- B,
- x);
+ A,
+ B,
+ x);
kernel_gesummv (n, alpha, beta,
- A,
- B,
- tmp,
- x,
- y);
+ A,
+ B,
+ tmp,
+ x,
+ y);
return print_array(n, y);
diff --git a/benchmarks/polybench-syn/linear-algebra/blas/symm.c b/benchmarks/polybench-syn/linear-algebra/blas/symm.c
index a5e8539..f13577b 100644
--- a/benchmarks/polybench-syn/linear-algebra/blas/symm.c
+++ b/benchmarks/polybench-syn/linear-algebra/blas/symm.c
@@ -9,6 +9,8 @@
*/
/* symm.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
+
#define plus(i) i = i + ONE
static
void init_array(int m, int n,
@@ -26,12 +28,12 @@ void init_array(int m, int n,
*beta = 2;
for (i = 0; i < m; plus(i))
for (j = 0; j < n; plus(j)) {
- C[i][j] = (int) ((i+j) % HUND) / m;
- B[i][j] = (int) ((n+i-j) % HUND) / m;
+ C[i][j] = (int) divider(smodulo(i+j, HUND), m);
+ B[i][j] = (int) divider(smodulo(n+i-j, HUND), m);
}
for (i = 0; i < m; plus(i)) {
for (j = 0; j <=i; plus(j))
- A[i][j] = (int) ((i+j) % HUND) / m;
+ A[i][j] = (int) divider(smodulo(i+j, HUND), m);
for (j = i+ONE; j < m; plus(j))
A[i][j] = -999;
}
@@ -64,7 +66,6 @@ void kernel_symm(int m, int n,
int ONE = 1;
int i, j, k;
int temp2;
-#pragma scop
for (i = 0; i < m; plus(i))
for (j = 0; j < n; plus(j) )
{
@@ -75,7 +76,6 @@ void kernel_symm(int m, int n,
}
C[i][j] = beta * C[i][j] + alpha*B[i][j] * A[i][i] + alpha * temp2;
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/linear-algebra/blas/syr2k.c b/benchmarks/polybench-syn/linear-algebra/blas/syr2k.c
index 82b4d3b..2214d4a 100644
--- a/benchmarks/polybench-syn/linear-algebra/blas/syr2k.c
+++ b/benchmarks/polybench-syn/linear-algebra/blas/syr2k.c
@@ -9,6 +9,7 @@
*/
/* syr2k.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
#define plus(i) i = i + ONE
static
@@ -26,12 +27,12 @@ void init_array(int n, int m,
*beta = 2;
for (i = 0; i < n; plus(i))
for (j = 0; j < m; plus(j)) {
- A[i][j] = (int) ((i*j+ONE)%n) / n;
- B[i][j] = (int) ((i*j+ONE+ONE)%m) / m;
+ A[i][j] = (int) divider(smodulo(i*j+ONE, n), n);
+ B[i][j] = (int) divider(smodulo(i*j+ONE+ONE, m), m);
}
for (i = 0; i < n; plus(i))
for (j = 0; j < n; plus(j)) {
- C[i][j] = (int) ((i*j+4-ONE)%n) / m;
+ C[i][j] = (int) divider(smodulo(i*j+4-ONE, n), m);
}
}
@@ -65,7 +66,6 @@ void kernel_syr2k(int n, int m,
int i, j, k;
int ONE = 1;
-#pragma scop
for (i = 0; i < n; plus(i)) {
for (j = 0; j <= i; plus(j))
C[i][j] *= beta;
@@ -75,7 +75,6 @@ void kernel_syr2k(int n, int m,
C[i][j] += A[j][k]*alpha*B[i][k] + B[j][k]*alpha*A[i][k];
}
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/linear-algebra/blas/syrk.c b/benchmarks/polybench-syn/linear-algebra/blas/syrk.c
index dbf2e6b..3c792a0 100644
--- a/benchmarks/polybench-syn/linear-algebra/blas/syrk.c
+++ b/benchmarks/polybench-syn/linear-algebra/blas/syrk.c
@@ -9,6 +9,7 @@
*/
/* syrk.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
#define plus(i) i = i + ONE
static
@@ -25,10 +26,10 @@ void init_array(int n, int m,
*beta = 2;
for (i = 0; i < n; plus(i))
for (j = 0; j < m; plus(j))
- A[i][j] = (int) ((i*j+ONE)%n) / n;
+ A[i][j] = (int) divider(smodulo((i*j+ONE), n), n);
for (i = 0; i < n; plus(i))
for (j = 0; j < n; plus(j))
- C[i][j] = (int) ((i*j+ONE+ONE)%m) / m;
+ C[i][j] = (int) divider(smodulo(i*j+ONE+ONE,m), m);
}
@@ -60,7 +61,6 @@ void kernel_syrk(int n, int m,
int i, j, k;
int ONE = 1;
-#pragma scop
for (i = 0; i < n; plus(i)) {
for (j = 0; j <= i; plus(j))
C[i][j] *= beta;
@@ -69,7 +69,6 @@ void kernel_syrk(int n, int m,
C[i][j] += alpha * A[i][k] * A[j][k];
}
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/linear-algebra/blas/trmm.c b/benchmarks/polybench-syn/linear-algebra/blas/trmm.c
index 79b384d..e369fd0 100644
--- a/benchmarks/polybench-syn/linear-algebra/blas/trmm.c
+++ b/benchmarks/polybench-syn/linear-algebra/blas/trmm.c
@@ -9,13 +9,14 @@
*/
/* trmm.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
#define plus(i) i = i + ONE
-static
+ static
void init_array(int m, int n,
- int *alpha,
- int A[ 20 + 0][20 + 0],
- int B[ 20 + 0][30 + 0])
+ int *alpha,
+ int A[ 20 + 0][20 + 0],
+ int B[ 20 + 0][30 + 0])
{
int i, j;
int ONE = 1;
@@ -23,22 +24,22 @@ void init_array(int m, int n,
*alpha = 3;
for (i = 0; i < m; plus(i)) {
for (j = 0; j < i; plus(j)) {
- A[i][j] = (int)((i+j) % m)/m;
+ A[i][j] = (int) divider(smodulo(i+j, m), m);
}
A[i][i] = 1;
for (j = 0; j < n; plus(j)) {
- B[i][j] = (int)((n+(i-j)) % n)/n;
+ B[i][j] = (int)divider(smodulo(n+i-j, n), n);
}
- }
+ }
}
-static
+ static
int print_array(int m, int n,
- int B[ 20 + 0][30 + 0])
+ int B[ 20 + 0][30 + 0])
{
int i, j;
int ONE = 1;
@@ -48,28 +49,26 @@ int print_array(int m, int n,
for (j = 0; j < n; plus(j)) {
res ^= B[i][j];
}
- return res;
+ return res;
}
-static
+ static
void kernel_trmm(int m, int n,
- int alpha,
- int A[ 20 + 0][20 + 0],
- int B[ 20 + 0][30 + 0])
+ int alpha,
+ int A[ 20 + 0][20 + 0],
+ int B[ 20 + 0][30 + 0])
{
int i, j, k;
int ONE = 1;
-#pragma scop
- for (i = 0; i < m; plus(i))
- for (j = 0; j < n; plus(j)) {
- for (k = i+ONE; k < m; plus(k))
- B[i][j] += A[k][i] * B[k][j];
- B[i][j] = alpha * B[i][j];
- }
-#pragma endscop
+ for (i = 0; i < m; plus(i))
+ for (j = 0; j < n; plus(j)) {
+ for (k = i+ONE; k < m; plus(k))
+ B[i][j] += A[k][i] * B[k][j];
+ B[i][j] = alpha * B[i][j];
+ }
}
diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/2mm.c b/benchmarks/polybench-syn/linear-algebra/kernels/2mm.c
index 391e9ac..f5c5ff3 100644
--- a/benchmarks/polybench-syn/linear-algebra/kernels/2mm.c
+++ b/benchmarks/polybench-syn/linear-algebra/kernels/2mm.c
@@ -10,6 +10,8 @@
/* 2mm.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
+
#define plus(i) i = i + ONE
static
void init_array(int ni, int nj, int nk, int nl,
@@ -27,16 +29,16 @@ void init_array(int ni, int nj, int nk, int nl,
*beta = 2;
for (i = 0; i < ni; plus(i))
for (j = 0; j < nk; plus(j))
- A[i][j] = (int) ((i*j+ONE) % ni) / ni;
+ A[i][j] = (int) divider(smodulo(i*j+ONE, ni), ni);
for (i = 0; i < nk; plus(i))
for (j = 0; j < nj; plus(j))
- B[i][j] = (int) (i*(j+ONE) % nj) / nj;
+ B[i][j] = (int) divider(smodulo(i*(j+ONE), nj), nj);
for (i = 0; i < nj; plus(i))
for (j = 0; j < nl; plus(j))
- C[i][j] = (int) ((i*(j+ONE+ONE+ONE)+ONE) % nl) / nl;
+ C[i][j] = (int) divider(smodulo(i*(j+ONE+ONE+ONE)+ONE, nl), nl);
for (i = 0; i < ni; plus(i))
for (j = 0; j < nl; plus(j))
- D[i][j] = (int) (i*(j+ONE+ONE) % nk) / nk;
+ D[i][j] = (int) divider(smodulo(i*(j+ONE+ONE), nk), nk);
}
static
@@ -69,8 +71,6 @@ void kernel_2mm(int ni, int nj, int nk, int nl,
int ONE = 1;
int i, j, k;
-#pragma scop
-
for (i = 0; i < ni; plus(i))
for (j = 0; j < nj; plus(j))
{
@@ -85,7 +85,6 @@ void kernel_2mm(int ni, int nj, int nk, int nl,
for (k = 0; k < nj; plus(k))
D[i][j] += tmp[i][k] * C[k][j];
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/3mm.c b/benchmarks/polybench-syn/linear-algebra/kernels/3mm.c
index e565fb5..2905719 100644
--- a/benchmarks/polybench-syn/linear-algebra/kernels/3mm.c
+++ b/benchmarks/polybench-syn/linear-algebra/kernels/3mm.c
@@ -9,6 +9,9 @@
*/
/* 3mm.c: this file is part of PolyBench/C */
+
+#include "../../include/misc.h"
+
#define plus(i) i = i + ONE
static
void init_array(int ni, int nj, int nk, int nl, int nm,
@@ -21,25 +24,22 @@ void init_array(int ni, int nj, int nk, int nl, int nm,
int ONE = 1;
int TWO = 2;
int THREE = 3;
- int FIVE = 5;
for (i = 0; i < ni; plus(i))
for (j = 0; j < nk; plus(j))
- A[i][j] = (int) ((i*j+ONE) % ni) / (5*ni);
+ A[i][j] = (int) divider(smodulo((i*j+ONE), ni), (5*ni));
for (i = 0; i < nk; plus(i))
for (j = 0; j < nj; plus(j))
- B[i][j] = (int) ((i*(j+ONE)+TWO) % nj) / (5*nj);
+ B[i][j] = (int) divider(smodulo((i*(j+ONE)+TWO),nj), (5*nj));
for (i = 0; i < nj; plus(i))
for (j = 0; j < nm; plus(j))
- C[i][j] = (int) (i*(j+THREE) % nl) / (5*nl);
+ C[i][j] = (int) divider(smodulo(i*(j+THREE), nl), (5*nl));
for (i = 0; i < nm; plus(i))
for (j = 0; j < nl; plus(j))
- D[i][j] = (int) ((i*(j+TWO)+TWO) % nk) / (5*nk);
+ D[i][j] = (int) divider(smodulo((i*(j+TWO)+TWO), nk), (5*nk));
}
-
-
static
int print_array(int ni, int nl,
int G[ 16 + 0][22 + 0])
@@ -71,8 +71,6 @@ void kernel_3mm(int ni, int nj, int nk, int nl, int nm,
int ONE = 1;
int i, j, k;
-#pragma scop
-
for (i = 0; i < ni; plus(i))
for (j = 0; j < nj; plus(j))
{
@@ -96,11 +94,9 @@ void kernel_3mm(int ni, int nj, int nk, int nl, int nm,
for (k = 0; k < nj; plus(k))
G[i][j] += E[i][k] * F[k][j];
}
-#pragma endscop
}
-
int main()
{
diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/atas.c b/benchmarks/polybench-syn/linear-algebra/kernels/atas.c
index a051046..7bd0151 100644
--- a/benchmarks/polybench-syn/linear-algebra/kernels/atas.c
+++ b/benchmarks/polybench-syn/linear-algebra/kernels/atas.c
@@ -9,6 +9,8 @@
*/
/* atax.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
+
#define plus(i) i = i + ONE
static
void init_array (int m, int n,
@@ -21,15 +23,13 @@ void init_array (int m, int n,
fn = (int)n;
for (i = 0; i < n; plus(i))
- x[i] = ONE + (i / fn);
+ x[i] = ONE + divider(i, fn);
for (i = 0; i < m; plus(i))
for (j = 0; j < n; plus(j))
- A[i][j] = (int) ((i+j) % n) / (5*m);
+ A[i][j] = (int) divider(smodulo(i+j, n),(5*m));
}
-
-
static
int print_array(int n,
int y[ 42 + 0])
@@ -46,8 +46,6 @@ int print_array(int n,
}
-
-
static
void kernel_atax(int m, int n,
int A[ 38 + 0][42 + 0],
@@ -58,7 +56,6 @@ void kernel_atax(int m, int n,
int i, j;
int ONE = 1;
-#pragma scop
for (i = 0; i < n; plus(i))
y[i] = 0;
for (i = 0; i < m; plus(i))
@@ -69,7 +66,6 @@ void kernel_atax(int m, int n,
for (j = 0; j < n; plus(j))
y[j] = y[j] + A[i][j] * tmp[i];
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/bicg.c b/benchmarks/polybench-syn/linear-algebra/kernels/bicg.c
index 48b7658..5981924 100644
--- a/benchmarks/polybench-syn/linear-algebra/kernels/bicg.c
+++ b/benchmarks/polybench-syn/linear-algebra/kernels/bicg.c
@@ -10,6 +10,8 @@
/* bicg.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
+
#define plus(i) i = i + ONE
static
void init_array (int m, int n,
@@ -21,11 +23,11 @@ void init_array (int m, int n,
int ONE = 1;
for (i = 0; i < m; plus(i))
- p[i] = (int)(i % m) / m;
+ p[i] = divider(smodulo(i, m), m);
for (i = 0; i < n; plus(i)) {
- r[i] = (int)(i % n) / n;
+ r[i] = divider(smodulo(i, n), n);
for (j = 0; j < m; plus(j))
- A[i][j] = (int) (i*(j+ONE) % n)/n;
+ A[i][j] = divider(smodulo(i*(j+ONE), n), n);
}
}
@@ -65,7 +67,6 @@ void kernel_bicg(int m, int n,
int i, j;
int ONE = 1;
-#pragma scop
for (i = 0; i < m; plus(i))
s[i] = 0;
for (i = 0; i < n; plus(i))
@@ -77,7 +78,6 @@ void kernel_bicg(int m, int n,
q[i] = q[i] + A[i][j] * p[j];
}
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/doitgen.c b/benchmarks/polybench-syn/linear-algebra/kernels/doitgen.c
index 20de1df..081a3ba 100644
--- a/benchmarks/polybench-syn/linear-algebra/kernels/doitgen.c
+++ b/benchmarks/polybench-syn/linear-algebra/kernels/doitgen.c
@@ -9,6 +9,8 @@
*/
/* doitgen.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
+
#define plus(i) i = i + ONE
static
void init_array(int nr, int nq, int np,
@@ -21,10 +23,10 @@ void init_array(int nr, int nq, int np,
for (i = 0; i < nr; plus(i))
for (j = 0; j < nq; plus(j))
for (k = 0; k < np; plus(k))
- A[i][j][k] = (int) ((i*j + k)%np) / np;
+ A[i][j][k] = (int) divider(smodulo((i*j + k), np), np);
for (i = 0; i < np; plus(i))
for (j = 0; j < np; plus(j))
- C4[i][j] = (int) (i*j % np) / np;
+ C4[i][j] = (int) divider(smodulo(i*j, np), np);
}
@@ -55,7 +57,6 @@ void kernel_doitgen(int nr, int nq, int np,
int r, q, p, s;
int ONE = 1;
-#pragma scop
for (r = 0; r < nr; plus(r))
for (q = 0; q < nq; plus(q)) {
for (p = 0; p < np; plus(p)) {
@@ -66,7 +67,6 @@ void kernel_doitgen(int nr, int nq, int np,
for (p = 0; p < np; plus(p))
A[r][q][p] = sum[p];
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/mvt.c b/benchmarks/polybench-syn/linear-algebra/kernels/mvt.c
index aa68b1c..7eb612e 100644
--- a/benchmarks/polybench-syn/linear-algebra/kernels/mvt.c
+++ b/benchmarks/polybench-syn/linear-algebra/kernels/mvt.c
@@ -9,6 +9,8 @@
*/
/* mvt.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
+
#define plus(i) i = i + ONE
static
@@ -24,23 +26,23 @@ void init_array(int n,
int THREE = 3;
for (i = 0; i < n; plus(i))
- {
- x1[i] = (int) (i % n) / n;
- x2[i] = (int) ((i + ONE) % n) / n;
- y_1[i] = (int) ((i + THREE) % n) / n;
- y_2[i] = (int) ((i + 4) % n) / n;
- for (j = 0; j < n; plus(j))
- A[i][j] = (int) (i*j % n) / n;
- }
+ {
+ x1[i] = (int) divider(smodulo(i, n), n);
+ x2[i] = (int) divider(smodulo(i + ONE, n), n);
+ y_1[i] = (int) divider(smodulo(i + THREE, n), n);
+ y_2[i] = (int) divider(smodulo(i + 4, n), n);
+ for (j = 0; j < n; plus(j))
+ A[i][j] = (int) divider(smodulo(i*j,n), n);
+ }
}
-static
+ static
int print_array(int n,
- int x1[ 40 + 0],
- int x2[ 40 + 0])
+ int x1[ 40 + 0],
+ int x2[ 40 + 0])
{
int i;
@@ -71,14 +73,12 @@ void kernel_mvt(int n,
int i, j;
int ONE = 1;
-#pragma scop
for (i = 0; i < n; plus(i))
for (j = 0; j < n; plus(j))
x1[i] = x1[i] + A[i][j] * y_1[j];
for (i = 0; i < n; plus(i))
for (j = 0; j < n; plus(j))
x2[i] = x2[i] + A[j][i] * y_2[j];
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c b/benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c
index a0d63a0..05e85ea 100644
--- a/benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c
+++ b/benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c
@@ -24,7 +24,7 @@ void init_array(int n,
for (i = 0; i < n; plus(i))
{
for (j = 0; j <= i; plus(j))
- A[i][j] = (int)(-j % n) / n + ONE;
+ A[i][j] = (int)sdivider(smodulo(-j, n), n) + ONE;
for (j = i + ONE; j < n; plus(j)) {
A[i][j] = 0;
}
diff --git a/benchmarks/polybench-syn/linear-algebra/solvers/durbin.c b/benchmarks/polybench-syn/linear-algebra/solvers/durbin.c
index 6a2fd41..dd6d05e 100644
--- a/benchmarks/polybench-syn/linear-algebra/solvers/durbin.c
+++ b/benchmarks/polybench-syn/linear-algebra/solvers/durbin.c
@@ -56,7 +56,7 @@ void init_array (int n,
int r[ 40 + 0])
{
int ONE = 1;
- int i, j;
+ int i;
for (i = 0; i < n; plus(i))
{
diff --git a/benchmarks/polybench-syn/linear-algebra/solvers/lu.c b/benchmarks/polybench-syn/linear-algebra/solvers/lu.c
index 7c8989f..56dadd7 100644
--- a/benchmarks/polybench-syn/linear-algebra/solvers/lu.c
+++ b/benchmarks/polybench-syn/linear-algebra/solvers/lu.c
@@ -28,7 +28,7 @@ void init_array (int n,
for (i = 0; i < n; plus(i))
{
for (j = 0; j <= i; plus(j))
- A[i][j] = (-j % n )/ n + ONE;
+ A[i][j] = sdivider(smodulo(-j, n), n) + ONE;
for (j = plus(i); j < n; plus(j)) {
A[i][j] = 0;
}
diff --git a/benchmarks/polybench-syn/linear-algebra/solvers/ludcmp.c b/benchmarks/polybench-syn/linear-algebra/solvers/ludcmp.c
index e85316a..f37d983 100644
--- a/benchmarks/polybench-syn/linear-algebra/solvers/ludcmp.c
+++ b/benchmarks/polybench-syn/linear-algebra/solvers/ludcmp.c
@@ -9,37 +9,37 @@
*/
/* ludcmp.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
+
#define plus(i) i = i + ONE
-static
+ static
void init_array (int n,
- int A[ 40 + 0][40 + 0],
- int b[ 40 + 0],
- int x[ 40 + 0],
- int y[ 40 + 0])
+ int A[ 40 + 0][40 + 0],
+ int b[ 40 + 0],
+ int x[ 40 + 0],
+ int y[ 40 + 0])
{
int i, j;
int ONE = 1;
- int TWO = 2;
- int FOUR = 4;
int fn = (int)n;
for (i = 0; i < n; plus(i))
- {
- x[i] = 0;
- y[i] = 0;
- b[i] = (i+ONE)/fn/(TWO) + (FOUR);
- }
+ {
+ x[i] = 0;
+ y[i] = 0;
+ b[i] = divider(i+1, fn*2) + 4;
+ }
for (i = 0; i < n; plus(i))
- {
- for (j = 0; j <= i; plus(j))
- A[i][j] = (int)(-j % n) / n + ONE;
- for (j = i+ONE; j < n; plus(j)) {
- A[i][j] = 0;
- }
- A[i][i] = 1;
+ {
+ for (j = 0; j <= i; plus(j))
+ A[i][j] = (int)sdivider(smodulo(-j, n), n) + 1;
+ for (j = i+ONE; j < n; plus(j)) {
+ A[i][j] = 0;
}
+ A[i][i] = 1;
+ }
@@ -51,19 +51,19 @@ void init_array (int n,
for (t = 0; t < n; plus(t))
for (r = 0; r < n; plus(r))
for (s = 0; s < n; plus(s))
- B[r][s] += A[r][t] * A[s][t];
- for (r = 0; r < n; plus(r))
- for (s = 0; s < n; plus(s))
- A[r][s] = B[r][s];
+ B[r][s] += A[r][t] * A[s][t];
+ for (r = 0; r < n; plus(r))
+ for (s = 0; s < n; plus(s))
+ A[r][s] = B[r][s];
}
-static
+ static
int check_array(int n,
- int x[ 40 + 0])
+ int x[ 40 + 0])
{
int i;
@@ -71,7 +71,7 @@ int check_array(int n,
int res = 0;
for (i = 0; i < n; plus(i)) {
- res += x[i];
+ res += x[i];
}
return res;
}
@@ -79,50 +79,48 @@ int check_array(int n,
-static
+ static
void kernel_ludcmp(int n,
- int A[ 40 + 0][40 + 0],
- int b[ 40 + 0],
- int x[ 40 + 0],
- int y[ 40 + 0])
+ int A[ 40 + 0][40 + 0],
+ int b[ 40 + 0],
+ int x[ 40 + 0],
+ int y[ 40 + 0])
{
int i, j, k;
int ONE = 1;
int w;
-#pragma scop
- for (i = 0; i < n; plus(i)) {
+ for (i = 0; i < n; plus(i)) {
for (j = 0; j <i; plus(j)) {
- w = A[i][j];
- for (k = 0; k < j; plus(k)) {
- w -= A[i][k] * A[k][j];
- }
- A[i][j] = w / A[j][j];
+ w = A[i][j];
+ for (k = 0; k < j; plus(k)) {
+ w -= A[i][k] * A[k][j];
+ }
+ A[i][j] = sdivider(w, A[j][j]);
}
- for (j = i; j < n; plus(j)) {
- w = A[i][j];
- for (k = 0; k < i; plus(k)) {
- w -= A[i][k] * A[k][j];
- }
- A[i][j] = w;
+ for (j = i; j < n; plus(j)) {
+ w = A[i][j];
+ for (k = 0; k < i; plus(k)) {
+ w -= A[i][k] * A[k][j];
+ }
+ A[i][j] = w;
}
}
for (i = 0; i < n; plus(i)) {
- w = b[i];
- for (j = 0; j < i; plus(j))
- w -= A[i][j] * y[j];
- y[i] = w;
+ w = b[i];
+ for (j = 0; j < i; plus(j))
+ w -= A[i][j] * y[j];
+ y[i] = w;
}
- for (i = n-ONE; i >=0; i=i-ONE) {
- w = y[i];
- for (j = i+ONE; j < n; plus(j))
- w -= A[i][j] * x[j];
- x[i] = w / A[i][i];
+ for (i = n-ONE; i >=0; i=i-ONE) {
+ w = y[i];
+ for (j = i+ONE; j < n; plus(j))
+ w -= A[i][j] * x[j];
+ x[i] = sdivider(w, A[i][i]);
}
-#pragma endscop
}
@@ -131,7 +129,6 @@ int main()
{
int n = 40;
- int ONE = 1;
int A[40 + 0][40 + 0];
@@ -142,20 +139,17 @@ int main()
init_array (n,
- A,
- b,
- x,
- y);
-
-
- ;
+ A,
+ b,
+ x,
+ y);
kernel_ludcmp (n,
- A,
- b,
- x,
- y);
+ A,
+ b,
+ x,
+ y);
return check_array(n, x);
diff --git a/benchmarks/polybench-syn/linear-algebra/solvers/trisolv.c b/benchmarks/polybench-syn/linear-algebra/solvers/trisolv.c
index 5e760e6..8e76231 100644
--- a/benchmarks/polybench-syn/linear-algebra/solvers/trisolv.c
+++ b/benchmarks/polybench-syn/linear-algebra/solvers/trisolv.c
@@ -9,6 +9,8 @@
*/
/* trisolv.c: this file is part of PolyBench/C */
+#include "../../include/misc.h"
+
#define plus(i) i = i + ONE
static
void init_array(int n,
@@ -24,7 +26,7 @@ void init_array(int n,
x[i] = - 999;
b[i] = i ;
for (j = 0; j <= i; plus(j))
- L[i][j] = (int) (i+n-j+ONE)*(ONE+ONE)/n;
+ L[i][j] = (int) divider((i+n-j+ONE)*(ONE+ONE), n);
}
}
@@ -57,15 +59,15 @@ void kernel_trisolv(int n,
int i, j;
int ONE = 1;
-#pragma scop
- for (i = 0; i < n; plus(i))
- {
- x[i] = b[i];
- for (j = 0; j <i; plus(j))
- x[i] -= L[i][j] * x[j];
- x[i] = x[i] / L[i][i];
- }
-#pragma endscop
+ for (i = 0; i < n; plus(i))
+ {
+ x[i] = b[i];
+ for (j = 0; j <i; plus(j))
+ x[i] -= L[i][j] * x[j];
+
+ x[i] = divider(x[i],L[i][i]);
+
+ }
}
diff --git a/benchmarks/polybench-syn/medley/floyd-warshall.c b/benchmarks/polybench-syn/medley/floyd-warshall.c
index 6c87eb7..48a7e8d 100644
--- a/benchmarks/polybench-syn/medley/floyd-warshall.c
+++ b/benchmarks/polybench-syn/medley/floyd-warshall.c
@@ -17,16 +17,12 @@ void init_array (int n,
int path[ 60 + 0][60 + 0])
{
int i, j;
- int ZERO = 0;
int ONE = 1;
- int N7 = 7;
- int N11 = 11;
- int N13 = 13;
for (i = 0; i < n; plus(i))
for (j = 0; j < n; plus(j)) {
- path[i][j] = i*j%N7+ONE;
- //if (((i+j)%N13 == ZERO || (i+j)%N7== ZERO || (i+j)%N11 == ZERO ) != 0 )
+ path[i][j] = i*smodulo(j,7)+ONE;
+ //if (((i+j)%13 == ZERO || (i+j)%7== ZERO || (i+j)%11 == ZERO ) != 0 )
if(((smodulo((i+j),13) == (int)0 || smodulo((i+j),7) == (int)0)!=0 || smodulo((i+j),11) == (int)0 ) != 0)
path[i][j] = 999;
}
@@ -61,7 +57,6 @@ void kernel_floyd_warshall(int n,
int i, j, k;
int ONE = 1;
-#pragma scop
for (k = 0; k < n; plus(k))
{
for(i = 0; i < n; plus(i))
@@ -69,7 +64,6 @@ void kernel_floyd_warshall(int n,
path[i][j] = path[i][j] < path[i][k] + path[k][j] ?
path[i][j] : path[i][k] + path[k][j];
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/medley/nussinov.c b/benchmarks/polybench-syn/medley/nussinov.c
index f39f742..a2c3b70 100644
--- a/benchmarks/polybench-syn/medley/nussinov.c
+++ b/benchmarks/polybench-syn/medley/nussinov.c
@@ -11,6 +11,8 @@
typedef int base;
+#include "../include/misc.h"
+
#define plus(i) i = i + ONE
static
void init_array (int n,
@@ -23,7 +25,7 @@ void init_array (int n,
for (i=0; i <n; plus(i)) {
- seq[i] = (base)((i+ONE)%FOUR);
+ seq[i] = (base)(modulo((i+ONE),FOUR));
}
for (i=0; i <n; plus(i))
@@ -60,7 +62,6 @@ void kernel_nussinov(int n, base seq[ 60 + 0],
int ONE = 1;
int THREE = 3;
-#pragma scop
for (i = n-ONE; i >= ZERO; i=i-ONE) {
for (j=i+ONE; j<n; plus(j)) {
@@ -82,7 +83,6 @@ void kernel_nussinov(int n, base seq[ 60 + 0],
}
}
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/run-vericert.sh b/benchmarks/polybench-syn/run-vericert.sh
index 3e94427..3be6098 100755
--- a/benchmarks/polybench-syn/run-vericert.sh
+++ b/benchmarks/polybench-syn/run-vericert.sh
@@ -4,7 +4,7 @@ top=$(pwd)
#set up
while read benchmark ; do
echo "Running "$benchmark
- gcc $benchmark.c -o $benchmark.o
+ clang -Wall -Werror -fsanitize=undefined $benchmark.c -o $benchmark.o
./$benchmark.o
cresult=$(echo $?)
echo "C output: "$cresult
@@ -37,6 +37,6 @@ while read benchmark ; do
else
echo "PASS"
fi
-
- echo $cycles > $benchmark.cycle
+ name=$(echo $benchmark | awk -v FS="/" '{print $NF}')
+ echo $name","$cycles >> exec.csv
done < benchmark-list-master
diff --git a/benchmarks/polybench-syn/stencils/adi.c b/benchmarks/polybench-syn/stencils/adi.c
index 5dd406b..a424dec 100644
--- a/benchmarks/polybench-syn/stencils/adi.c
+++ b/benchmarks/polybench-syn/stencils/adi.c
@@ -9,6 +9,7 @@
*/
/* adi.c: this file is part of PolyBench/C */
+#include "../include/misc.h"
#define plus(i) i = i + ONE
static
@@ -64,10 +65,10 @@ void kernel_adi(int tsteps, int n,
mul1 = B1 * DT / (DX * DX);
mul2 = B2 * DT / (DY * DY);
- a = -mul1 / 2;
+ a = -(sdivider(mul1,2));
b = 1+mul1;
c = a;
- d = -mul2 / 2;
+ d = -(sdivider(mul2,2));
e = 1+mul2;
f = d;
int ZERO = 0;
@@ -107,7 +108,7 @@ void kernel_adi(int tsteps, int n,
}
-int main(int argc, char** argv)
+int main()
{
int n = 20;
diff --git a/benchmarks/polybench-syn/stencils/fdtd-2d.c b/benchmarks/polybench-syn/stencils/fdtd-2d.c
index b699937..17acd34 100644
--- a/benchmarks/polybench-syn/stencils/fdtd-2d.c
+++ b/benchmarks/polybench-syn/stencils/fdtd-2d.c
@@ -9,7 +9,6 @@
*/
/* fdtd-2d.c: this file is part of PolyBench/C */
-#include <stdio.h>
#define plus(i) i = i + ONE
static
@@ -65,10 +64,6 @@ int print_array(int nx,
res ^= hz[i][j];
}
-#ifndef SYNTHESIS
- printf("finished: %u\n", res);
-#endif
-
return res;
}
@@ -85,8 +80,6 @@ void kernel_fdtd_2d(int tmax,
int t, i, j;
int ONE = 1;
-#pragma scop
-
for(t = 0; t < tmax; t=t+ONE)
{
for (j = 0; j < ny; plus(j))
@@ -105,7 +98,6 @@ void kernel_fdtd_2d(int tmax,
}
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/stencils/jacobi-1d.c b/benchmarks/polybench-syn/stencils/jacobi-1d.c
index 1c3cf79..95cbb35 100644
--- a/benchmarks/polybench-syn/stencils/jacobi-1d.c
+++ b/benchmarks/polybench-syn/stencils/jacobi-1d.c
@@ -9,6 +9,7 @@
*/
/* jacobi-1d.c: this file is part of PolyBench/C */
+#include "../include/misc.h"
#define plus(i) i = i + ONE
static
@@ -23,8 +24,8 @@ void init_array (int n,
for (i = 0; i < n; plus(i))
{
- A[i] = ((int) i+TWO) / n;
- B[i] = ((int) i+THREE) / n;
+ A[i] = divider(((int) i+TWO), n);
+ B[i] = divider(((int) i+THREE), n);
}
}
@@ -59,7 +60,6 @@ void kernel_jacobi_1d(int tsteps,
int t, i;
int ONE = 1;
-#pragma scop
for (t = 0; t < tsteps; plus(t))
{
for (i = 1; i < n - ONE; plus(i)){
@@ -71,7 +71,6 @@ void kernel_jacobi_1d(int tsteps,
A[i] = A[i] >> 2;
}
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/stencils/jacobi-2d.c b/benchmarks/polybench-syn/stencils/jacobi-2d.c
index 3a5b43c..11349f4 100644
--- a/benchmarks/polybench-syn/stencils/jacobi-2d.c
+++ b/benchmarks/polybench-syn/stencils/jacobi-2d.c
@@ -9,6 +9,7 @@
*/
/* jacobi-2d.c: this file is part of PolyBench/C */
+#include "../include/misc.h"
#define plus(i) i = i + ONE
static
@@ -24,8 +25,8 @@ void init_array (int n,
for (i = 0; i < n; plus(i))
for (j = 0; j < n; plus(j))
{
- A[i][j] = ((int) i*(j+TWO) + TWO) / n;
- B[i][j] = ((int) i*(j+THREE) + THREE) / n;
+ A[i][j] = divider(((int) i*(j+TWO) + TWO), n);
+ B[i][j] = divider(((int) i*(j+THREE) + THREE), n);
}
}
@@ -61,7 +62,6 @@ void kernel_jacobi_2d(int tsteps,
int ONE = 1;
int TWO = 2;
-#pragma scop
for (t = 0; t < tsteps; plus(t))
{
for (i = 1; i < n - ONE; plus(i))
@@ -75,7 +75,6 @@ void kernel_jacobi_2d(int tsteps,
A[i][j] = A[i][j] >> TWO;
}
}
-#pragma endscop
}
diff --git a/benchmarks/polybench-syn/stencils/seidel-2d.c b/benchmarks/polybench-syn/stencils/seidel-2d.c
index d4c7f98..23ddc74 100644
--- a/benchmarks/polybench-syn/stencils/seidel-2d.c
+++ b/benchmarks/polybench-syn/stencils/seidel-2d.c
@@ -9,6 +9,8 @@
*/
/* seidel-2d.c: this file is part of PolyBench/C */
+#include "../include/misc.h"
+
#define plus(i) i = i + ONE
static
void init_array (int n,
@@ -20,7 +22,7 @@ void init_array (int n,
for (i = 0; i < n; plus(i))
for (j = 0; j < n; plus(j))
- A[i][j] = ((int) i*(j+TWO) + TWO) / n;
+ A[i][j] = divider(((int) i*(j+TWO) + TWO), n);
}
@@ -55,14 +57,12 @@ void kernel_seidel_2d(int tsteps,
int TWO = 2;
int NINE = 9;
-#pragma scop
for (t = 0; t <= tsteps - ONE; plus(t))
for (i = ONE; i<= n - TWO; plus(i))
for (j = ONE; j <= n - TWO; plus(j))
- A[i][j] = (A[i-ONE][j-ONE] + A[i-ONE][j] + A[i-ONE][j+ONE]
+ A[i][j] = divider((A[i-ONE][j-ONE] + A[i-ONE][j] + A[i-ONE][j+ONE]
+ A[i][j-ONE] + A[i][j] + A[i][j+ONE]
- + A[i+ONE][j-ONE] + A[i+ONE][j] + A[i+ONE][j+ONE])/NINE;
-#pragma endscop
+ + A[i+ONE][j-ONE] + A[i+ONE][j] + A[i+ONE][j+ONE]), NINE);
}
diff --git a/benchmarks/polybench-syn/syn-remote.sh b/benchmarks/polybench-syn/syn-remote.sh
index 79d4824..879db2e 100755
--- a/benchmarks/polybench-syn/syn-remote.sh
+++ b/benchmarks/polybench-syn/syn-remote.sh
@@ -24,7 +24,7 @@ cd ..
if [ $count -eq 4 ]
then
- echo "I am here"
+echo "I am here"
wait
count=0
fi
@@ -33,13 +33,13 @@ done < syn-list
if [ $count -lt 4 ]
then
- wait
+wait
fi
#extract
while read benchmark ; do
cd $benchmark
-echo $(pwd)
+ echo $(pwd)
freq=$(grep MHz syn.sta.rpt | tail -2 | head -1 | awk '{print $2}')
lut=$(sed -n -e 8p syn.fit.summary | awk '{print $6}' | sed 's/,//g')
regs=$(sed -n -e 9p syn.fit.summary | awk '{print $4}')
@@ -47,5 +47,5 @@ echo $(pwd)
dsp=$(sed -n -e 14p syn.fit.summary | awk '{print $5}')
cd ..
echo $benchmark","$freq","$lut","$regs","$bram","$dsp >> results
- done < syn-list
+done < syn-list