Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 32be87b75f2b616ed994fcdb7792347d8ba599b8
https://github.com/WebKit/WebKit/commit/32be87b75f2b616ed994fcdb7792347d8ba599b8
Author: Yusuke Suzuki <[email protected]>
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes