Gets an expression that guards this expression. That is, this expression is
only reached when the returned expression has abstract value
sub is a sub expression of the guarding expression that is
structurally equal to this expression.
In case this expression or
sub accesses an SSA variable in its
left-most qualifier, then so must the other (accessing the same SSA