Crate cranelift_wasm[][src]

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.

Structs

DummyEnvironment

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.

FuncTranslator

WebAssembly to Cranelift IR function translator.

Global

WebAssembly global.

Memory

WebAssembly linear memory.

Table

WebAssembly table.

Enums

GlobalInit

Globals are initialized via the four const operators or by referring to another import.

GlobalVariable

The value of a WebAssembly global variable.

WasmError

A WebAssembly translation error.

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.

Functions

translate_module

Translate a sequence of bytes forming a valid Wasm binary into a list of valid Cranelift IR Function. Returns the functions and also the mappings for imported functions and signature between the indexes in the wasm module and the indexes inside each functions.

Type Definitions

FunctionIndex

Index of a function (imported or defined) inside the WebAssembly module.

GlobalIndex

Index of a global variable (imported or defined) inside the WebAssembly module.

MemoryIndex

Index of a linear memory (imported or defined) inside the WebAssembly module.

SignatureIndex

Index of a signature (imported or defined) inside the WebAssembly module.

TableIndex

Index of a table (imported or defined) inside the WebAssembly module.

WasmResult

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