静态单一赋值形式的优化
Optimizations in static single assignment form
如果中间表示不在SSA(静态单赋值)中,哪些优化技术无法实现?换句话说,SSA 是可选的还是必需的?
特定优化不需要 SSA,但通常可以更轻松地实施某些优化。
有些编译器不使用 SSA(或者至少在编译器的某些部分不使用它):例如 GCC 的低级 IR 称为 RTL 不是基于 SSA,Go 的后端使用 SSA只有几个版本。 Rust 新引入的 MIR(中级 IR)也不是基于 SSA 的。
如果中间表示不在SSA(静态单赋值)中,哪些优化技术无法实现?换句话说,SSA 是可选的还是必需的?
特定优化不需要 SSA,但通常可以更轻松地实施某些优化。
有些编译器不使用 SSA(或者至少在编译器的某些部分不使用它):例如 GCC 的低级 IR 称为 RTL 不是基于 SSA,Go 的后端使用 SSA只有几个版本。 Rust 新引入的 MIR(中级 IR)也不是基于 SSA 的。