diff --git a/tests/transform/CMakeLists.txt b/tests/transform/CMakeLists.txt index 9d2b2d8..86fcc4e 100644 --- a/tests/transform/CMakeLists.txt +++ b/tests/transform/CMakeLists.txt @@ -6,6 +6,7 @@ add_subdirectory(propagate) add_subdirectory(replace) add_subdirectory(interchange) add_subdirectory(reversal) +add_subdirectory(initialize) if (TSAR_ENABLE_FORTRAN) add_subdirectory(replace_const) diff --git a/tests/transform/initialize/CMakeLists.txt b/tests/transform/initialize/CMakeLists.txt new file mode 100644 index 0000000..9388318 --- /dev/null +++ b/tests/transform/initialize/CMakeLists.txt @@ -0,0 +1,3 @@ +include(sapfor-testing) +sapfor_add_test(TARGET ClangInitialize + TASKS "pass" TEST pass PASSNAME "-initialize") diff --git a/tests/transform/initialize/initialize_1/main.c b/tests/transform/initialize/initialize_1/main.c new file mode 100644 index 0000000..7b9863b --- /dev/null +++ b/tests/transform/initialize/initialize_1/main.c @@ -0,0 +1,8 @@ +int main() { + int a, b, i; + + for (i = 0; i < 1000; i++) { + #pragma spf transform initialize(a = b) + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_1/sample/main.c b/tests/transform/initialize/initialize_1/sample/main.c new file mode 100644 index 0000000..4175d28 --- /dev/null +++ b/tests/transform/initialize/initialize_1/sample/main.c @@ -0,0 +1,8 @@ +int main() { + int a, b, i; + + for (i = 0; i < 1000; i++) { + a = b; + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_1/sample/output.txt b/tests/transform/initialize/initialize_1/sample/output.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/transform/initialize/initialize_1/tsar.conf b/tests/transform/initialize/initialize_1/tsar.conf new file mode 100644 index 0000000..1ecd0b1 --- /dev/null +++ b/tests/transform/initialize/initialize_1/tsar.conf @@ -0,0 +1,8 @@ +plugin = TsarPlugin +add_include_path = $include +sources = main.c +copy = $sources +sample = $copy output.txt +clean = $sample *.orig +options = -initialize +run = "$tsar $sources $options 2>&1 | $perl -p $sys_dir/filters/output.pl >output.txt" diff --git a/tests/transform/initialize/initialize_10/main.c b/tests/transform/initialize/initialize_10/main.c new file mode 100644 index 0000000..16b1d50 --- /dev/null +++ b/tests/transform/initialize/initialize_10/main.c @@ -0,0 +1,9 @@ +int main() { + int i; + int *arr1, *arr2; + + for (i = 0; i < 1000; i++) { + #pragma spf transform initialize(arr1 = arr2) + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_10/sample/main.c b/tests/transform/initialize/initialize_10/sample/main.c new file mode 100644 index 0000000..9df91ee --- /dev/null +++ b/tests/transform/initialize/initialize_10/sample/main.c @@ -0,0 +1,8 @@ +int main() { + int i; + int *arr1, *arr2; + + for (i = 0; i < 1000; i++) { + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_10/sample/output.txt b/tests/transform/initialize/initialize_10/sample/output.txt new file mode 100644 index 0000000..a2225cf --- /dev/null +++ b/tests/transform/initialize/initialize_10/sample/output.txt @@ -0,0 +1,4 @@ +main.c:6:13: warning: Unknown array dimensions. Specify them manually + #pragma spf transform initialize(arr1 = arr2) + ^ +1 warning generated. diff --git a/tests/transform/initialize/initialize_10/tsar.conf b/tests/transform/initialize/initialize_10/tsar.conf new file mode 100644 index 0000000..1ecd0b1 --- /dev/null +++ b/tests/transform/initialize/initialize_10/tsar.conf @@ -0,0 +1,8 @@ +plugin = TsarPlugin +add_include_path = $include +sources = main.c +copy = $sources +sample = $copy output.txt +clean = $sample *.orig +options = -initialize +run = "$tsar $sources $options 2>&1 | $perl -p $sys_dir/filters/output.pl >output.txt" diff --git a/tests/transform/initialize/initialize_11/main.c b/tests/transform/initialize/initialize_11/main.c new file mode 100644 index 0000000..df68357 --- /dev/null +++ b/tests/transform/initialize/initialize_11/main.c @@ -0,0 +1,9 @@ +int main() { + int i; + int arr1[5][10], arr2[5][10]; + + for (i = 0; i < 1000; i++) { + #pragma spf transform initialize(arr1 = arr2 [5][10][20]) + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_11/sample/main.c b/tests/transform/initialize/initialize_11/sample/main.c new file mode 100644 index 0000000..8b767c8 --- /dev/null +++ b/tests/transform/initialize/initialize_11/sample/main.c @@ -0,0 +1,13 @@ +int main() { + int i; + int arr1[5][10], arr2[5][10]; + + for (i = 0; i < 1000; i++) { + for (int i0 = 0; i0 < 5; i0++) { + for (int i1 = 0; i1 < 10; i1++) { + arr1[i0][i1] = arr2[i0][i1]; + } + } + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_11/sample/output.txt b/tests/transform/initialize/initialize_11/sample/output.txt new file mode 100644 index 0000000..83ad9d5 --- /dev/null +++ b/tests/transform/initialize/initialize_11/sample/output.txt @@ -0,0 +1,4 @@ +main.c:6:58: warning: Too many dimensions given + #pragma spf transform initialize(arr1 = arr2 [5][10][20]) + ^ +1 warning generated. diff --git a/tests/transform/initialize/initialize_11/tsar.conf b/tests/transform/initialize/initialize_11/tsar.conf new file mode 100644 index 0000000..1ecd0b1 --- /dev/null +++ b/tests/transform/initialize/initialize_11/tsar.conf @@ -0,0 +1,8 @@ +plugin = TsarPlugin +add_include_path = $include +sources = main.c +copy = $sources +sample = $copy output.txt +clean = $sample *.orig +options = -initialize +run = "$tsar $sources $options 2>&1 | $perl -p $sys_dir/filters/output.pl >output.txt" diff --git a/tests/transform/initialize/initialize_2/main.c b/tests/transform/initialize/initialize_2/main.c new file mode 100644 index 0000000..8bf49a7 --- /dev/null +++ b/tests/transform/initialize/initialize_2/main.c @@ -0,0 +1,8 @@ +int main() { + int a, b, c, i; + + for (i = 0; i < 1000; i++) { + #pragma spf transform initialize(a = b, c = 10) + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_2/sample/main.c b/tests/transform/initialize/initialize_2/sample/main.c new file mode 100644 index 0000000..7488c29 --- /dev/null +++ b/tests/transform/initialize/initialize_2/sample/main.c @@ -0,0 +1,9 @@ +int main() { + int a, b, c, i; + + for (i = 0; i < 1000; i++) { + a = b; + c = 10; + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_2/sample/output.txt b/tests/transform/initialize/initialize_2/sample/output.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/transform/initialize/initialize_2/tsar.conf b/tests/transform/initialize/initialize_2/tsar.conf new file mode 100644 index 0000000..1ecd0b1 --- /dev/null +++ b/tests/transform/initialize/initialize_2/tsar.conf @@ -0,0 +1,8 @@ +plugin = TsarPlugin +add_include_path = $include +sources = main.c +copy = $sources +sample = $copy output.txt +clean = $sample *.orig +options = -initialize +run = "$tsar $sources $options 2>&1 | $perl -p $sys_dir/filters/output.pl >output.txt" diff --git a/tests/transform/initialize/initialize_3/main.c b/tests/transform/initialize/initialize_3/main.c new file mode 100644 index 0000000..4cdaeb3 --- /dev/null +++ b/tests/transform/initialize/initialize_3/main.c @@ -0,0 +1,9 @@ +int main() { + int i; + int arr1[50], arr2[50]; + + for (i = 0; i < 1000; i++) { + #pragma spf transform initialize(arr1 = 1, arr2 = 2 [20]) + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_3/sample/main.c b/tests/transform/initialize/initialize_3/sample/main.c new file mode 100644 index 0000000..5eacefa --- /dev/null +++ b/tests/transform/initialize/initialize_3/sample/main.c @@ -0,0 +1,14 @@ +int main() { + int i; + int arr1[50], arr2[50]; + + for (i = 0; i < 1000; i++) { + for (int i0 = 0; i0 < 50; i0++) { + arr1[i0] = 1; + } + for (int i0 = 0; i0 < 20; i0++) { + arr2[i0] = 2; + } + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_3/sample/output.txt b/tests/transform/initialize/initialize_3/sample/output.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/transform/initialize/initialize_3/tsar.conf b/tests/transform/initialize/initialize_3/tsar.conf new file mode 100644 index 0000000..1ecd0b1 --- /dev/null +++ b/tests/transform/initialize/initialize_3/tsar.conf @@ -0,0 +1,8 @@ +plugin = TsarPlugin +add_include_path = $include +sources = main.c +copy = $sources +sample = $copy output.txt +clean = $sample *.orig +options = -initialize +run = "$tsar $sources $options 2>&1 | $perl -p $sys_dir/filters/output.pl >output.txt" diff --git a/tests/transform/initialize/initialize_4/main.c b/tests/transform/initialize/initialize_4/main.c new file mode 100644 index 0000000..79bae2e --- /dev/null +++ b/tests/transform/initialize/initialize_4/main.c @@ -0,0 +1,14 @@ +int main() { + int i, N = 70; + int arr1[50], arr2[50]; + int brr1[60], brr2[60]; + int *crr1, *crr2; + + /*crr1 = (int*)malloc(N * sizeof(int)); + crr2 = (int*)malloc(N * sizeof(int));*/ + + for (i = 0; i < 1000; i++) { + #pragma spf transform initialize(arr1 = arr2, brr1 = brr2 [20], crr1 = crr2 [30]) + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_4/sample/main.c b/tests/transform/initialize/initialize_4/sample/main.c new file mode 100644 index 0000000..a71b1ed --- /dev/null +++ b/tests/transform/initialize/initialize_4/sample/main.c @@ -0,0 +1,22 @@ +int main() { + int i, N = 70; + int arr1[50], arr2[50]; + int brr1[60], brr2[60]; + int *crr1, *crr2; + + /*crr1 = (int*)malloc(N * sizeof(int)); + crr2 = (int*)malloc(N * sizeof(int));*/ + + for (i = 0; i < 1000; i++) { + for (int i0 = 0; i0 < 50; i0++) { + arr1[i0] = arr2[i0]; + } + for (int i0 = 0; i0 < 20; i0++) { + brr1[i0] = brr2[i0]; + } + for (int i0 = 0; i0 < 30; i0++) { + crr1[i0] = crr2[i0]; + } + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_4/sample/output.txt b/tests/transform/initialize/initialize_4/sample/output.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/transform/initialize/initialize_4/tsar.conf b/tests/transform/initialize/initialize_4/tsar.conf new file mode 100644 index 0000000..1ecd0b1 --- /dev/null +++ b/tests/transform/initialize/initialize_4/tsar.conf @@ -0,0 +1,8 @@ +plugin = TsarPlugin +add_include_path = $include +sources = main.c +copy = $sources +sample = $copy output.txt +clean = $sample *.orig +options = -initialize +run = "$tsar $sources $options 2>&1 | $perl -p $sys_dir/filters/output.pl >output.txt" diff --git a/tests/transform/initialize/initialize_5/main.c b/tests/transform/initialize/initialize_5/main.c new file mode 100644 index 0000000..80fd882 --- /dev/null +++ b/tests/transform/initialize/initialize_5/main.c @@ -0,0 +1,8 @@ +int main() { + int i; + int arr1[5][6][7], arr2[5][6][7]; + for (i = 0; i < 1000; i++) { + #pragma spf transform initialize(arr1 = arr2) + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_5/sample/main.c b/tests/transform/initialize/initialize_5/sample/main.c new file mode 100644 index 0000000..ac11879 --- /dev/null +++ b/tests/transform/initialize/initialize_5/sample/main.c @@ -0,0 +1,14 @@ +int main() { + int i; + int arr1[5][6][7], arr2[5][6][7]; + for (i = 0; i < 1000; i++) { + for (int i0 = 0; i0 < 5; i0++) { + for (int i1 = 0; i1 < 6; i1++) { + for (int i2 = 0; i2 < 7; i2++) { + arr1[i0][i1][i2] = arr2[i0][i1][i2]; + } + } + } + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_5/sample/output.txt b/tests/transform/initialize/initialize_5/sample/output.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/transform/initialize/initialize_5/tsar.conf b/tests/transform/initialize/initialize_5/tsar.conf new file mode 100644 index 0000000..1ecd0b1 --- /dev/null +++ b/tests/transform/initialize/initialize_5/tsar.conf @@ -0,0 +1,8 @@ +plugin = TsarPlugin +add_include_path = $include +sources = main.c +copy = $sources +sample = $copy output.txt +clean = $sample *.orig +options = -initialize +run = "$tsar $sources $options 2>&1 | $perl -p $sys_dir/filters/output.pl >output.txt" diff --git a/tests/transform/initialize/initialize_6/main.c b/tests/transform/initialize/initialize_6/main.c new file mode 100644 index 0000000..45a759a --- /dev/null +++ b/tests/transform/initialize/initialize_6/main.c @@ -0,0 +1,8 @@ +int main() { + int i; + int arr1[5][6][7], arr2[5][6][7]; + for (i = 0; i < 1000; i++) { + #pragma spf transform initialize(arr1 = arr2 [2] [3] [4]) + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_6/sample/main.c b/tests/transform/initialize/initialize_6/sample/main.c new file mode 100644 index 0000000..0bc235c --- /dev/null +++ b/tests/transform/initialize/initialize_6/sample/main.c @@ -0,0 +1,14 @@ +int main() { + int i; + int arr1[5][6][7], arr2[5][6][7]; + for (i = 0; i < 1000; i++) { + for (int i0 = 0; i0 < 2; i0++) { + for (int i1 = 0; i1 < 3; i1++) { + for (int i2 = 0; i2 < 4; i2++) { + arr1[i0][i1][i2] = arr2[i0][i1][i2]; + } + } + } + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_6/sample/output.txt b/tests/transform/initialize/initialize_6/sample/output.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/transform/initialize/initialize_6/tsar.conf b/tests/transform/initialize/initialize_6/tsar.conf new file mode 100644 index 0000000..1ecd0b1 --- /dev/null +++ b/tests/transform/initialize/initialize_6/tsar.conf @@ -0,0 +1,8 @@ +plugin = TsarPlugin +add_include_path = $include +sources = main.c +copy = $sources +sample = $copy output.txt +clean = $sample *.orig +options = -initialize +run = "$tsar $sources $options 2>&1 | $perl -p $sys_dir/filters/output.pl >output.txt" diff --git a/tests/transform/initialize/initialize_7/main.c b/tests/transform/initialize/initialize_7/main.c new file mode 100644 index 0000000..881999a --- /dev/null +++ b/tests/transform/initialize/initialize_7/main.c @@ -0,0 +1,14 @@ +int main() { + int i; + int **arr; + + /*arr = (int**)malloc(128 * sizeof(int*)); + for (i = 0; i < 128; i++) { + arr[i] = (int*)malloc(256 * sizeof(int)); + }*/ + + for (i = 0; i < 1000; i++) { + #pragma spf transform initialize(arr = 5 [128] [256]) + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_7/sample/main.c b/tests/transform/initialize/initialize_7/sample/main.c new file mode 100644 index 0000000..7caa1d2 --- /dev/null +++ b/tests/transform/initialize/initialize_7/sample/main.c @@ -0,0 +1,18 @@ +int main() { + int i; + int **arr; + + /*arr = (int**)malloc(128 * sizeof(int*)); + for (i = 0; i < 128; i++) { + arr[i] = (int*)malloc(256 * sizeof(int)); + }*/ + + for (i = 0; i < 1000; i++) { + for (int i0 = 0; i0 < 128; i0++) { + for (int i1 = 0; i1 < 256; i1++) { + arr[i0][i1] = 5; + } + } + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_7/sample/output.txt b/tests/transform/initialize/initialize_7/sample/output.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/transform/initialize/initialize_7/tsar.conf b/tests/transform/initialize/initialize_7/tsar.conf new file mode 100644 index 0000000..1ecd0b1 --- /dev/null +++ b/tests/transform/initialize/initialize_7/tsar.conf @@ -0,0 +1,8 @@ +plugin = TsarPlugin +add_include_path = $include +sources = main.c +copy = $sources +sample = $copy output.txt +clean = $sample *.orig +options = -initialize +run = "$tsar $sources $options 2>&1 | $perl -p $sys_dir/filters/output.pl >output.txt" diff --git a/tests/transform/initialize/initialize_8/main.c b/tests/transform/initialize/initialize_8/main.c new file mode 100644 index 0000000..c04f6d8 --- /dev/null +++ b/tests/transform/initialize/initialize_8/main.c @@ -0,0 +1,9 @@ +int main() { + int i; + int arr1[10], arr2[10][20]; + + for (i = 0; i < 1000; i++) { + #pragma spf transform initialize(arr1 = arr2) + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_8/sample/main.c b/tests/transform/initialize/initialize_8/sample/main.c new file mode 100644 index 0000000..a3c0b15 --- /dev/null +++ b/tests/transform/initialize/initialize_8/sample/main.c @@ -0,0 +1,8 @@ +int main() { + int i; + int arr1[10], arr2[10][20]; + + for (i = 0; i < 1000; i++) { + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_8/sample/output.txt b/tests/transform/initialize/initialize_8/sample/output.txt new file mode 100644 index 0000000..4a587c7 --- /dev/null +++ b/tests/transform/initialize/initialize_8/sample/output.txt @@ -0,0 +1,4 @@ +main.c:6:13: warning: Array dimensions do not match + #pragma spf transform initialize(arr1 = arr2) + ^ +1 warning generated. diff --git a/tests/transform/initialize/initialize_8/tsar.conf b/tests/transform/initialize/initialize_8/tsar.conf new file mode 100644 index 0000000..1ecd0b1 --- /dev/null +++ b/tests/transform/initialize/initialize_8/tsar.conf @@ -0,0 +1,8 @@ +plugin = TsarPlugin +add_include_path = $include +sources = main.c +copy = $sources +sample = $copy output.txt +clean = $sample *.orig +options = -initialize +run = "$tsar $sources $options 2>&1 | $perl -p $sys_dir/filters/output.pl >output.txt" diff --git a/tests/transform/initialize/initialize_9/main.c b/tests/transform/initialize/initialize_9/main.c new file mode 100644 index 0000000..1a24365 --- /dev/null +++ b/tests/transform/initialize/initialize_9/main.c @@ -0,0 +1,11 @@ +int main() { + int i; + int a; + + int foo(); + + for (i = 0; i < 1000; i++) { + #pragma spf transform initialize(foo = a) + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_9/sample/main.c b/tests/transform/initialize/initialize_9/sample/main.c new file mode 100644 index 0000000..1a24365 --- /dev/null +++ b/tests/transform/initialize/initialize_9/sample/main.c @@ -0,0 +1,11 @@ +int main() { + int i; + int a; + + int foo(); + + for (i = 0; i < 1000; i++) { + #pragma spf transform initialize(foo = a) + } + return 0; +} \ No newline at end of file diff --git a/tests/transform/initialize/initialize_9/sample/output.txt b/tests/transform/initialize/initialize_9/sample/output.txt new file mode 100644 index 0000000..1a0fd93 --- /dev/null +++ b/tests/transform/initialize/initialize_9/sample/output.txt @@ -0,0 +1,5 @@ +main.c:8:38: error: Given DeclRefExpr is not a variable + #pragma spf transform initialize(foo = a) + ^ +1 error generated. +Error while processing main.c. diff --git a/tests/transform/initialize/initialize_9/tsar.conf b/tests/transform/initialize/initialize_9/tsar.conf new file mode 100644 index 0000000..1ecd0b1 --- /dev/null +++ b/tests/transform/initialize/initialize_9/tsar.conf @@ -0,0 +1,8 @@ +plugin = TsarPlugin +add_include_path = $include +sources = main.c +copy = $sources +sample = $copy output.txt +clean = $sample *.orig +options = -initialize +run = "$tsar $sources $options 2>&1 | $perl -p $sys_dir/filters/output.pl >output.txt" diff --git a/tests/transform/initialize/pass b/tests/transform/initialize/pass new file mode 100644 index 0000000..a8332d4 --- /dev/null +++ b/tests/transform/initialize/pass @@ -0,0 +1,13 @@ +parallel +initialize_1/tsar +initialize_2/tsar +initialize_3/tsar +initialize_4/tsar +initialize_5/tsar +initialize_6/tsar +initialize_7/tsar +initialize_8/tsar +initialize_9/tsar +initialize_10/tsar +initialize_11/tsar +end_parallel \ No newline at end of file