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