llvm polly,亲自测试

发布于:2025-07-08 ⋅ 阅读:(41) ⋅ 点赞:(0)

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

这个确实可以编译成功

测试是成功的。


网站公告

今日签到

点亮在社区的每一天
去签到