[Liftoff] Measure liftoff compile time separately
Add a counter to measure the pure liftoff compile time. With background compilation, the reported result will roughly match the cpu time, not wall-clock time. R=titzer@chromium.org Bug: v8:6600 Change-Id: I9c76673a4cbe833de5b41a23d09892f577401374 Reviewed-on: https://chromium-review.googlesource.com/853859 Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50412}
This commit is contained in:
parent
30aa7b073c
commit
06bf1245cf
@ -1145,6 +1145,8 @@ class RuntimeCallTimerScope {
|
||||
1000000, MICROSECOND) \
|
||||
HT(wasm_compile_wasm_function_time, V8.WasmCompileFunctionMicroSeconds.wasm, \
|
||||
1000000, MICROSECOND) \
|
||||
HT(liftoff_compile_time, V8.LiftoffCompileMicroSeconds, 10000000, \
|
||||
MICROSECOND) \
|
||||
HT(wasm_instantiate_wasm_module_time, \
|
||||
V8.WasmInstantiateModuleMicroSeconds.wasm, 10000000, MICROSECOND) \
|
||||
HT(wasm_instantiate_asm_module_time, \
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include "src/wasm/baseline/liftoff-assembler.h"
|
||||
|
||||
#include "src/assembler-inl.h"
|
||||
#include "src/base/optional.h"
|
||||
#include "src/compiler/linkage.h"
|
||||
#include "src/compiler/wasm-compiler.h"
|
||||
#include "src/counters.h"
|
||||
@ -802,11 +803,14 @@ bool compiler::WasmCompilationUnit::ExecuteLiftoffCompilation() {
|
||||
Zone zone(isolate_->allocator(), "LiftoffCompilationZone");
|
||||
const wasm::WasmModule* module = env_ ? env_->module : nullptr;
|
||||
auto* call_desc = compiler::GetWasmCallDescriptor(&zone, func_body_.sig);
|
||||
base::Optional<TimedHistogramScope> liftoff_compile_time_scope(
|
||||
base::in_place, counters()->liftoff_compile_time());
|
||||
wasm::WasmFullDecoder<wasm::Decoder::kValidate, wasm::LiftoffCompiler>
|
||||
decoder(&zone, module, func_body_, &liftoff_.asm_, call_desc, env_,
|
||||
runtime_exception_support_,
|
||||
&liftoff_.source_position_table_builder_);
|
||||
decoder.Decode();
|
||||
liftoff_compile_time_scope.reset();
|
||||
if (!decoder.interface().ok()) {
|
||||
// Liftoff compilation failed.
|
||||
isolate_->counters()->liftoff_unsupported_functions()->Increment();
|
||||
|
Loading…
Reference in New Issue
Block a user