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
这个确实可以编译成功
测试是成功的。