L2SplitCondition

sealed class L2SplitCondition

An L2SplitCondition is a predicate on an L2ValueManifest which would be profitable to sustain through portions of the L2ControlFlowGraph by duplication of some of the vertices.

Sets of these conditions are used by L2Optimizer.doCodeSplitting to control how an L2Regenerator is to avoid prematurely merging control flow and destroying actionable information.

Inheritors

Types

Link copied to clipboard
object Companion
Link copied to clipboard

A condition that holds if some register (an L2IntRegister) holds the unboxed Int form of some value.

Link copied to clipboard

A condition that holds if a register having one of the given semanticValues is guaranteed to satisfy the provided TypeRestriction.

Properties

Link copied to clipboard
abstract val hash: Int

The pre-computed hash.

Functions

Link copied to clipboard
abstract operator override fun equals(other: Any?): Boolean
Link copied to clipboard
override fun hashCode(): Int
Link copied to clipboard
abstract fun holdsFor(manifest: L2ValueManifest): Boolean

Answer whether the condition is guaranteed to hold for values constrained by the given L2ValueManifest.