n must update the locally tracked variable
Holds if the value defined at
def can reach
use without passing through any other uses, but possibly through phi nodes and uncertain implicit updates.
Gets the destination variable of an update of a tracked variable.
v has an implicit definition at the entry,
b, of the callable.
Holds if a phi node for
v is needed at the beginning of basic block
fw is an update of
c that is relevant for SSA construction.
n might update the locally tracked variable
Holds if there exists a call-chain originating in
call that can update
f on some instance where
call share the same enclosing callable in which a
f is reachable from
The construction of SSA form ensures that each use of a variable is dominated by its definition. A definition of an SSA variable therefore reaches a
ControlFlowNode if it is the closest SSA variable definition that dominates the node. If two definitions dominate a node then one must dominate the other, so therefore the definition of closest is given by the dominator tree. Thus, reaching definitions can be calculated in terms of dominance.