+++ title = "Static single assignment" author = "Yann Herklotz" tags = [] categories = [] backlinks = ["2e1d"] forwardlinks = ["2e1f"] zettelid = "2e1e" +++ Static single assignment (SSA) is an intermediate language that is very useful for the analysis and transformation for various optimisations that require data-flow analysis. In standard intermediate languages, registers can be reused, which means it can be quite tricky to analyse the liveness and current value of each register. However, if only one assignment can be made to a register, then it is much easier to perform symbolic analysis on the intermediate representation, because all the registers are fresh. Therefore no sequential substitution needs to be done when performing the evaluation, and it's only necessary to substitute in the values for the registers directly.