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

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

Issue 1698133002: [wasm] Clean up handling of function names. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 10 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
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 2054 matching lines...) Expand 10 before | Expand all | Expand 10 after
2065 RecordFunctionCompilation(Logger::FUNCTION_TAG, &info, "wasm-to-js", index, 2065 RecordFunctionCompilation(Logger::FUNCTION_TAG, &info, "wasm-to-js", index,
2066 module->module->GetName(func->name_offset)); 2066 module->module->GetName(func->name_offset));
2067 } 2067 }
2068 return code; 2068 return code;
2069 } 2069 }
2070 2070
2071 2071
2072 // Helper function to compile a single function. 2072 // Helper function to compile a single function.
2073 Handle<Code> CompileWasmFunction(wasm::ErrorThrower& thrower, Isolate* isolate, 2073 Handle<Code> CompileWasmFunction(wasm::ErrorThrower& thrower, Isolate* isolate,
2074 wasm::ModuleEnv* module_env, 2074 wasm::ModuleEnv* module_env,
2075 const wasm::WasmFunction& function, 2075 const wasm::WasmFunction& function) {
2076 int index) {
2077 if (FLAG_trace_wasm_compiler || FLAG_trace_wasm_decode_time) { 2076 if (FLAG_trace_wasm_compiler || FLAG_trace_wasm_decode_time) {
2078 // TODO(titzer): clean me up a bit.
2079 OFStream os(stdout); 2077 OFStream os(stdout);
2080 os << "Compiling WASM function #" << index << ":"; 2078 os << "Compiling WASM function "
2081 if (function.name_offset > 0) { 2079 << wasm::WasmFunctionName(&function, module_env) << std::endl;
2082 os << module_env->module->GetName(function.name_offset);
2083 }
2084 os << std::endl; 2080 os << std::endl;
2085 } 2081 }
2086 // Initialize the function environment for decoding. 2082 // Initialize the function environment for decoding.
2087 wasm::FunctionEnv env; 2083 wasm::FunctionEnv env;
2088 env.module = module_env; 2084 env.module = module_env;
2089 env.sig = function.sig; 2085 env.sig = function.sig;
2090 env.local_i32_count = function.local_i32_count; 2086 env.local_i32_count = function.local_i32_count;
2091 env.local_i64_count = function.local_i64_count; 2087 env.local_i64_count = function.local_i64_count;
2092 env.local_f32_count = function.local_f32_count; 2088 env.local_f32_count = function.local_f32_count;
2093 env.local_f64_count = function.local_f64_count; 2089 env.local_f64_count = function.local_f64_count;
(...skipping 14 matching lines...) Expand all
2108 module_env->module->module_start + function.code_start_offset, // -- 2104 module_env->module->module_start + function.code_start_offset, // --
2109 module_env->module->module_start + function.code_end_offset); // -- 2105 module_env->module->module_start + function.code_end_offset); // --
2110 2106
2111 if (result.failed()) { 2107 if (result.failed()) {
2112 if (FLAG_trace_wasm_compiler) { 2108 if (FLAG_trace_wasm_compiler) {
2113 OFStream os(stdout); 2109 OFStream os(stdout);
2114 os << "Compilation failed: " << result << std::endl; 2110 os << "Compilation failed: " << result << std::endl;
2115 } 2111 }
2116 // Add the function as another context for the exception 2112 // Add the function as another context for the exception
2117 ScopedVector<char> buffer(128); 2113 ScopedVector<char> buffer(128);
2118 SNPrintF(buffer, "Compiling WASM function #%d:%s failed:", index, 2114 SNPrintF(buffer, "Compiling WASM function #%d:%s failed:",
2115 function.func_index,
2119 module_env->module->GetName(function.name_offset)); 2116 module_env->module->GetName(function.name_offset));
2120 thrower.Failed(buffer.start(), result); 2117 thrower.Failed(buffer.start(), result);
2121 return Handle<Code>::null(); 2118 return Handle<Code>::null();
2122 } 2119 }
2123 2120
2124 // Run the compiler pipeline to generate machine code. 2121 // Run the compiler pipeline to generate machine code.
2125 CallDescriptor* descriptor = const_cast<CallDescriptor*>( 2122 CallDescriptor* descriptor = const_cast<CallDescriptor*>(
2126 module_env->GetWasmCallDescriptor(&zone, function.sig)); 2123 module_env->GetWasmCallDescriptor(&zone, function.sig));
2127 Code::Flags flags = Code::ComputeFlags(Code::WASM_FUNCTION); 2124 Code::Flags flags = Code::ComputeFlags(Code::WASM_FUNCTION);
2128 // add flags here if a meaningful name is helpful for debugging. 2125 // add flags here if a meaningful name is helpful for debugging.
2129 bool debugging = 2126 bool debugging =
2130 FLAG_print_opt_code || FLAG_trace_turbo || FLAG_trace_turbo_graph; 2127 FLAG_print_opt_code || FLAG_trace_turbo || FLAG_trace_turbo_graph;
2131 const char* func_name = "wasm"; 2128 const char* func_name = "wasm";
2132 Vector<char> buffer; 2129 Vector<char> buffer;
2133 if (debugging) { 2130 if (debugging) {
2134 buffer = Vector<char>::New(128); 2131 buffer = Vector<char>::New(128);
2135 SNPrintF(buffer, "WASM_function_#%d:%s", index, 2132 SNPrintF(buffer, "WASM_function_#%d:%s", function.func_index,
2136 module_env->module->GetName(function.name_offset)); 2133 module_env->module->GetName(function.name_offset));
2137 func_name = buffer.start(); 2134 func_name = buffer.start();
2138 } 2135 }
2139 CompilationInfo info(func_name, isolate, &zone, flags); 2136 CompilationInfo info(func_name, isolate, &zone, flags);
2140 2137
2141 Handle<Code> code = 2138 Handle<Code> code =
2142 Pipeline::GenerateCodeForTesting(&info, descriptor, &graph); 2139 Pipeline::GenerateCodeForTesting(&info, descriptor, &graph);
2143 if (debugging) { 2140 if (debugging) {
2144 buffer.Dispose(); 2141 buffer.Dispose();
2145 } 2142 }
2146 if (!code.is_null()) { 2143 if (!code.is_null()) {
2147 RecordFunctionCompilation( 2144 RecordFunctionCompilation(
2148 Logger::FUNCTION_TAG, &info, "WASM_function", index, 2145 Logger::FUNCTION_TAG, &info, "WASM_function", function.func_index,
2149 module_env->module->GetName(function.name_offset)); 2146 module_env->module->GetName(function.name_offset));
2150 } 2147 }
2151 2148
2152 return code; 2149 return code;
2153 } 2150 }
2154 2151
2155 2152
2156 } // namespace compiler 2153 } // namespace compiler
2157 } // namespace internal 2154 } // namespace internal
2158 } // namespace v8 2155 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/wasm-compiler.h ('k') | src/wasm/module-decoder.cc » ('j') | src/wasm/wasm-module.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698