Package-level declarations

Types

Link copied to clipboard
class Frame(val outerFrame: Frame?, val code: A_RawFunction, val debugName: String)

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.

Link copied to clipboard

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.

Link copied to clipboard

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.

Link copied to clipboard

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.

Link copied to clipboard

A semantic value which represents the base semantic value, but unboxed as a float (in some L2FloatRegister.

Link copied to clipboard

A semantic value which represents the base semantic value, but unboxed as an int (in some L2IntRegister.

Link copied to clipboard

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.