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.

Clear the given Context and reset it for use with a new function.

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

Create a new empty Signature with the default calling convention for the TargetIsa, to which parameter and return types can be added for declaring a function to be called by this Module.

Clear the given Signature and reset for use with a new function.

This ensures that the Signature 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.

Panics

When the function has already been finalized this panics.

Return the finalized artifact from the backend, if it provides one.

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

Panics

When the data object has already been finalized this panics.

Return the finalized artifact from the backend, if it provides one.

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

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