3 ms·
> SSA doesn't require deconstruction. Keep it all the way to the machine code. At some point you need to insert moves, either before or after register allocati
by titzer 3y ago
> SSA doesn't require deconstruction. Keep it all the way to the machine code.
At some point you need to insert moves, either before or after register allocation. If you do it after register allocation (i.e. regalloc on SSA form), then there are certain benefits to the regalloc algorithm (a slew of papers from 2005-2015 or so), but there are missed opportunities to reschedule the moves.
It's possible to directly interpret SSA form. I am doing that now in my Virgil compiler.
But I don't think it's good for a bytecode, because that forces producers to do the transform and requires more locals (because you can only assign to them once).
> interpreting code directly as one walks the ascii file.
I'm mostly thinking of binary code, e.g. Wasm. I wrote two of the papers referenced in the article.