【发布时间】:2015-05-07 10:54:44
【问题描述】:
我正在努力理解 polly(LLVM 的多面体优化器)的内部工作,但我遇到了一个问题:我知道如何在 Clang 中关闭矢量化(-fno-vectorize 命令选项可以),但是在做opt中的相同让我感到困惑。文档仅显示如何打开此通道,而不是关闭。据我所知,省略它的唯一方法是使用clang,它无法打印通行证统计信息(或者我找不到如何打印)。 谁能帮我?谢谢!
我正在使用以下命令来运行程序:
clang -Xclang -load -Xclang ~/llvm_build/tools/polly/Debug+Asserts/lib/LLVMPolly.so -O3 -fno-vectorize -mllvm -polly -mllvm -polly-vectorizer=polly -S -emit-llvm in.c -o out.ll
opt -load ~/{Polly shared lib}.so -O3 -polly -polly-vectorizer=polly -stats in.ll -o out.ll
第一个省略了clang向量化,但不打印统计数据,第二个打印统计数据,但使用了我不想要的向量化。
【问题讨论】:
-
试试
opt -load ~/{Polly shared lib}.so -O0 -polly -polly-vectorizer=polly -stats in.ll -o out.ll -
opt 不以
-O0为参数,最小值为-O1 -
而
O1包括矢量化? -
所有 LLVM 编译都包括矢量化,根据我从文档页面的理解(“循环矢量化器默认启用,但可以使用命令行标志通过 clang 禁用它”)。文档提到在 clang 中禁用它,但在 opt 中没有。
标签: compiler-construction clang llvm vectorization