* move trap site definitions into cranelift-module `cranelift-faerie` and `cranelift-object` already have identical definitions of structures to represent trap sites. We might as well merge them ahead of work to define functions via a raw slice of bytes with associated traps, which will need some kind of common structure for representing traps anyway. * cranelift-module: add `define_function_bytes` interface This interface is useful when the client needs to precisely specify the ordering of bytes in a particular function. * add comment about saving files for `perf`
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.