[webkit-changes] [WebKit/WebKit] 0b31e2: Support JITless Wasm import calls

Daniel Liu noreply at github.com
Tue Aug 13 09:40:49 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0b31e2848d7894a6a26fc22e04e24641ab426429
      https://github.com/WebKit/WebKit/commit/0b31e2848d7894a6a26fc22e04e24641ab426429
  Author: Daniel Liu <danlliu at umich.edu>
  Date:   2024-08-13 (Tue, 13 Aug 2024)

  Changed paths:
    M JSTests/wasm/noJIT/noJIT.js
    A JSTests/wasm/stress/cc-int-to-int-to-js.js
    M JSTests/wasm/stress/wasm-js-call-many-return-types-on-stack-no-args.js
    M Source/JavaScriptCore/assembler/JITOperationList.cpp
    M Source/JavaScriptCore/bytecode/BytecodeList.rb
    M Source/JavaScriptCore/llint/LowLevelInterpreter.asm
    M Source/JavaScriptCore/llint/WebAssembly.asm
    M Source/JavaScriptCore/runtime/Options.cpp
    M Source/JavaScriptCore/wasm/WasmCallee.cpp
    M Source/JavaScriptCore/wasm/WasmCallee.h
    M Source/JavaScriptCore/wasm/WasmEntryPlan.cpp
    M Source/JavaScriptCore/wasm/WasmEntryPlan.h
    M Source/JavaScriptCore/wasm/WasmIndexOrName.h
    M Source/JavaScriptCore/wasm/WasmLLIntPlan.cpp
    M Source/JavaScriptCore/wasm/WasmOperations.cpp
    M Source/JavaScriptCore/wasm/WasmOperations.h
    M Source/JavaScriptCore/wasm/WasmSlowPaths.cpp
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h

  Log Message:
  -----------
  Support JITless Wasm import calls
https://bugs.webkit.org/show_bug.cgi?id=277830
rdar://133494023

Reviewed by Yusuke Suzuki and Keith Miller.

This patch finishes JITless Wasm support by enabling JITless entry points for
imported functions, both from JS and Wasm. This allows us to run JetStream2.0
with JIT turned off.

* JSTests/wasm/stress/cc-infinite-int-glitch.js:
(from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.func.test.export.string_appeared_here.param.x.i32.result.i32.result.i32.local.x.local.x.func.test2.export.string_appeared_here.param.x.i32.result.i32.result.i32.result.i32.local.x.local.x.local.x.async test):
* JSTests/wasm/stress/cc-int-to-int-to-js.js: Added.
(local.x.call.callee.callee):
(async test):
* JSTests/wasm/stress/wasm-js-call-many-return-types-on-stack-no-args.js:
(async test):
* Source/JavaScriptCore/assembler/JITOperationList.cpp:
(JSC::llintOperations):
* Source/JavaScriptCore/bytecode/BytecodeList.rb:
* Source/JavaScriptCore/llint/WebAssembly.asm:
* Source/JavaScriptCore/wasm/WasmCallee.h:
* Source/JavaScriptCore/wasm/WasmEntryPlan.cpp:
(JSC::Wasm::EntryPlan::generateWasmToJSStubs):
* Source/JavaScriptCore/wasm/WasmIndexOrName.h:
* Source/JavaScriptCore/wasm/WasmLLIntPlan.cpp:
(JSC::Wasm::LLIntPlan::compileFunction):
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
* Source/JavaScriptCore/wasm/WasmOperations.h:
* Source/JavaScriptCore/wasm/WasmSlowPaths.cpp:
(JSC::LLInt::doWasmCall):
(JSC::LLInt::doWasmCallIndirect):
(JSC::LLInt::doWasmCallRef):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list