summaryrefslogtreecommitdiffstats
path: root/content/zettel/2e1e.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/zettel/2e1e.md')
-rw-r--r--content/zettel/2e1e.md20
1 files changed, 20 insertions, 0 deletions
diff --git a/content/zettel/2e1e.md b/content/zettel/2e1e.md
new file mode 100644
index 0000000..5c0802b
--- /dev/null
+++ b/content/zettel/2e1e.md
@@ -0,0 +1,20 @@
++++
+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.