执行rustc -C help
显示(除其他外):
-C opt-level=val -- optimize with possible levels 0-3, s, or z
0到3的级别非常直观,我认为:级别越高,执行的优化程度越高。但是,我不知道s
和z
选项正在做什么,我找不到与Rust相关的信息。
答案 0 :(得分:17)
似乎你并不是唯一一个感到困惑的人,如in a Rust issue所述。它似乎遵循与Clang相同的模式:
Os
用于在编译时优化大小。 Oz
进行更多尺寸优化。答案 1 :(得分:12)
答案 2 :(得分:1)
这两个序列,Os 和 Oz,在 LLVM 中,非常相似。 Oz 调用 260 次传递(我使用的是 LLVM 12.0),而 Os 调用 264 次。Oz 的分析和优化序列几乎是 Os' 的严格子序列,除了一次传递(opt -loops),它出现在内部的不同位置操作系统这就是说,请注意优化的效果仍然可能不同,因为它们使用不同的成本模型,例如,确定优化行为的常量。因此,对大小有影响的优化,如循环展开和内联,在这两个序列中的表现可能不同。