From f5a51d315991d187015fb2c5b12d25b3e07569ab Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 21 Sep 2018 13:37:48 +0200 Subject: [PATCH 1/2] add some polly checks --- debian/qualify-clang.sh | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) mode change 100644 => 100755 debian/qualify-clang.sh diff --git a/debian/qualify-clang.sh b/debian/qualify-clang.sh old mode 100644 new mode 100755 index 6dbd33a7..169ecbf9 --- a/debian/qualify-clang.sh +++ b/debian/qualify-clang.sh @@ -272,6 +272,52 @@ g++ -nostdinc++ -I/usr/lib/llvm-$VERSION/bin/../include/c++/v1/ -L/usr/lib/llvm- foo.cpp -nodefaultlibs -std=c++17 -lc++ -lc++abi -lm -lc -lgcc_s -lgcc ./o > /dev/null + +if test ! -f /usr/lib/llvm-$VERSION/include/polly/LinkAllPasses.h; then + echo "Install libclang-common-$VERSION-dev for polly"; + exit -1; +fi + +# Polly +echo " +#define N 1536 +float A[N][N]; +float B[N][N]; +float C[N][N]; + +void init_array() +{ + int i, j; + for (i = 0; i < N; i++) { + for (j = 0; j < N; j++) { + A[i][j] = (1+(i*j)%1024)/2.0; + B[i][j] = (1+(i*j)%1024)/2.0; + } + } +} + +int main() +{ + int i, j, k; + double t_start, t_end; + init_array(); + for (i = 0; i < N; i++) { + for (j = 0; j < N; j++) { + C[i][j] = 0; + for (k = 0; k < N; k++) + C[i][j] = C[i][j] + A[i][k] * B[k][j]; + } + } + return 0; +} +" > foo.c +clang-$VERSION -O3 -mllvm -polly foo.c +clang-$VERSION -O3 -mllvm -polly -mllvm -polly-parallel -lgomp foo.c +clang-$VERSION -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine foo.c +clang-$VERSION -S -emit-llvm foo.c -o matmul.s +opt-$VERSION -S -polly-canonicalize matmul.s > matmul.preopt.ll > /dev/null +opt-$VERSION -basicaa -polly-ast -analyze -q matmul.preopt.ll -polly-process-unprofitable > /dev/null + echo "b main run bt @@ -352,6 +398,8 @@ mkdir cmaketest/foo/ rm -rf cmaketest + + CLANG=clang-$VERSION #command -v "$CLANG" 1>/dev/null 2>/dev/null || { printf "Usage:\n%s CLANGEXE [ARGS]\n" "$0" 1>&2; exit 1; } #shift From 45ea05d3d4f7f50d0c31fbd8517e3bd1b9052064 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 21 Sep 2018 13:38:55 +0200 Subject: [PATCH 2/2] remove a warning --- debian/qualify-clang.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/qualify-clang.sh b/debian/qualify-clang.sh index 169ecbf9..04df9a22 100755 --- a/debian/qualify-clang.sh +++ b/debian/qualify-clang.sh @@ -171,7 +171,7 @@ echo 'int main() { return a; } ' > foo.c -clang++-$VERSION -g -o bar foo.c +clang-$VERSION -g -o bar foo.c if test ! -f /usr/lib/llvm-$VERSION/lib/libomp.so; then