在clang中为-O4做了什么优化传递?

时间:2012-12-17 23:42:18

标签: llvm clang llvm-clang

我们正在尝试实现一个jit编译器,其性能应该与使用clang -o4一样。有没有一个地方我可以很容易地获得由-o4指定的clang调用的优化通道列表?

2 个答案:

答案 0 :(得分:9)

据我所知-O4与-O3 +启用LTO(链接时间优化)的含义相同。 请参阅以下代码片段:

另见here

  

您可以使用-emit-llvm或-flto从clang生成bitcode文件,或者使用与-O3 -flto同义的-O4标志。

对于与-O3标志一起使用的优化,请参阅此PassManagerBuilder.cpp文件(查找OptLevel变量 - 它将具有值3)。

答案 1 :(得分:9)

请注意,从LLVM版本5.1 -O4开始,不再意味着链接时间优化。如果你想要,你需要通过-flto。请参阅Xcode 5 Release Notes