我最近开始使用Clang / LLVM,想知道是否有关于-Ox优化级别的特定文档?
我在LLVM文档页面上找不到多少内容。有人可以分享一些链接吗?
感谢。
答案 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问题: