LLVM opt 工具不会矢量化由 clang -O0 生成的 IR

LLVM opt tool does not vectorize IR generated by clang -O0

我正在尝试基于从 opt 工具借用的优化管道构建 JIT 编译器。 但是我遇到了一个问题,即我的 JIT 没有对代码进行矢量化。 我试着用 opt on simple example here 重现它。 https://godbolt.org/z/eRKrLa

在该示例中,clang -O3 发出矢量化 IR,但是如果我尝试优化 clang -O0 生成的 IR,它不会做任何更改。

我做错了什么?

这是意料之中的。 clang -O0 的输出不打算重新优化。你需要做类似 clang -O3 -mllvm -disable-llvm-optzns

的事情