Single-Pass Generation of Static Single Assignment Form for Structured Languages

Marc Brandis, Hanspeter Mössenböck
ETH Zurich
Institute for Computer Systems
CH-8092 Zurich


Over the last few years, static single assignment (SSA) form has been established as a suitable intermediate program representation that allows new powerful optimizations and simplifies others considerably. Algorithms are known that generate SSA form from programs with an arbitrary flow of control. These algorithms need several passes. We show that it is possible to generate SSA form in a single pass (even during parsing) if the program contains only structured control flow (i.e., no gotos). For such programs the dominator tree can be built on the fly, too.

Published in ACM Transactions on Programming Languages and Systems 16(6): 1684-1698, Nov.1994.

You can download the paper in postscript or in compressed postscript.