Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Oh man, block-argument-SSA makes so much more sense to me than Φ-SSA. That alone is going to change my life. Thank you, Max!

A lot of this process is the same as graph-coloring register allocation on SSA, of which I found an extensive explanation in Appel's textbook. I think it's maybe time for me to go back to it and do the exercises so I really understand it. The book unfortunately predates the linear allocator age.

The link to https://brrt-to-the-future.blogspot.com/2019/03/reverse-line..., which is a learner's introduction to the LuaJIT reverse linear scan allocator, also seems valuable.



Because block-argument is actually the “right way”. The phi-node is very un-natural.. in the same sort of way that pi should have been tau.

Also, notice the connection here between Phi nodes and Continuation Passing Style (CPS). It because obvious with the block-arg form because it’s just the same thing. Jumps to blocks are just calls that don’t return.


Yes, I'd never understood what people meant when they said that SSA was the same thing as CPS, but with block-argument SSA it's clear.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: