[webkit-changes] [WebKit/WebKit] 527e2a: Fix race condition for wasm referenced functions

EWS noreply at github.com
Tue Jan 24 18:06:30 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 527e2a01d73c94cc018b1fa060fdffc15bab69d6
      https://github.com/WebKit/WebKit/commit/527e2a01d73c94cc018b1fa060fdffc15bab69d6
  Author: Yijia Huang <yijia_huang at apple.com>
  Date:   2023-01-24 (Tue, 24 Jan 2023)

  Changed paths:
    A JSTests/wasm/stress/referenced-function.js
    A JSTests/wasm/stress/resources/funcref-race.wasm
    M Source/JavaScriptCore/wasm/WasmBBQPlan.cpp
    M Source/JavaScriptCore/wasm/WasmLLIntPlan.cpp
    M Source/JavaScriptCore/wasm/WasmModuleInformation.h
    M Source/JavaScriptCore/wasm/WasmSectionParser.cpp
    M Source/WTF/WTF.xcodeproj/project.pbxproj
    M Source/WTF/wtf/BitVector.h
    M Source/WTF/wtf/CMakeLists.txt
    A Source/WTF/wtf/FixedBitVector.h
    M Tools/TestWebKitAPI/CMakeLists.txt
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    A Tools/TestWebKitAPI/Tests/WTF/FixedBitVector.cpp

  Log Message:
  -----------
  Fix race condition for wasm referenced functions
https://bugs.webkit.org/show_bug.cgi?id=250847
rdar://104332636

Reviewed by Mark Lam.

Fix race condition for updating referenced functions while compiling
wasm functions concurrently.

* JSTests/wasm/stress/referenced-function.js: Added.
(async let):
(j.catch):
* JSTests/wasm/stress/resources/funcref-race.wasm: Added.
* Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::compileFunction):
* Source/JavaScriptCore/wasm/WasmLLIntPlan.cpp:
(JSC::Wasm::LLIntPlan::didCompleteCompilation):
* Source/JavaScriptCore/wasm/WasmModuleInformation.h:
(JSC::Wasm::ModuleInformation::referencedFunctions const):
(JSC::Wasm::ModuleInformation::hasReferencedFunction const):
(JSC::Wasm::ModuleInformation::addReferencedFunction const):
* Source/WTF/WTF.xcodeproj/project.pbxproj:
* Source/WTF/wtf/CMakeLists.txt:
* Source/WTF/wtf/FixedBitVector.h: Added.
(WTF::FixedBitVector::concurrentAllocateOnce):
(WTF::FixedBitVector::concurrentTest):
(WTF::FixedBitVector::concurrentTestAndSet):
(WTF::FixedBitVector::testAndSet):
(WTF::FixedBitVector::test):
(WTF::FixedBitVector::findBit const):
(WTF::FixedBitVector::operator== const):
(WTF::FixedBitVector::hash const):
(WTF::FixedBitVector::get const):
(WTF::FixedBitVector::dump const):
(WTF::FixedBitVectorHash::hash):
(WTF::FixedBitVectorHash::equal):
* Tools/TestWebKitAPI/CMakeLists.txt:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WTF/FixedBitVector.cpp: Added.
(TestWebKitAPI::testFixedBitVectorSize):
(TestWebKitAPI::testFixedBitVectorTest):
(TestWebKitAPI::testFixedBitVectorTestAndSet):
(TestWebKitAPI::testFixedBitVectorConcurrentTest):
(TestWebKitAPI::testFixedBitVectorConcurrentTestAndSet):
(TestWebKitAPI::TEST):

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




More information about the webkit-changes mailing list