静态单一赋值形式的优化

Optimizations in static single assignment form

如果中间表示不在SSA(静态单赋值)中,哪些优化技术无法实现?换句话说,SSA 是可选的还是必需的?

特定优化不需要 SSA,但通常可以更轻松地实施某些优化。

有些编译器不使用 SSA(或者至少在编译器的某些部分不使用它):例如 GCC 的低级 IR 称为 RTL 不是基于 SSA,Go 的后端使用 SSA只有几个版本。 Rust 新引入的 MIR(中级 IR)也不是基于 SSA 的。