Allow offloading compilation in cranelift-object (#2371)

This commit is a slight refactoring of the `Module` trait and backend in
`cranelift-object`. The goal is to enable parallelization of compilation
when using `cranelift-object`. Currently this is difficult because
`ObjectModule::define_function` requires `&mut self`. This instead
soups up the `define_function_bytes` interface to handle relocations so
compilation can happen externally before defining it in a `Module`. This
also means that `define_function` is now a convenience wrapper around
`define_function_bytes`.
This commit is contained in:
Alex Crichton
2020-11-06 09:56:44 -06:00
committed by GitHub
parent b2b7bc10e2
commit 8af2dbfbac
4 changed files with 113 additions and 125 deletions

View File

@@ -44,7 +44,7 @@ mod traps;
pub use crate::data_context::{DataContext, DataDescription, Init};
pub use crate::module::{
DataId, FuncId, FuncOrDataId, Linkage, Module, ModuleCompiledFunction, ModuleDeclarations,
ModuleError, ModuleResult,
ModuleError, ModuleResult, RelocRecord,
};
pub use crate::traps::TrapSite;