Choosing A Compiler Backend

SSA with phi nodes

By far the most common backend design.

SSA with parameters

Used in the Swift compiler.

Intuitive, but some tradeoffs for optimisation:


Popular in the literature and in a few functional language implementations.

MLton moved from CPS to SSA and has a great discussion of tradeoffs: