Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(227)

Side by Side Diff: src/wasm/wasm-module.cc

Issue 2085863003: [wasm] No need for ModuleEnv when building import wrappers. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/compiler/wasm-compiler.cc ('k') | test/cctest/wasm/wasm-run-utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/base/atomic-utils.h" 5 #include "src/base/atomic-utils.h"
6 #include "src/macro-assembler.h" 6 #include "src/macro-assembler.h"
7 #include "src/objects.h" 7 #include "src/objects.h"
8 #include "src/property-descriptor.h" 8 #include "src/property-descriptor.h"
9 #include "src/v8.h" 9 #include "src/v8.h"
10 10
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 code_size += code->body_size(); 479 code_size += code->body_size();
480 reloc_size += code->relocation_info()->length(); 480 reloc_size += code->relocation_info()->length();
481 } 481 }
482 482
483 inline void Report() { 483 inline void Report() {
484 PrintF("Total generated wasm code: %zu bytes\n", code_size); 484 PrintF("Total generated wasm code: %zu bytes\n", code_size);
485 PrintF("Total generated wasm reloc: %zu bytes\n", reloc_size); 485 PrintF("Total generated wasm reloc: %zu bytes\n", reloc_size);
486 } 486 }
487 }; 487 };
488 488
489 bool CompileWrappersToImportedFunctions(Isolate* isolate, 489 bool CompileWrappersToImportedFunctions(
490 const WasmModule* module, 490 Isolate* isolate, const WasmModule* module, const Handle<JSReceiver> ffi,
491 const Handle<JSReceiver> ffi, 491 WasmModuleInstance* instance, ErrorThrower* thrower, Factory* factory) {
492 WasmModuleInstance* instance,
493 ErrorThrower* thrower, Factory* factory,
494 ModuleEnv* module_env) {
495 if (module->import_table.size() > 0) { 492 if (module->import_table.size() > 0) {
496 instance->import_code.reserve(module->import_table.size()); 493 instance->import_code.reserve(module->import_table.size());
497 for (uint32_t index = 0; index < module->import_table.size(); ++index) { 494 for (uint32_t index = 0; index < module->import_table.size(); ++index) {
498 const WasmImport& import = module->import_table[index]; 495 const WasmImport& import = module->import_table[index];
499 WasmName module_name = module->GetNameOrNull(import.module_name_offset, 496 WasmName module_name = module->GetNameOrNull(import.module_name_offset,
500 import.module_name_length); 497 import.module_name_length);
501 WasmName function_name = module->GetNameOrNull( 498 WasmName function_name = module->GetNameOrNull(
502 import.function_name_offset, import.function_name_length); 499 import.function_name_offset, import.function_name_length);
503 MaybeHandle<JSFunction> function = LookupFunction( 500 MaybeHandle<JSFunction> function = LookupFunction(
504 *thrower, factory, ffi, index, module_name, function_name); 501 *thrower, factory, ffi, index, module_name, function_name);
505 if (function.is_null()) return false; 502 if (function.is_null()) return false;
506 503
507 Handle<Code> code = compiler::CompileWasmToJSWrapper( 504 Handle<Code> code = compiler::CompileWasmToJSWrapper(
508 isolate, module_env, function.ToHandleChecked(), import.sig, 505 isolate, function.ToHandleChecked(), import.sig, module_name,
509 module_name, function_name); 506 function_name);
510 instance->import_code[index] = code; 507 instance->import_code[index] = code;
511 } 508 }
512 } 509 }
513 return true; 510 return true;
514 } 511 }
515 512
516 void InitializeParallelCompilation( 513 void InitializeParallelCompilation(
517 Isolate* isolate, const std::vector<WasmFunction>& functions, 514 Isolate* isolate, const std::vector<WasmFunction>& functions,
518 std::vector<compiler::WasmCompilationUnit*>& compilation_units, 515 std::vector<compiler::WasmCompilationUnit*>& compilation_units,
519 ModuleEnv& module_env, ErrorThrower& thrower) { 516 ModuleEnv& module_env, ErrorThrower& thrower) {
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 827
831 ModuleEnv module_env; 828 ModuleEnv module_env;
832 module_env.module = this; 829 module_env.module = this;
833 module_env.instance = &instance; 830 module_env.instance = &instance;
834 module_env.origin = origin; 831 module_env.origin = origin;
835 832
836 //------------------------------------------------------------------------- 833 //-------------------------------------------------------------------------
837 // Compile wrappers to imported functions. 834 // Compile wrappers to imported functions.
838 //------------------------------------------------------------------------- 835 //-------------------------------------------------------------------------
839 if (!CompileWrappersToImportedFunctions(isolate, this, ffi, &instance, 836 if (!CompileWrappersToImportedFunctions(isolate, this, ffi, &instance,
840 &thrower, factory, &module_env)) { 837 &thrower, factory)) {
841 return MaybeHandle<JSObject>(); 838 return MaybeHandle<JSObject>();
842 } 839 }
843 840
844 // If FLAG_print_wasm_code_size is set, this aggregates the sum of all code 841 // If FLAG_print_wasm_code_size is set, this aggregates the sum of all code
845 // objects created for this module. 842 // objects created for this module.
846 // TODO(titzer): switch this to TRACE_EVENT 843 // TODO(titzer): switch this to TRACE_EVENT
847 CodeStats code_stats; 844 CodeStats code_stats;
848 if (FLAG_print_wasm_code_size) { 845 if (FLAG_print_wasm_code_size) {
849 for (Handle<Code> c : instance.function_code) code_stats.Record(*c); 846 for (Handle<Code> c : instance.function_code) code_stats.Record(*c);
850 for (Handle<Code> c : instance.import_code) code_stats.Record(*c); 847 for (Handle<Code> c : instance.import_code) code_stats.Record(*c);
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
1118 Object* info = wasm->GetInternalField(kWasmDebugInfo); 1115 Object* info = wasm->GetInternalField(kWasmDebugInfo);
1119 if (!info->IsUndefined(wasm->GetIsolate())) return WasmDebugInfo::cast(info); 1116 if (!info->IsUndefined(wasm->GetIsolate())) return WasmDebugInfo::cast(info);
1120 Handle<WasmDebugInfo> new_info = WasmDebugInfo::New(handle(wasm)); 1117 Handle<WasmDebugInfo> new_info = WasmDebugInfo::New(handle(wasm));
1121 wasm->SetInternalField(kWasmDebugInfo, *new_info); 1118 wasm->SetInternalField(kWasmDebugInfo, *new_info);
1122 return *new_info; 1119 return *new_info;
1123 } 1120 }
1124 1121
1125 } // namespace wasm 1122 } // namespace wasm
1126 } // namespace internal 1123 } // namespace internal
1127 } // namespace v8 1124 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/wasm-compiler.cc ('k') | test/cctest/wasm/wasm-run-utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698