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

Reply via email to