[webkit-changes] [WebKit/WebKit] 46375f: Pass core WebAssembly spec tests on ARM64 with sin...

EWS noreply at github.com
Tue Feb 14 09:04:28 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 46375fbc5a6710ec3e2fd10848009e31b307b741
      https://github.com/WebKit/WebKit/commit/46375fbc5a6710ec3e2fd10848009e31b307b741
  Author: David Degazio <d_degazio at apple.com>
  Date:   2023-02-14 (Tue, 14 Feb 2023)

  Changed paths:
    M Source/JavaScriptCore/Sources.txt
    M Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
    M Source/JavaScriptCore/runtime/OptionsList.h
    M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
    A Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
    A Source/JavaScriptCore/wasm/WasmBBQJIT.h
    M Source/JavaScriptCore/wasm/WasmBBQPlan.cpp
    M Source/JavaScriptCore/wasm/WasmFunctionParser.h
    M Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp
    M Source/WTF/wtf/PlatformEnable.h
    M Source/WTF/wtf/SmallSet.h

  Log Message:
  -----------
  Pass core WebAssembly spec tests on ARM64 with single-pass WebAssembly baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=250052
rdar://105421077

Reviewed by Yusuke Suzuki.

Adds a new single-pass baseline JIT implementation for WebAssembly, the single-pass
BBQ JIT. The main goal of this new compiler is to compile substantially faster than
the existing Air tier, while offering comparable levels of generated code performance.
This should help us start up considerably faster on large WASM programs.

This is the initial commit of this feature, and the new baseline is only partially
complete. Currently, it should pass all the core spec tests on ARM64, but there are
some remaining issues on other platforms, some failures on the full stress tests, and
missing support for some key features like SIMD. As such, it's being landed disabled
by default, behind the new '--useSinglePassBBQJIT' flag.

* Source/JavaScriptCore/Sources.txt:
* Source/JavaScriptCore/runtime/OptionsList.h:
* Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h:
(JSC::Wasm::ExpressionType>::getGlobal):
(JSC::Wasm::parseAndCompileAirImpl):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompileB3):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp: Added.
* Source/JavaScriptCore/wasm/WasmBBQJIT.h: Added.
* Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::dumpDisassembly):
(JSC::Wasm::BBQPlan::work):
(JSC::Wasm::BBQPlan::compileFunction):
(JSC::Wasm::BBQPlan::didCompleteCompilation):
* Source/JavaScriptCore/wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser::typeOfLocal const):

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




More information about the webkit-changes mailing list