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

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

Issue 1763433002: [wasm] Rework encoding of local declarations. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 9 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 | « no previous file | src/wasm/ast-decoder.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/compiler/wasm-compiler.h" 5 #include "src/compiler/wasm-compiler.h"
6 6
7 #include "src/isolate-inl.h" 7 #include "src/isolate-inl.h"
8 8
9 #include "src/base/platform/platform.h" 9 #include "src/base/platform/platform.h"
10 10
(...skipping 2391 matching lines...) Expand 10 before | Expand all | Expand 10 after
2402 // Helper function to compile a single function. 2402 // Helper function to compile a single function.
2403 Handle<Code> CompileWasmFunction(wasm::ErrorThrower& thrower, Isolate* isolate, 2403 Handle<Code> CompileWasmFunction(wasm::ErrorThrower& thrower, Isolate* isolate,
2404 wasm::ModuleEnv* module_env, 2404 wasm::ModuleEnv* module_env,
2405 const wasm::WasmFunction& function) { 2405 const wasm::WasmFunction& function) {
2406 if (FLAG_trace_wasm_compiler || FLAG_trace_wasm_decode_time) { 2406 if (FLAG_trace_wasm_compiler || FLAG_trace_wasm_decode_time) {
2407 OFStream os(stdout); 2407 OFStream os(stdout);
2408 os << "Compiling WASM function " 2408 os << "Compiling WASM function "
2409 << wasm::WasmFunctionName(&function, module_env) << std::endl; 2409 << wasm::WasmFunctionName(&function, module_env) << std::endl;
2410 os << std::endl; 2410 os << std::endl;
2411 } 2411 }
2412 // Initialize the function environment for decoding.
2413 wasm::FunctionEnv env;
2414 env.module = module_env;
2415 env.sig = function.sig;
2416 env.local_i32_count = function.local_i32_count;
2417 env.local_i64_count = function.local_i64_count;
2418 env.local_f32_count = function.local_f32_count;
2419 env.local_f64_count = function.local_f64_count;
2420 env.SumLocals();
2421 2412
2422 // Create a TF graph during decoding. 2413 // Create a TF graph during decoding.
2423 Zone zone; 2414 Zone zone;
2424 Graph graph(&zone); 2415 Graph graph(&zone);
2425 CommonOperatorBuilder common(&zone); 2416 CommonOperatorBuilder common(&zone);
2426 MachineOperatorBuilder machine( 2417 MachineOperatorBuilder machine(
2427 &zone, MachineType::PointerRepresentation(), 2418 &zone, MachineType::PointerRepresentation(),
2428 InstructionSelector::SupportedMachineOperatorFlags()); 2419 InstructionSelector::SupportedMachineOperatorFlags());
2429 JSGraph jsgraph(isolate, &graph, &common, nullptr, nullptr, &machine); 2420 JSGraph jsgraph(isolate, &graph, &common, nullptr, nullptr, &machine);
2430 WasmGraphBuilder builder(&zone, &jsgraph, function.sig); 2421 WasmGraphBuilder builder(&zone, &jsgraph, function.sig);
2431 wasm::TreeResult result = wasm::BuildTFGraph( 2422 wasm::FunctionBody body = {
2432 &builder, &env, // -- 2423 module_env, function.sig, module_env->module->module_start,
2433 module_env->module->module_start, // -- 2424 module_env->module->module_start + function.code_start_offset,
2434 module_env->module->module_start + function.code_start_offset, // -- 2425 module_env->module->module_start + function.code_end_offset};
2435 module_env->module->module_start + function.code_end_offset); // -- 2426 wasm::TreeResult result = wasm::BuildTFGraph(&builder, body);
2436 2427
2437 if (result.failed()) { 2428 if (result.failed()) {
2438 if (FLAG_trace_wasm_compiler) { 2429 if (FLAG_trace_wasm_compiler) {
2439 OFStream os(stdout); 2430 OFStream os(stdout);
2440 os << "Compilation failed: " << result << std::endl; 2431 os << "Compilation failed: " << result << std::endl;
2441 } 2432 }
2442 // Add the function as another context for the exception 2433 // Add the function as another context for the exception
2443 ScopedVector<char> buffer(128); 2434 ScopedVector<char> buffer(128);
2444 SNPrintF(buffer, "Compiling WASM function #%d:%s failed:", 2435 SNPrintF(buffer, "Compiling WASM function #%d:%s failed:",
2445 function.func_index, 2436 function.func_index,
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2483 module_env->module->GetName(function.name_offset)); 2474 module_env->module->GetName(function.name_offset));
2484 } 2475 }
2485 2476
2486 return code; 2477 return code;
2487 } 2478 }
2488 2479
2489 2480
2490 } // namespace compiler 2481 } // namespace compiler
2491 } // namespace internal 2482 } // namespace internal
2492 } // namespace v8 2483 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/wasm/ast-decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698