summaryrefslogtreecommitdiffstats
path: root/content/zettel/3a8g5e1.md
blob: 1234d40fb908f5e6713edabc7c66c5886340b60a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
+++
title = "Removing variables that cannot be evaluated"
author = "Yann Herklotz"
tags = []
categories = []
backlinks = ["3a8g5e"]
forwardlinks = ["3a8g5e2", "3a8g5e1a"]
zettelid = "3a8g5e1"
+++

In SSA, at each program point, only variables who's definition point
dominates the current program point can be evaluated using the SSA
equations. It is therefore important that all the variables inside of
the SSA form should always dominate the current program point, and
especially with predicates that are propagated, these predicates will
need to be adjusted to only contain the correct variables.

This can be done by replacing any predicate, whether it's the condition
or it's negation, by T. This will definitely be correct for the
propagation of the truth values of predicates, but might not be
sufficient for the value of ɣ functions.