Crate cranelift_wasm
source ·Expand description
Performs translation from a wasm module in binary format to the in-memory form
of Cranelift IR. More particularly, it translates the code of all the functions bodies and
interacts with an environment implementing the
ModuleEnvironment
trait to deal with tables, globals and linear memory.
The crate provides a DummyEnvironment
struct that will allow to translate the code of the
functions but will fail at execution.
The main function of this module is translate_module
.
Re-exports
pub use wasmparser;
Modules
A simple event-driven library for parsing WebAssembly binary files
(or streams).
Macros
Return an
Err(WasmError::Unsupported(msg))
where msg
the string built by calling format!
on the arguments to this macro.Structs
Index type of a passive data segment inside the WebAssembly module.
Index type of a defined function inside the WebAssembly module.
Index type of a defined global inside the WebAssembly module.
Index type of a defined memory inside the WebAssembly module.
Index type of a defined table inside the WebAssembly module.
This
ModuleEnvironment
implementation is a “naïve” one, doing essentially nothing and
emitting placeholders when forced to. Don’t try to execute code translated for this
environment, essentially here for translation debug purposes.Index type of a passive element segment inside the WebAssembly module.
Index type of a function (imported or defined) inside the WebAssembly module.
Contains information passed along during a function’s translation and that records:
WebAssembly to Cranelift IR function translator.
Temporary object used to build a single Cranelift IR
Function
.A WebAssembly global.
Index type of a global variable (imported or defined) inside the WebAssembly module.
WebAssembly linear memory.
Index type of a linear memory (imported or defined) inside the WebAssembly module.
Contains information decoded from the Wasm module that must be referenced
during each Wasm function’s translation.
Index type of a signature (imported or defined) inside the WebAssembly module.
WebAssembly table.
Index type of a table (imported or defined) inside the WebAssembly module.
WebAssembly event.
Index type of an event inside the WebAssembly module.
Index type of a type inside the WebAssembly module.
WebAssembly function type – equivalent of
wasmparser
’s FuncType.Enums
An index of an entity.
A type of an item in a wasm module where an item is typically something that
can be exported.
Globals are initialized via the
const
operators or by referring to another import.The value of a WebAssembly global variable.
How to return from functions.
WebAssembly table element. Can be a function or a scalar type.
A WebAssembly translation error.
WebAssembly value type – equivalent of
wasmparser
’s Type.Constants
Version number of this crate.
Traits
Environment affecting the translation of a single WebAssembly function.
An object satisfying the
ModuleEnvironment
trait can be passed as argument to the
translate_module
function. These methods should not be called
by the user, they are only for cranelift-wasm
internal use.Environment affecting the translation of a WebAssembly.
Functions
Create a
Block
with the given Wasm parameters.Get the parameter and result types for the given Wasm blocktype.
Turns a
wasmparser
f32
into a Cranelift
one.Turns a
wasmparser
f64
into a Cranelift
one.Special VMContext value label. It is tracked as 0xffff_fffe label.
Helper function translating wasmparser possible table types to Cranelift types when possible,
or None for Func tables.
Translate a sequence of bytes forming a valid Wasm binary into a list of valid Cranelift IR
Function
.Helper function translating wasmparser types to Cranelift types when possible.
Type Definitions
A convenient alias for a
Result
that uses WasmError
as the error type.