Files
wasmtime/cranelift/module
whitequark bc555468a7 cranelift: add i64.{ishl,ushr,ashr} libcalls.
These libcalls are useful for 32-bit platforms.

On x86_32 in particular, commit 4ec16fa0 added support for legalizing
64-bit shifts through SIMD operations. However, that legalization
requires SIMD to be enabled and SSE 4.1 to be supported, which is not
acceptable as a hard requirement.
2020-06-05 12:13:49 -07: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.