diff options
Diffstat (limited to 'content/zettel/2e1b1b.md')
-rw-r--r-- | content/zettel/2e1b1b.md | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/content/zettel/2e1b1b.md b/content/zettel/2e1b1b.md new file mode 100644 index 0000000..a212bb6 --- /dev/null +++ b/content/zettel/2e1b1b.md @@ -0,0 +1,25 @@ ++++ +title = "Main simple explanation of GSA construction" +author = "Yann Herklotz" +tags = [] +categories = [] +backlinks = ["2e1b1a"] +forwardlinks = ["3a8"] +zettelid = "2e1b1b" ++++ + +The main explanation is quite simple, however, the details are not that +easy. Once one has constructed SSA with φ functions, the translation to +GSA is as follows: + +- Loops have to be identified, and these are normalised using + pre-header (PH), post-body (PB), post-exit (PE) nodes, which in the + case of CompCertSSA ([\#3a8]), means that these are populated with + extra Inop instructions. +- Then, PH nodes are populated with μ functions, and for each variable + that has a μ function assignment we also generate a η function + assignments for those variables. +- Finally, the other φ functions are replaced by γ functions, where + the predicate needs to be found first. + + [\#3a8]: /zettel/3a8 |