LLVM优化级别的含义

时间:2014-01-30 03:40:11

标签: optimization compiler-construction llvm

我最近开始使用Clang / LLVM,想知道是否有关于-Ox优化级别的特定文档?

我在LLVM文档页面上找不到多少内容。有人可以分享一些链接吗?

感谢。

1 个答案:

答案 0 :(得分:15)

Clang的命令行选项文档确实非常差,特别是你说对于优化级别几乎没有任何解释是正确的。

然而,FreeBSD会添加man page with a useful summary

  

-O0 -O1 -O2 -Os -Oz -O3 -O4
             指定要使用的优化级别。 -O0表示“不          优化“:这个级别编译最快并生成          最可调试的代码。 -O2是中等水平的优化          这可以实现大多数优化。 -Os就像-O2一样          优化以减少代码大小。 -Oz就像-Os(因此-O2),          但进一步减少代码大小。 -O3就像-O2,除了它          支持执行时间更长或可能需要更长时间的优化          生成更大的代码(试图让程序运行          快点)。在支持的平台上,-O4启用链接时          优化;目标文件存储在LLVM bitcode文件中          格式和整个程序优化在链接时完成。 -O1是          介于-O0和-O2之间。

如果您要查找为每个优化执行的确切传递列表,请参阅此Stackoverflow问题: