Skip to content

Static single assignment for functional programmers (2011)

wingolog.org
17 pointssmcgivern2 comments
On HN

Comments

This is very well written. I want to mention two other IL that takes SSA even closer to a functional representation: thinned gated single-assignment (TGSA) form and the Value Dependence Graph.

I've used the former with pleasure as a lot of traditional passes become trivially done by construction: global common subexpression elimination, copy propagation, dead code elimination, and constant propagation. With very little extra work you also get strength reduction, expression hoisting, and a host of other things that I'm forgetting.

I never understood why this wasn't more popular as old-school SSA, as used by even LLVM, is so terribly clunky and inefficient.

I always love reading his blog posts. I honestly don't know how one finds the time to write that well at that length and still turn out guile et al., plus whatever his "day job" is.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.