Equivalence <=> structural equality.
See Node.opIndex.
Semantic hash.
Provides an iterator over this node's in-edges.
At least two inputs, one of which will be forwarded as output.
Provides an iterator over this node's out-edges.
Frees all resources allocated by this node and sets it to an uninitialized state.
Initializes a multiplexer node, must be later disposed.
Resulting value.
Data dependency used to choose which of the given inputs will be returned.
Post-move adjusts in-edge slots' owner pointer.
The behavior of this node could be emulated by a value-carrying branch into an extended basic block. However, this node does not need control flow edges at all. Thus, its semantics are slightly different: whereas a control flow branch disallows the execution of operations in its unchosen branches (but the compiler can still move them out of the branch if that preserves program semantics), a mux node is allowed to compute all of its options before choosing which one to forward (but doesn't need to, e.g. if the selector is a constant).
An operation which chooses one of its inputs to forward as a result.
In a multiplexer node, the choice of which input to forward is controled by an unsigned integer, as if it was indexing an array of inputs. If the selector's value does not match the index of any input, the result is a poison value.