Files
wasmtime/cranelift/module
Philip Craig 3c15f8f129 cranelift-object: move relocation processing to finish
This removes the need to call `finalize_definitions` for cranelift-object.
`finalize_definitions` is only intended for backends that produce
finalized functions and data objects, which cranelift-object does not.
2020-02-10 11:42:11 +01:00
..
2020-02-07 13:58:06 -08: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.