object WasmTransients

Transients generated by the optimizer that only makes sense in Wasm.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. WasmTransients
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final case class WasmBinaryOp(op: Code, lhs: Tree, rhs: Tree) extends Value with Product with Serializable

    Wasm binary op.

    Wasm binary op.

    Wasm features a number of dedicated opcodes for operations that are not in the IR, but only implemented in user space. We can see WasmBinaryOp as an extension of ir.Trees.BinaryOp that covers those.

    Unsigned divisions and remainders exhibit always-unchecked undefined behavior when their rhs is 0. It is up to code generating those transient nodes to check for 0 themselves if necessary.

    All other Wasm binary ops preserve pureness.

  2. final case class WasmCodePointAt(string: Tree, index: Tree) extends Value with Product with Serializable

    Wasm intrinsic for jl.String.codePointAt.

    Wasm intrinsic for jl.String.codePointAt.

    Typing rules: string must be a jl.String; index must be an int. The result is an int.

    Evaluation semantics are as follows:

    1. Let stringV be the result of evaluating string. If it is null, throw an NPE (subject to UB). 2. Let indexV be the result of evaluating index. 3. If indexV < 0 or indexV >= stringV.length, throw a StringIndexOutOfBoundsException (subject to UB). 4. Return the code point starting at index indexV of stringV.
  3. final case class WasmStringFromCodePoint(codePoint: Tree) extends Value with Product with Serializable

    Wasm intrinsic for jl.Character.toString(int).

    Wasm intrinsic for jl.Character.toString(int).

    Typing rules: codePoint must be an int. The result is a string.

    Evaluation semantics are as follows:

    1. Let codePointV be the result of evaluating codePoint. 2. If codePointV is not a valid code point, UB (i.e., this transient *assumes* that codePointV is a valid code point). 3. Return a string of 1 or 2 chars that represents the given code point.
  4. final case class WasmSubstring(string: Tree, start: Tree, optEnd: Option[Tree]) extends Value with Product with Serializable

    Wasm intrinsic for jl.String.substring.

    Wasm intrinsic for jl.String.substring.

    Typing rules: string must be a jl.String; start and optEnd must be ints. The result is a string.

    Evaluation semantics are as follows:

    1. Let stringV be the result of evaluating string. If it is null, throw an NPE (subject to UB). 2. Let startV be the result of evaluating start. 3. If optEnd is empty, let endV be stringV.length. Otherwise, let endV be the result of evaluating optEnd. 4. If startV < 0, endV < startV or endV > stringV.length, throw a StringIndexOutOfBoundsException (subject to UB). 5. Return the substring of stringV in the range [startV, endV).
  5. final case class WasmUnaryOp(op: Code, lhs: Tree) extends Value with Product with Serializable

    Wasm unary op.

    Wasm unary op.

    Wasm features a number of dedicated opcodes for operations that are not in the IR, but only implemented in user space. We can see WasmUnaryOp as an extension of ir.Trees.UnaryOp that covers those.

    Wasm unary ops always preserve pureness.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  20. object WasmBinaryOp extends Serializable
  21. object WasmUnaryOp extends Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped