summaryrefslogtreecommitdiffstats
path: root/content/zettel/3a8g3.md
blob: 9a69da79a39cfc1bf43c44453adec4413e0bac5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
+++
title = "Inserting nodes and ensuring SSA and CSSA well-formedness"
author = "Yann Herklotz"
tags = []
categories = []
backlinks = ["3a8g2"]
forwardlinks = ["3a8g4"]
zettelid = "3a8g3"
+++

There are various issues that are encountered when generating SSA code,
not only for the SSA properties, but also to allow the SSA to be
destructured properly to RTL code.

Therefore, when adding an arbitrary node, which has to be done for the
conversion of η functions [(#3a8g1]), one has to be extremely careful
what nodes one adds. The first problem is that η functions might
actually lead to a junction point, or be right after a junction point,
in which case the previous and next instructions must be Inop
instructions according to the well-formedness property that CSSA
requires.

This well-formedness property can be ensured by adding an Inop
instruction before and after the moves introduced during the translation
of the η function.

  [(#3a8g1]: 3a8g1.md#3a8g1