Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5f18ff5fc08d864caa2315af403ec63f535362fa https://github.com/WebKit/WebKit/commit/5f18ff5fc08d864caa2315af403ec63f535362fa Author: Daniel Liu <danl...@umich.edu> Date: 2023-08-14 (Mon, 14 Aug 2023)
Changed paths: A JSTests/wasm/ipint-tests/ipint-test-hot-12.js A JSTests/wasm/ipint-tests/ipint-test-hot-loop.js A JSTests/wasm/ipint-tests/ipint-test-hot.js M Source/JavaScriptCore/b3/B3Procedure.h M Source/JavaScriptCore/llint/InPlaceInterpreter.asm M Source/JavaScriptCore/llint/LowLevelInterpreter.cpp M Source/JavaScriptCore/runtime/Options.cpp M Source/JavaScriptCore/runtime/OptionsList.h M Source/JavaScriptCore/wasm/WasmBBQPlan.cpp M Source/JavaScriptCore/wasm/WasmCallee.cpp M Source/JavaScriptCore/wasm/WasmCallee.h M Source/JavaScriptCore/wasm/WasmCalleeGroup.h M Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.h M Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp M Source/JavaScriptCore/wasm/WasmModuleInformation.h M Source/JavaScriptCore/wasm/WasmOMGPlan.cpp M Source/JavaScriptCore/wasm/WasmOSREntryPlan.cpp M Source/JavaScriptCore/wasm/WasmSlowPaths.cpp M Source/JavaScriptCore/wasm/WasmSlowPaths.h Log Message: ----------- Implement in-place interpreter prologue and loop OSR https://bugs.webkit.org/show_bug.cgi?id=260083 rdar://113768807 Reviewed by Justin Michaud. Add on stack replacement (OSR) functionality to the in-place interpreter, allowing tiering up to both BBQ and OMG JIT tiers. JS2 performance is comparable to LLInt, with local scores both at around 330. * JSTests/wasm/ipint-tests/ipint-test-hot-12.js: Added. (prng): (async test): * JSTests/wasm/ipint-tests/ipint-test-hot-loop.js: Added. (from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.func.export.string_appeared_here.param.i32.result.i32.local.i32.i32.local.0.i32.const.2.local.tee.1.i32.lt_s.then.i32.const.0.return.loop.local.0.local.1.i32.rem_s.then.local.1.i32.const.1.i32.add.local.1.else.i32.const.0.return.local.1.local.0.i32.lt_s.br_if.0.local.0.local.1.i32.eq.return.async test): * JSTests/wasm/ipint-tests/ipint-test-hot.js: Added. (from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.func.export.string_appeared_here.param.i32.result.i32.local.i32.i32.i32.const.1.local.1.loop.local.2.local.1.local.2.i32.add.local.2.local.1.local.0.i32.const.1.i32.sub.local.tee.0.i32.const.0.i32.gt_s.br_if.0.local.2.return.async test): * Source/JavaScriptCore/b3/B3Procedure.h: (JSC::B3::Procedure::usesSIMD const): * Source/JavaScriptCore/llint/InPlaceInterpreter.asm: * Source/JavaScriptCore/llint/LowLevelInterpreter.cpp: (ipint_probe_precall): (ipint_probe_calling): * Source/JavaScriptCore/runtime/Options.cpp: (JSC::Options::notifyOptionsChanged): * Source/JavaScriptCore/runtime/OptionsList.h: * Source/JavaScriptCore/wasm/WasmBBQPlan.cpp: (JSC::Wasm::BBQPlan::work): * Source/JavaScriptCore/wasm/WasmCallee.cpp: (JSC::Wasm::IPIntCallee::IPIntCallee): * Source/JavaScriptCore/wasm/WasmCallee.h: * Source/JavaScriptCore/wasm/WasmCalleeGroup.h: * Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.h: (JSC::Wasm::FunctionIPIntMetadataGenerator::tierUpCounter): * Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp: (JSC::Wasm::IPIntGenerator::notifyFunctionUsesSIMD): (JSC::Wasm::IPIntGenerator::condenseControlFlowInstructions): (JSC::Wasm::IPIntGenerator::addLoop): (JSC::Wasm::IPIntGenerator::endTopLevel): * Source/JavaScriptCore/wasm/WasmModuleInformation.h: (JSC::Wasm::ModuleInformation::usesSIMD const): * Source/JavaScriptCore/wasm/WasmOMGPlan.cpp: (JSC::Wasm::OMGPlan::work): * Source/JavaScriptCore/wasm/WasmOSREntryPlan.cpp: (JSC::Wasm::OSREntryPlan::work): * Source/JavaScriptCore/wasm/WasmSlowPaths.cpp: (JSC::LLInt::shouldJIT): (JSC::LLInt::jitCompileAndSetHeuristics): (JSC::LLInt::WASM_IPINT_EXTERN_CPP_DECL): (JSC::LLInt::WASM_SLOW_PATH_DECL): * Source/JavaScriptCore/wasm/WasmSlowPaths.h: Canonical link: https://commits.webkit.org/266887@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes