blob: a212bb69c75b7125b8d943fd8f7840b04beb7e04 (
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
|
+++
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
|