我们正在尝试实现一个jit编译器,其性能应该与使用clang -o4一样。有没有一个地方我可以很容易地获得由-o4指定的clang调用的优化通道列表?
答案 0 :(得分:9)
据我所知-O4与-O3 +启用LTO(链接时间优化)的含义相同。 请参阅以下代码片段:
// Manually translate -O to -O2 and -O4 to -O3;
// Check for -O4.
另见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。