Struct cranelift_module::Module[][src]

pub struct Module<B> where
    B: Backend
{ /* fields omitted */ }

A Module is a utility for collecting functions and data objects, and linking them together.

Methods

impl<B> Module<B> where
    B: Backend
[src]

Create a new Module.

Get the module identifier for a given name, if that name has been declared.

Return then pointer type for the current target.

Create a new Context initialized for use with this Module.

This ensures that the Context is initialized with the default calling convention for the TargetIsa.

Create a new Context initialized for use with this Module.

This ensures that the Context is initialized with the default calling convention for the TargetIsa.

Declare a function in this module.

Declare a data object in this module.

Use this when you're building the IR of a function to reference a function.

TODO: Coalesce redundant decls and signatures. TODO: Look into ways to reduce the risk of using a FuncRef in the wrong function.

Use this when you're building the IR of a function to reference a data object.

TODO: Same as above.

TODO: Same as above.

TODO: Same as above.

Define a function, producing the function body from the given Context.

Define a function, producing the data contents from the given DataContext.

Write the address of what into the data for data at offset. data must refer to a defined data object.

Write the address of what plus addend into the data for data at offset. data must refer to a defined data object.

Perform all outstanding relocations on the given function. This requires all Local and Export entities referenced to be defined.

Perform all outstanding relocations on the given data object. This requires all Local and Export entities referenced to be defined.

Finalize all functions and data objects. Note that this doesn't return the final artifacts returned from finalize_function or finalize_data.

Consume the module and return the resulting Product. Some Backend implementations may provide additional functionality available after a Module is complete.

Auto Trait Implementations

impl<B> Send for Module<B> where
    B: Send,
    <B as Backend>::CompiledData: Send,
    <B as Backend>::CompiledFunction: Send

impl<B> Sync for Module<B> where
    B: Sync,
    <B as Backend>::CompiledData: Sync,
    <B as Backend>::CompiledFunction: Sync