Class Sem::SsaPhiNode
A phi node in the SSA form. A phi node is a kind of node in the SSA form that represents a merge point where multiple control flow paths converge and the value of a variable needs to be selected according to which control flow path was taken. For example, in the following Ruby code:
if b
x = 0
else
x = 1
end
puts x
A phi node for x is inserted just before the call puts x, since the
value of x may come from either x = 0 or x = 1.
Import path
import semmle.code.java.dataflow.RangeAnalysisDirect supertypes
Indirect supertypes
Predicates
| hasInputFromBlock | Holds if |
Inherited predicates
| definesAt | Holds if this SSA definition defines | from Definition |
| getARead | Gets a read of this SSA definition. | from SsaDefinition |
| getAUse | Gets an expression reading the value of this SSA variable. | from SsaVariable |
| getAnUltimateDefinition | Gets a definition that ultimately defines this SSA definition and is not itself a phi definition. | from SsaDefinition |
| getBasicBlock | Gets the basic block to which this SSA definition belongs. | from Definition |
| getControlFlowNode | Gets the control flow node of this SSA definition. | from SsaDefinition |
| getLocation | Gets the location of this SSA definition. | from Definition |
| getSourceVariable | Gets the source variable underlying this SSA definition. | from Definition |
| isLiveAtEndOfBlock | Holds if this SSA definition is live at the end of basic block | from SsaDefinition |
| toString | Gets a textual representation of this SSA definition. | from SsaDefinition |