Refactor trampoline compilation

This commit is contained in:
Syrus
2020-05-29 19:37:03 -07:00
parent 4d831a9a44
commit abbd39c50b
8 changed files with 73 additions and 60 deletions

View File

@ -128,16 +128,12 @@ impl Compiler for LLVMCompiler {
fn compile_dynamic_function_trampolines(
&self,
module: &ModuleInfo,
signatures: &[FunctionType],
) -> Result<PrimaryMap<FunctionIndex, FunctionBody>, CompileError> {
Ok(module
.functions
.values()
.take(module.num_imported_funcs)
.collect::<Vec<_>>()
Ok(signatures
.par_iter()
.map_init(FuncTrampoline::new, |func_trampoline, sig_index| {
func_trampoline.dynamic_trampoline(&module.signatures[**sig_index], self.config())
.map_init(FuncTrampoline::new, |func_trampoline, func_type| {
func_trampoline.dynamic_trampoline(&func_type, self.config())
})
.collect::<Result<Vec<_>, CompileError>>()?
.into_iter()