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 main function of this module is translate_module.

Re-exports§

pub use wasmparser;

Modules§

prelude
Rust module prelude for Wasmtime crates.
wasmparser
A simple event-driven library for parsing WebAssembly binary files (or streams).

Macros§

__format
Creates a String using interpolation of runtime expressions.
wasm_unsupported
Return an Err(WasmError::Unsupported(msg)) where msg the string built by calling format! on the arguments to this macro.

Structs§

ConstExpr
A constant expression.
DataIndex
Index type of a passive data segment inside the WebAssembly module.
DefinedFuncIndex
Index type of a defined function inside the WebAssembly module.
DefinedGlobalIndex
Index type of a defined global inside the WebAssembly module.
DefinedMemoryIndex
Index type of a defined memory inside the WebAssembly module.
DefinedTableIndex
Index type of a defined table inside the WebAssembly module.
ElemIndex
Index type of a passive element segment inside the WebAssembly module.
EngineInternedRecGroupIndex
Index type of a canonicalized recursive type group inside the whole engine (as opposed to canonicalized within just a single Wasm module).
FuncIndex
Index type of a function (imported or defined) inside the WebAssembly module.
FuncTranslationState
Contains information passed along during a function’s translation and that records:
FuncTranslator
WebAssembly to Cranelift IR function translator.
FunctionBuilder
Temporary object used to build a single Cranelift IR Function.
Global
A WebAssembly global.
GlobalIndex
Index type of a global variable (imported or defined) inside the WebAssembly module.
Heap
An opaque reference to a HeapData.
HeapData
A heap implementing a WebAssembly linear memory.
Memory
WebAssembly linear memory.
MemoryIndex
Index type of a linear memory (imported or defined) inside the WebAssembly module.
ModuleInternedRecGroupIndex
Index type of a canonicalized recursive type group inside a WebAssembly module (as opposed to canonicalized within the whole engine).
ModuleInternedTypeIndex
A canonicalized type index for a type within a single WebAssembly module.
OwnedMemoryIndex
Index type of a defined memory inside the WebAssembly module.
RecGroupRelativeTypeIndex
A canonicalized type index referencing a type within a single recursion group from another type within that same recursion group.
SizeOverflow
StaticModuleIndex
Index into the global list of modules found within an entire component.
Table
WebAssembly table.
TableData
An implementation of a WebAssembly table.
TableIndex
Index type of a table (imported or defined) inside the WebAssembly module.
Tag
WebAssembly event.
TagIndex
Index type of an event inside the WebAssembly module.
TypeIndex
Index type of a type (imported or defined) inside the WebAssembly module.
VMSharedTypeIndex
A canonicalized type index into an engine’s shared type registry.
WasmArrayType
A concrete array type.
WasmFieldType
The type of a struct field or array element.
WasmFuncType
WebAssembly function type – equivalent of wasmparser’s FuncType.
WasmRecGroup
A recursive type group.
WasmRefType
WebAssembly reference type – equivalent of wasmparser’s RefType
WasmStructType
A concrete struct type.
WasmSubType
A concrete, user-defined (or host-defined) Wasm type.

Enums§

ConstOp
The subset of Wasm opcodes that are constant.
EngineOrModuleTypeIndex
An interned type index, either at the module or engine level.
EntityIndex
An index of an entity.
EntityType
A type of an item in a wasm module where an item is typically something that can be exported.
GlobalVariable
The value of a WebAssembly global variable.
HeapStyle
Style of heap including style-specific information.
TableSize
Size of a WebAssembly table, in elements.
WasmCompositeType
A function, array, or struct type.
WasmError
A WebAssembly translation error.
WasmHeapTopType
A top heap type.
WasmHeapType
WebAssembly heap type – equivalent of wasmparser’s HeapType
WasmStorageType
Represents storage types introduced in the GC spec for array and struct fields.
WasmValType
WebAssembly value type – equivalent of wasmparser::ValType.

Constants§

VERSION
Version number of this crate.
WASM32_MAX_SIZE
Maximum size, in bytes, of 32-bit memories (4G)

Traits§

FuncEnvironment
Environment affecting the translation of a single WebAssembly function.
ModuleEnvironment
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.
TargetEnvironment
Environment affecting the translation of a WebAssembly.
TypeConvert
Helpers used to convert a wasmparser type to a type in this crate.
TypeTrace
A trait for things that can trace all type-to-type edges, aka all type indices within this thing.

Functions§

block_with_params
Create a Block with the given Wasm parameters.
blocktype_params_results
Get the parameter and result types for the given Wasm blocktype.
f32_translation
Turns a wasmparser f32 into a Cranelift one.
f64_translation
Turns a wasmparser f64 into a Cranelift one.
get_vmctx_value_label
Special VMContext value label. It is tracked as 0xffff_fffe label.
translate_module
Translate a sequence of bytes forming a valid Wasm binary into a list of valid Cranelift IR Function.

Type Aliases§

WasmResult
A convenient alias for a Result that uses WasmError as the error type.