[webkit-changes] [WebKit/WebKit] 32be87: [JSC] Generate PCToCodeOriginMap for WasmBBQJIT wh...
Yusuke Suzuki
noreply at github.com
Tue Mar 14 10:53:18 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 32be87b75f2b616ed994fcdb7792347d8ba599b8
https://github.com/WebKit/WebKit/commit/32be87b75f2b616ed994fcdb7792347d8ba599b8
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-03-14 (Tue, 14 Mar 2023)
Changed paths:
M Source/JavaScriptCore/jit/PCToCodeOriginMap.cpp
M Source/JavaScriptCore/jit/PCToCodeOriginMap.h
M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
M Source/JavaScriptCore/wasm/WasmB3IRGenerator.h
M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
M Source/JavaScriptCore/wasm/WasmFunctionParser.h
M Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp
Log Message:
-----------
[JSC] Generate PCToCodeOriginMap for WasmBBQJIT when sampling profiler is enabled
https://bugs.webkit.org/show_bug.cgi?id=253867
rdar://problem/106677398
Reviewed by Tadeu Zagallo.
This patch makes WasmBBQJIT generate PCToCodeOriginMap when useSamplingProfiler is true so that we can
get per-wasm-offset sampling profiler data. This patch extends WasmFunctionParser and add willParseOpcode / didParseOpcode
hooks. They are empty in most of generators, but in WasmBBQJIT, we use it to notify to PCToCodeOriginMapBuilder.
PCToCodeOriginMapBuilder does nothing when useSamplingProfiler is false. And it generates necessary metadata when
useSamplingProfiler is true. And we wire generated map to the existing wasm PCToCodeOriginMap registry so that we can get
sampling profiler data like this.
Hottest bytecodes as <numSamples 'functionName#hash:JITType:bytecodeIndex'>
242 '<?>.wasm-function[301]:LLInt:nil'
93 '<?>.wasm-function[141]:BBQ:0x1fa'
29 '<?>.wasm-function[141]:BBQ:0x44f'
28 '<?>.wasm-function[400]:BBQ:0x0'
22 '_platform_memmove#<nil>:None:<nil>'
20 'expandFileStorage#<nil>:FTL:bc#383'
19 '<?>.wasm-function[400]:BBQ:0x199'
* Source/JavaScriptCore/jit/PCToCodeOriginMap.cpp:
(JSC::PCToCodeOriginMapBuilder::appendItemSlow):
(JSC::PCToCodeOriginMapBuilder::appendItem): Deleted.
* Source/JavaScriptCore/jit/PCToCodeOriginMap.h:
(JSC::PCToCodeOriginMapBuilder::PCToCodeOriginMapBuilder):
(JSC::PCToCodeOriginMapBuilder::appendItem):
* Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h:
(JSC::Wasm::AirIRGeneratorBase::willParseOpcode):
(JSC::Wasm::AirIRGeneratorBase::didParseOpcode):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::willParseOpcode):
(JSC::Wasm::B3IRGenerator::didParseOpcode):
(JSC::Wasm::computePCToCodeOriginMap):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.h:
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::BBQJIT):
(JSC::Wasm::BBQJIT::addTopLevel):
(JSC::Wasm::BBQJIT::willParseOpcode):
(JSC::Wasm::BBQJIT::didParseOpcode):
(JSC::Wasm::BBQJIT::takePCToCodeOriginMapBuilder):
(JSC::Wasm::parseAndCompileBBQ):
* Source/JavaScriptCore/wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseBody):
* Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::willParseOpcode):
(JSC::Wasm::LLIntGenerator::didParseOpcode):
Canonical link: https://commits.webkit.org/261639@main
More information about the webkit-changes
mailing list