Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: db4b9bc6dd3c7674361afb564cd6c1a06c0ccd00 https://github.com/WebKit/WebKit/commit/db4b9bc6dd3c7674361afb564cd6c1a06c0ccd00 Author: Yusuke Suzuki <ysuz...@apple.com> Date: 2023-01-23 (Mon, 23 Jan 2023)
Changed paths: M JSTests/stress/sampling-profiler-wasm-name-section.js M Source/JavaScriptCore/bytecode/CodeBlock.cpp M Source/JavaScriptCore/bytecode/Repatch.cpp M Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp M Source/JavaScriptCore/dfg/DFGDoesGCCheck.cpp M Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp M Source/JavaScriptCore/interpreter/CallFrame.cpp M Source/JavaScriptCore/interpreter/CallFrame.h M Source/JavaScriptCore/interpreter/Interpreter.cpp M Source/JavaScriptCore/interpreter/ShadowChicken.cpp M Source/JavaScriptCore/interpreter/StackVisitor.cpp M Source/JavaScriptCore/jit/JITExceptions.cpp M Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp M Source/JavaScriptCore/jsc.cpp M Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp M Source/JavaScriptCore/runtime/VM.cpp M Source/JavaScriptCore/runtime/VMTraps.cpp M Source/JavaScriptCore/tools/VMInspector.cpp M Source/JavaScriptCore/wasm/WasmCallee.cpp M Source/JavaScriptCore/wasm/WasmCallee.h M Source/JavaScriptCore/wasm/WasmCompilationMode.cpp M Source/JavaScriptCore/wasm/WasmCompilationMode.h M Source/JavaScriptCore/wasm/WasmGlobal.cpp M Source/JavaScriptCore/wasm/WasmGlobal.h M Source/JavaScriptCore/wasm/WasmInstance.cpp M Source/JavaScriptCore/wasm/WasmInstance.h M Source/JavaScriptCore/wasm/WasmModule.cpp M Source/JavaScriptCore/wasm/WasmModule.h M Source/JavaScriptCore/wasm/WasmOperations.cpp M Source/JavaScriptCore/wasm/WasmOperations.h M Source/JavaScriptCore/wasm/WasmOperationsInlines.h M Source/JavaScriptCore/wasm/WasmSlowPaths.cpp M Source/JavaScriptCore/wasm/WasmTable.cpp M Source/JavaScriptCore/wasm/WasmTable.h M Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp M Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h M Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp M Source/JavaScriptCore/wasm/js/WasmToJS.cpp M Source/JavaScriptCore/wasm/js/WasmToJS.h M Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp Log Message: ----------- [JSC] Clean up WasmToJS https://bugs.webkit.org/show_bug.cgi?id=250966 rdar://104523769 Reviewed by Tadeu Zagallo. This patch fixes terrible hack in WasmToJS where we are setting JSWebAssemblyInstance to |callee| slot. 1. We should use Wasm::Callee since this is wasm code. This patch adds WasmToJSCallee and materialize this. We also puts Wasm::Instance* in |codeBlock| slot too so that operation function from this code can get Wasm::Instance*. 2. Remove indirection of types of owners. We should tightly couple JSC with wasm engine. 3. Put JSGlobalObject* in Wasm::Instance* to make WasmToJS code simpler and efficient. 4. Remove CallFrame::isAnyWasmCallee. Now all Wasm frames have Wasm::Callee*. So this hack is no longer necessary. * JSTests/stress/sampling-profiler-wasm-name-section.js: (platformSupportsSamplingProfiler.vm.isWasmSupported): * Source/JavaScriptCore/bytecode/CodeBlock.cpp: (JSC::CodeBlock::noticeIncomingCall): * Source/JavaScriptCore/bytecode/Repatch.cpp: (JSC::linkMonomorphicCall): (JSC::linkVirtualFor): (JSC::linkPolymorphicCall): * Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp: (JSC::DebuggerCallFrame::scope): (JSC::DebuggerCallFrame::thisValue const): (JSC::DebuggerCallFrame::evaluateWithScopeExtension): (JSC::DebuggerCallFrame::sourceIDForCallFrame): * Source/JavaScriptCore/dfg/DFGDoesGCCheck.cpp: (JSC::DFG::DoesGCCheck::verifyCanGC): * Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp: (Inspector::functionName): * Source/JavaScriptCore/interpreter/CallFrame.cpp: (JSC::CallFrame::friendlyFunctionName): (JSC::CallFrame::dump const): (JSC::CallFrame::lexicalGlobalObjectFromWasmCallee const): (JSC::CallFrame::isAnyWasmCallee const): Deleted. * Source/JavaScriptCore/interpreter/CallFrame.h: * Source/JavaScriptCore/interpreter/Interpreter.cpp: (JSC::UnwindFunctor::notifyDebuggerOfUnwinding): (JSC::Interpreter::unwind): * Source/JavaScriptCore/interpreter/ShadowChicken.cpp: (JSC::ShadowChicken::update): * Source/JavaScriptCore/interpreter/StackVisitor.cpp: (JSC::StackVisitor::readFrame): (JSC::StackVisitor::readNonInlinedFrame): (JSC::StackVisitor::Frame::calleeSaveRegistersForUnwinding): * Source/JavaScriptCore/jit/JITExceptions.cpp: (JSC::genericUnwind): * Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp: (JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine): * Source/JavaScriptCore/jsc.cpp: (JSC_DEFINE_HOST_FUNCTION): * Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp: (JSC::getCallerCodeBlock): * Source/JavaScriptCore/runtime/VM.cpp: (JSC::VM::throwException): * Source/JavaScriptCore/runtime/VMTraps.cpp: (JSC::VMTraps::invalidateCodeBlocksOnStack): * Source/JavaScriptCore/tools/VMInspector.cpp: (JSC::VMInspector::dumpRegisters): * Source/JavaScriptCore/wasm/WasmCallee.cpp: (JSC::Wasm::Callee::runWithDowncast): (JSC::Wasm::WasmToJSCallee::WasmToJSCallee): * Source/JavaScriptCore/wasm/WasmCallee.h: * Source/JavaScriptCore/wasm/WasmCompilationMode.cpp: (JSC::Wasm::makeString): * Source/JavaScriptCore/wasm/WasmCompilationMode.h: (JSC::Wasm::isOSREntry): (JSC::Wasm::isAnyBBQ): (JSC::Wasm::isAnyOMG): * Source/JavaScriptCore/wasm/WasmGlobal.cpp: * Source/JavaScriptCore/wasm/WasmGlobal.h: * Source/JavaScriptCore/wasm/WasmInstance.cpp: (JSC::Wasm::Instance::Instance): (JSC::Wasm::Instance::create): (JSC::Wasm::Instance::setGlobal): (JSC::Wasm::Instance::setFunctionWrapper): (JSC::Wasm::Instance::initElementSegment): * Source/JavaScriptCore/wasm/WasmInstance.h: (JSC::Wasm::Instance::setOwner): (JSC::Wasm::Instance::owner const): (JSC::Wasm::Instance::offsetOfGlobalObject): (JSC::Wasm::Instance::globalObject const): (JSC::Wasm::Instance::allocationSize): * Source/JavaScriptCore/wasm/WasmModule.cpp: (JSC::Wasm::Module::Module): * Source/JavaScriptCore/wasm/WasmModule.h: (JSC::Wasm::Module::wasmToJSCallee): * Source/JavaScriptCore/wasm/WasmOperations.cpp: (JSC::Wasm::JSC_DEFINE_JIT_OPERATION): * Source/JavaScriptCore/wasm/WasmOperations.h: * Source/JavaScriptCore/wasm/WasmOperationsInlines.h: (JSC::Wasm::arrayNew): (JSC::Wasm::structNew): (JSC::Wasm::structSet): (JSC::Wasm::throwWasmToJSException): * Source/JavaScriptCore/wasm/WasmSlowPaths.cpp: (JSC::LLInt::WASM_SLOW_PATH_DECL): * Source/JavaScriptCore/wasm/WasmTable.cpp: * Source/JavaScriptCore/wasm/WasmTable.h: (JSC::Wasm::Table::owner const): (JSC::Wasm::Table::setOwner): * Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp: (JSC::JSWebAssemblyInstance::visitChildrenImpl): (JSC::JSWebAssemblyInstance::tryCreate): * Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h: * Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp: (JSC::JSWebAssemblyModule::generateWasmToJSStubs): * Source/JavaScriptCore/wasm/js/WasmToJS.cpp: (JSC::Wasm::handleBadImportTypeUse): (JSC::Wasm::wasmToJS): * Source/JavaScriptCore/wasm/js/WasmToJS.h: * Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp: (JSC::WebAssemblyModuleRecord::initializeExports): Canonical link: https://commits.webkit.org/259216@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes