Class SSA::PhiFunction

A Phi-function as specified in classic SSA form.

Direct supertypes

Indirect supertypes



Gets a use of this definition as defined by the SsaSourceVariable class.


Gets an input variable for this phi node.


Gets the basic block that succeeds this phi node.


Gets the input variable for this phi node on the edge pred -> this.getBasicBlock(), if any.


Gets the location of a control flow node that is indicative of this definition. Since definitions may occur on edges of the control flow graph, the given location may be imprecise. Distinct EssaDefinitions may return the same ControlFlowNode even for the same variable.


Gets a representation of this SSA definition for debugging purposes. Since this is primarily for debugging and testing, performance may be poor.


Gets the variable which is the common and complete input to all pi-nodes that are themselves inputs to this phi-node. For example: x = y() if complicated_test(x): do_a() else: do_b() phi Which gives us the ESSA form: x0 = y() x1 = pi(x0, complicated_test(x0)) x2 = pi(x0, not complicated_test(x0)) x3 = phi(x1, x2) However we may not be able to track the value of x through compilated_test meaning that we cannot track x from x0 to x3. By using getShortCircuitInput() we can do so, since the short-circuit input of x3 is x0.


Gets the source variable for which this a definition, either explicit or implicit.


Holds if forall incoming edges in the flow graph, there is an input variable


Holds if this definition reaches the end of b.


Inherited predicates