From 44290db4fc014c8e032fb61f95ca9805d2ce57bc Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Thu, 30 Jun 2016 16:45:00 -0700 Subject: parallelize asm2wasm fixups (#614) --- src/asm2wasm.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/asm2wasm.h b/src/asm2wasm.h index 593943654..fd250694b 100644 --- a/src/asm2wasm.h +++ b/src/asm2wasm.h @@ -744,9 +744,9 @@ void Asm2WasmBuilder::processAsm(Ref ast) { // Finalize indirect calls and import calls struct FinalizeCalls : public WalkerPass>> { - //bool isFunctionParallel() override { return true; } + bool isFunctionParallel() override { return true; } - //Pass* create() override { return new FinalizeCalls(parent); } + Pass* create() override { return new FinalizeCalls(parent); } Asm2WasmBuilder* parent; @@ -754,8 +754,9 @@ void Asm2WasmBuilder::processAsm(Ref ast) { void visitCallImport(CallImport* curr) { // fill out call_import - add extra params as needed. asm tolerates ffi overloading, wasm does not - auto type = parent->importedFunctionTypes[curr->target].get(); - if (!type) return; // one of our fake imports for callIndirect fixups + auto iter = parent->importedFunctionTypes.find(curr->target); + if (iter == parent->importedFunctionTypes.end()) return; // one of our fake imports for callIndirect fixups + auto type = iter->second.get(); for (size_t i = curr->operands.size(); i < type->params.size(); i++) { auto val = parent->allocator.alloc(); val->type = val->value.type = type->params[i]; -- cgit v1.2.3