Files
wasmtime/cranelift/module
Nathan Froyd 0f49a830c9 cranelift-module: expose trap information when defining functions
The current interface of `cranelift-module` requires consumers who want
to be informed about traps to discover that information through
`Module::Product`, which is backend-specific.  Since it's advantageous
to manipulate this information in a backend-agnostic way, this patch
changes `Module::define_function{,_bytes}` to return information about
the traps contained in the function being defined.
2020-03-03 11:37:15 -05:00
..

This crate provides module-level functionality, which allow multiple functions and data to be emitted with Cranelift and then linked together.

This crate is structured as an optional layer on top of cranelift-codegen. It provides additional functionality, such as linking, however users that require greater flexibility don't need to use it.

A Module is a collection of functions and data objects that are linked together. Backend is a trait that defines an interface for backends that compile modules into various forms. Most users will use one of the following Backend implementations:

  • SimpleJITBackend, provided by cranelift-simplejit, which JITs code to memory for direct execution.
  • ObjectBackend, provided by cranelift-object, which emits native object files.
  • FaerieBackend, provided by cranelift-faerie, which emits native object files.