Constructing SSA the Easy Way

My good colleague of mine, Michael Bebenita, has written a short paper on how to construct Static Single Assignment, a common way to represent programs in optimizing compilers. Check it out here.


Static Single Assignment (SSA) form has become ubiquitous in compilers as an intermediate program representation. The use of SSA simplifies many compiler optimizations and makes the life of compiler writers easier. Many techniques exist to convert programs into SSA form, many of which I find unnecessarily difficult. In this paper I will present a simple technique to convert programs in and out of SSA form.