【问题标题】:How to turn off vectorization in opt (LLVM)如何在 opt (LLVM) 中关闭矢量化
【发布时间】: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


【解决方案1】:

经过验证的方法是检查来源:https://github.com/llvm-mirror/llvm/blob/master/tools/opt/opt.cpp

您正在寻找opt -disable-loop-vectorization ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 2021-03-01
    • 2010-09-29
    • 2015-04-07
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多