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

Unified Diff: src/compiler/wasm-compiler.cc

Issue 2864583004: Only turn on UMA WASM metric when synchronous. (Closed)
Patch Set: Again, merge updated master. Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/compiler/wasm-compiler.h ('k') | src/wasm/module-decoder.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/wasm-compiler.cc
diff --git a/src/compiler/wasm-compiler.cc b/src/compiler/wasm-compiler.cc
index 06377336c864ba7c91f7aca69f7dcaababb96b9c..a1864c6aa06e32f52b4f9f5573bfd4f642cdc9eb 100644
--- a/src/compiler/wasm-compiler.cc
+++ b/src/compiler/wasm-compiler.cc
@@ -3937,24 +3937,27 @@ Vector<const char> GetDebugName(Zone* zone, wasm::WasmName name, int index) {
WasmCompilationUnit::WasmCompilationUnit(Isolate* isolate,
wasm::ModuleBytesEnv* module_env,
- const wasm::WasmFunction* function)
+ const wasm::WasmFunction* function,
+ bool is_sync)
: WasmCompilationUnit(
isolate, &module_env->module_env,
wasm::FunctionBody{
function->sig, module_env->wire_bytes.start(),
module_env->wire_bytes.start() + function->code_start_offset,
module_env->wire_bytes.start() + function->code_end_offset},
- module_env->wire_bytes.GetNameOrNull(function),
- function->func_index) {}
+ module_env->wire_bytes.GetNameOrNull(function), function->func_index,
+ is_sync) {}
WasmCompilationUnit::WasmCompilationUnit(Isolate* isolate,
wasm::ModuleEnv* module_env,
wasm::FunctionBody body,
- wasm::WasmName name, int index)
+ wasm::WasmName name, int index,
+ bool is_sync)
: isolate_(isolate),
module_env_(module_env),
func_body_(body),
func_name_(name),
+ is_sync_(is_sync),
graph_zone_(new Zone(isolate->allocator(), ZONE_NAME)),
jsgraph_(new (graph_zone()) JSGraph(
isolate, new (graph_zone()) Graph(graph_zone()),
@@ -3982,9 +3985,18 @@ void WasmCompilationUnit::InitializeHandles() {
void WasmCompilationUnit::ExecuteCompilation() {
DCHECK(handles_initialized_);
- // TODO(ahaas): The counters are not thread-safe at the moment.
- // HistogramTimerScope wasm_compile_function_time_scope(
- // isolate_->counters()->wasm_compile_function_time());
+ if (is_sync_) {
+ // TODO(karlschimpf): Make this work when asynchronous.
+ // https://bugs.chromium.org/p/v8/issues/detail?id=6361
+ HistogramTimerScope wasm_compile_function_time_scope(
+ isolate_->counters()->wasm_compile_function_time());
+ ExecuteCompilationInternal();
+ return;
+ }
+ ExecuteCompilationInternal();
+}
+
+void WasmCompilationUnit::ExecuteCompilationInternal() {
if (FLAG_trace_wasm_compiler) {
if (func_name_.start() != nullptr) {
PrintF("Compiling WASM function %d:'%.*s'\n\n", func_index(),
@@ -4023,10 +4035,11 @@ void WasmCompilationUnit::ExecuteCompilation() {
!module_env_->module->is_wasm()));
ok_ = job_->ExecuteJob() == CompilationJob::SUCCEEDED;
// TODO(bradnelson): Improve histogram handling of size_t.
- // TODO(ahaas): The counters are not thread-safe at the moment.
- // isolate_->counters()->wasm_compile_function_peak_memory_bytes()
- // ->AddSample(
- // static_cast<int>(jsgraph->graph()->zone()->allocation_size()));
+ if (is_sync_)
+ // TODO(karlschimpf): Make this work when asynchronous.
+ // https://bugs.chromium.org/p/v8/issues/detail?id=6361
+ isolate_->counters()->wasm_compile_function_peak_memory_bytes()->AddSample(
+ static_cast<int>(jsgraph_->graph()->zone()->allocation_size()));
if (FLAG_trace_wasm_decode_time) {
double pipeline_ms = pipeline_timer.Elapsed().InMillisecondsF();
« no previous file with comments | « src/compiler/wasm-compiler.h ('k') | src/wasm/module-decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698