llvm polly,亲自测试

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

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

这个确实可以编译成功

测试是成功的。

相关推荐
好好学习啊天天向上1 天前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
好好学习啊天天向上1 个月前
多面体基准测试集PolyBench
自动性能优化