[webkit-changes] [WebKit/WebKit] 9e128e: [JSC] Reload baseMemory and boundsCheckingSize in ...

Yusuke Suzuki noreply at github.com
Wed Jan 25 14:23:03 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9e128ee528b7525975e9328b95718f29167fc4ff
      https://github.com/WebKit/WebKit/commit/9e128ee528b7525975e9328b95718f29167fc4ff
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-01-25 (Wed, 25 Jan 2023)

  Changed paths:
    M Source/JavaScriptCore/runtime/BufferMemoryHandle.cpp
    M Source/JavaScriptCore/runtime/MemoryMode.cpp
    M Source/JavaScriptCore/runtime/MemoryMode.h
    M Source/JavaScriptCore/wasm/WasmAirIRGenerator32_64.cpp
    M Source/JavaScriptCore/wasm/WasmAirIRGenerator64.cpp
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmCalleeGroup.cpp
    M Source/JavaScriptCore/wasm/WasmMemory.cpp

  Log Message:
  -----------
  [JSC] Reload baseMemory and boundsCheckingSize in the same way to instance
https://bugs.webkit.org/show_bug.cgi?id=251161
rdar://104653875

Reviewed by Justin Michaud.

If wasm memory mode is Signaling or memory is Shared one,

    1. baseMemory pointer never changes.
    2. boundsCheckingSize never changes.

So, this is effectively the same to instance pointer which also never changes.
We should do the same thing to instance's reloading scheme.
This improves wasm CallIndirect significantly: JetStream2/richards-wasm Runtime gets improved by 15% (16.129 -> 18.587).

* Source/JavaScriptCore/runtime/BufferMemoryHandle.cpp:
(JSC::BufferMemoryHandle::~BufferMemoryHandle):
* Source/JavaScriptCore/runtime/MemoryMode.cpp:
(WTF::printInternal):
* Source/JavaScriptCore/runtime/MemoryMode.h:
* Source/JavaScriptCore/wasm/WasmAirIRGenerator64.cpp:
(JSC::Wasm::AirIRGenerator64::useSignalingMemory const):
(JSC::Wasm::AirIRGenerator64::emitCheckAndPreparePointer):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::useSignalingMemory const):
(JSC::Wasm::B3IRGenerator::instanceValue):
(JSC::Wasm::B3IRGenerator::baseMemoryValue):
(JSC::Wasm::B3IRGenerator::boundsCheckingSizeValue):
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
* Source/JavaScriptCore/wasm/WasmCalleeGroup.cpp:
(JSC::Wasm::CalleeGroup::isSafeToRun):
* Source/JavaScriptCore/wasm/WasmMemory.cpp:
(JSC::Wasm::Memory::grow):

Canonical link: https://commits.webkit.org/259387@main




More information about the webkit-changes mailing list