Package avail. optimizer. values
Types
An abstract representation of an invocation. Note that this is not itself an L2SemanticValue, but is used by some specific kinds of semantic values. The outermost Frame has an outerFrame of null, and all other frames have a non-null outer frame. Frames compare by identity.
A semantic value which represents the TypeTag extracted from some base semantic value. To keep unboxed ints homogenous, this will always be wrapped inside an L2SemanticUnboxedInt, even though the boxed value generally will not occur in any L2BoxedRegister.
A semantic value which represents the variantId of the ObjectLayoutVariant extracted from some object or object type in the base semantic value. To keep unboxed ints homogenous, this will always be wrapped inside an L2SemanticUnboxedInt, even though the boxed value generally will not occur in any L2BoxedRegister.
An L2SemanticValue which represents the result produced by a Primitive when supplied a list of argument L2SemanticValues. The primitive must be stable (same result), pure (no side-effects), and successful for the supplied arguments.
A semantic value which represents the base semantic value, but unboxed as a float (in some L2FloatRegister.
A semantic value which represents the base semantic value, but unboxed as an int (in some L2IntRegister.
An L2SemanticValue represents a value stably computed from constants, arguments, and potentially unstable values acquired by specific previous instructions – e.g., fetching the current time at a specific position in a sequence of L2 instructions, or the result of a non-primitive call to another function.