Single-Pass Generation of Static Single Assignment Form for Structured Languages
Marc Brandis, Hanspeter Mössenböck
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.