Static single-assignment form: Difference between revisions

Content deleted Content added
Fadmmatt (talk | contribs)
m Fixed up further reading.
Line 99:
<i>Simple copy insertion, algorithms to reduce copies, etc. If overlapping lifetimes are allowed simply dropping the subscripts doesn't work. Pure SSA form doesn't really use subscripts anyway.</i>
 
== Extensions to SSA form ==can be divided into two categories.
 
''Renaming scheme'' extensions alter the renaming criterion. Recall
<i>Many possible extensions to talk about. Probably the most important are ones involving memory, gated SSA form, and array SSA form.</i>
that SSA form renames each variable when it is assigned a value. Alternative schemes include static single use form (which renames each variable at each statement when it is used) and static single information
form (which renames each variable when it is assigned a value, and in each conditional context in which that variable is used).
 
''Feature-specific'' extensions retain the single assignment
property for variables, but incorporate new semantics to
model additional features. Some feature-specific
extensions model high-level programming language features like
arrays, objects and aliased pointers. Other feature-specific
extensions model low-level architectural features like
speculation and predication.
 
<i>Is it necessary to enumerate all known SSA extensions? Should each extension have a separate page? What about gated single assignment form, which is probably the most popular SSA extension?</i>
 
== Compilers using SSA form ==