1)下載并安裝
Polly - Getting Started
git clone https://github.com/llvm/llvm-project.git
大概需要半個小時,有時候被墻掉就打不開
2)
mkdir build && cd build cmake '-DLLVM_ENABLE_PROJECTS=clang;polly' ../llvm cmake --build .
先cmake一下
應該就是make吧
3)
cmake --build . --target check-polly
這個命令沒有測試過
4)
bin/clang -O3 -mllvm -polly hello.c
這個馬上測試一下
5)clang安裝成功了
a@a:~/src$ which clang
/home/a/src/llvm-project/build/bin/clang
?
6)有個polly-isl-test
7)llvm中文件夾有polly
a@a:~/src/llvm-project$ ls
bolt ? clang-tools-extra ? compiler-rt ? ? ? ? ?flang ? ? libc ? ?libcxxabi ? ?lld ? llvm-libgcc ?openmp ? ? ? ? ?README.md ? ?third-party
build ?cmake ? ? ? ? ? ? ? CONTRIBUTING.md ? ? ?flang-rt ?libclc ?libunwind ? ?lldb ?mlir ? ? ? ? polly ? ? ? ? ? runtimes ? ? utils
clang ?CODE_OF_CONDUCT.md ?cross-project-tests ?install ? libcxx ?LICENSE.TXT ?llvm ?offload ? ? ?pyproject.toml ?SECURITY.md
?
8)編譯GEMM
a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2/linear-algebra/blas/gemm$ clang -O3 gemm.c -o a1.o3
gemm.c:18:10: fatal error: 'polybench.h' file not found
? ?18 | #include <polybench.h>
? ? ? | ? ? ? ? ?^~~~~~~~~~~~~
1 error generated.
?
出錯了,沒有polybench.h
8.1)解決方法
a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2$ find ./ -name polybench.h
./utilities/polybench.h
?
9)
?clang -I/home/a/src/a3.llvm.polly/a1.polybench-c-4.2/utilities -O3 gemm.c ?-o a1.o3
/usr/bin/ld: /tmp/gemm-ea247d.o: in function `main':
gemm.c:(.text+0x1c): undefined reference to `polybench_alloc_data'
/usr/bin/ld: gemm.c:(.text+0x2e): undefined reference to `polybench_alloc_data'
/usr/bin/ld: gemm.c:(.text+0x40): undefined reference to `polybench_alloc_data'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
?
還有個什么庫嗎?
10)查看README
gcc -I utilities -I linear-algebra/kernels/atax utilities/polybench.c linear-algebra/kernels/atax/atax.c -o atax_base
這個確實可以編譯成功
測試是成功的。