All Classes and Interfaces
Class
Description
An
TableConvention
that has a Java array as its underlying representation.The ubiquitous calling convention.
An extension that can be attached onto something.
A
MemoryConvention
that has a ByteBuffer
as its underlying representation.A convention that defines how parameters are passed to, and arguments received from,
a function, and how values (possibly many) should be returned.
An event that can be cancelled, preventing other listeners from receiving it.
A style of capitalising words for a token.
A case style like lowerCamelCase.
A capitalisation style for a single word.
A case-style that attempts to detect the style of an input token.
A case style like snake_case.
A pass which composes two others, executing the first, and giving its result to the second.
A pass which checks the validity of compiled Java code
using
CheckClassAdapter
.Command line interface for Wasm2j.
A pass which collapses empty blocks or simple jumps where they are unnecessary.
A collection of
Ext
s that exist in both WebAssembly and Java IR.The live variable information of a basic block.
An event dispatched on
WasmCompiler
.Computes
CommonExts.DOM_FRONTIER
for each block.Compute the
CommonExts.IDOM
of each basic block.Computes the
CommonExts.LIVE_DATA
for each block.Computes
CommonExts.PREDS
for each block.A callback which is run by the default
WirJavaConvention
to modify the constructor in some way.A subclass of
ConstructorCallback
without the no-op default implementation for
ConstructorCallback.Abstract.modifyConstructor(IRBuilder, JClass.JavaMethod, Module, JClass)
, so
it can be the target of a lambda expression.A control instruction, encapsulating a raw
instruction
and the jump targets.A function which modifies a local convention.
A convention that defines how to retrieve the contents of a data.
An
ExportableConvention
which just delegates to another.An
ExtHolder
that additionally delegates to another
ExtContainer
if it can't find a given ext in itself.A class with utilities for disassembling WebAssembly or Java bytecode.
An effect, encapsulating an
instruction
, and the
variables its results are assigned to.A convention that defines how to retrieve the contents and type of an element.
An optimisation pass that removes any blocks unreachable from the root block.
A pass which removes any
Effect
s that have no side effects, and whose return values are unused.Declares that a method corresponds to a function defined in the
embedding
section of the WebAssembly specification.
Fired when a class should be emitted.
A class on which events can be listened to.
A class on which events can be listened to and dispatched.
An export from a module, which is a name and its type.
A convention which may be exported from a module.
An ext, that can be associated with a value (of type
T
)
in an ExtContainer
.A container for
Ext
s.The type of a WebAssembly extern.
A function type, consisting of parameter and result types.
A global type, consisting of a mutability and a value type.
The kind of extern: func, table, memory, or global.
A set of limits, a minimum and (possibly) a maximum.
A memory type, consisting of limits.
A table type, consisting of limits and a component type.
The top type.
An extern, a value that can be exported from a module instance, or provided as an import.
An implementation of
ExtContainer
using a Map
.A simple unary function.
An optimisation pass that tries to find block structures that could be replaced with
JavaOps.BOOL_SELECT
instructions.A class for detecting the format of a WebAssembly file (text or binary).
The format of a WebAssembly file, either text, binary, or unknown.
A pass which lifts passes which operate on smaller IR parts into onese that operate on bigger parts.
A basic block pass lifted to operate on a full function.
An instruction pass lifted to operate on a full basic block.
A function extern.
A function extern implemented by wrapping a method handle.
A function, encapsulating a list of
basic blocks
.The convention for a WebAssembly function, defining how the function can be called, referenced, exported, and
added to the constructor.
A
FunctionConvention
which delegates all calls to another.Indicates that the annotated method is accessed from generated code.
A collection of utilities for constructing
ValueGetter
s and ValueGetterSetter
s.A global extern.
A global that stores its value directly.
A global that gets and sets through method handles.
The convention for a WebAssembly global, defining how the function can be referenced, set, exported, and
added to the constructor.
A
GlobalConvention
which delegates all calls to another.A class for walking a graph depth-first, in pre- or post-order.
An order over a graph.
Convert a function to a function which constructs a
MethodHandle
of the former,
optionally binding certain arguments early (by keeping them "free" in the handle).A pass which contracts
CommonOps.IDENTITY
instructions.A class for finding the bytes a Java class.
An import of a module.
An interface for finding an import of a module.
A pass that infers the types of variables in a function.
A pass which infers the Java types of variables in a function.
A class for inlining a
function
into another.An IR pass which is
in-place
.An instruction, encapsulating an
operation
and its arguments.A map from WebAssembly opcodes to values.
An instance of a module, from which exports can be retrieved.
An
InstanceFunctionConvention
which implements function calls by invoking
a specific Java method on a Java object.Static utilities for Java instructions.
A linker for WebAssembly modules that generates Java interfaces for every
registered
, or unregistered but imported, module.An annotation that defines which WebAssembly instructions a method is an intrinsic implementation for.
An implementation of an intrinsic.
An IR, or instruction, builder, which encapsulates a position in a function
where instructions are being inserted.
A pass to run on some part of the IR (e.g.
A set of utilities for working with Wasm2j's IR.
Not stable.
Not stable.
A collection of
Ext
s that exist in Java IR.Contains the intrinsics implementing most WebAssembly primitive operations.
A conditional jump's type in Java bytecode.
Fired just before the Java IR is converted to Java bytecode.
A pass that converts Java bytecode into an IR function.
Represents the IR of a Java class.
Represents a type that can be loaded as a constant method handle.
A field in a
Java class
.A method in a
Java class
.Fired immediately after the conversion from WebAssembly IR to
Java IR.
A pass which converts Java IR to Java bytecode.
A lazily-initialized value.
A pass which allocates registers using a linear scan algorithm.
A pass which lowers
intrinsics
,
either by inlining their code, or attaching them as a method
to the class.A pass which lowers
phi
nodes into
assignments targeting the same variables.A memory extern.
Bootstrap methods for memory load and store
invokedynamic
instructions.A memory implemented using a
ByteBuffer
.A memory which delegates its calls to the provided method handles.
Something that has a WebAssembly single-byte opcode.
A type of load instruction.
A type of store instruction.
The convention for a WebAssembly memory, defining how the memory can be accessed and exported, and
added to the constructor.
A
MemoryConvention
which delegates all calls to another.A pass which merges
JavaOps.BOOL_SELECT
instructions
with JavaOps.BR_COND
and JavaOps.SELECT
instructions.Keeps track of the state of certain metadata in a
Function
, such as its SSA-ness.A kind of metadata whose presence can be checked, but also specifies how to compute it.
A kind of metadata whose presence can be checked on
MetadataState
.An event fired when constructing the
Java conventions
of a
module compilation.Represents the IR of a WebAssembly module.
A parsed WebAssembly module.
Represents the compilation of a single (already parsed and validated) WebAssembly module.
An event fired during the compilation of a single module.
Thrown when instantiation of a module fails (is refused) for a reason other than it being invalid.
A class for mangling names, converting (possibly invalid) tokens to new tokens
that are valid, according to a set of rules.
A name mangler that forbids a certain set of characters.
A policy for how illegal characters should be handled.
A mangler which outputs valid Java identifiers.
A bit which parses the name section of a module, and
renames the Java methods to match the names given in the section.
A representation of the
name section
of a WebAssembly module.
An interface for supplying translations of WebAssembly names into appropriate Java names.
A simple name supplier.
An operation, encapsulating an
operation key
and any intermediates.Java implementations of certain WebAssembly primitives.
An operation key, representing a type of operation, without intermediates.
A bit which outputs emitted classes to the given directory.
A simple two-tuple, with defined equality and hashing.
Some pre-composed passes.
Fired when a module compilation is started.
Utilities for displaying the IR to an SVG document, for debugging purposes.
Formally, in the WebAssembly specification, the store contains (owns) all the
values (functions, memories, tables) of a set of modules.
A table extern.
A table with an array as the underlying representation.
A table which stores its elements as a table in itself.
A table which implements its methods by delegating to method handles.
The convention for a WebAssembly table, defining how the table can be accessed and exported, and
added to the constructor.
A
TableConvention
which delegates all calls to another.Miscellaneous utilities.
An enum that represents a WebAssembly type, and gives its canonical mapping to a Java class.
A value that can be retrieved.
A value that can be both retrieved and set.
A value that can be set.
A variable, a virtual register.
A compiler from WebAssembly to Java bytecode.
Provides the
pass
to compile WebAssembly.Converts WebAssembly code to WebAssembly IR.
A direct implementation of the WebAssembly embedding entry-points as defined in the
embedding section
of the specification.
Definitions for how certain WebAssembly concepts should be translated into Java.
Creates instances of
WirJavaConvention
for compiling the contents of a WebAssembly-IR
Module
into a Java-IR JClass
.A builder for a (configurable) default
WirJavaConventionFactory
.An event fired just after the WebAssembly module is compiled to IR for the first time.
Converts WebAssembly IR (possibly not in SSA form) into Java IR, according
to a set of
conventions
.