Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 103a40a60d857203bddc186d1fd223849392d45e
      
https://github.com/WebKit/WebKit/commit/103a40a60d857203bddc186d1fd223849392d45e
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-05-01 (Fri, 01 May 2026)

  Changed paths:
    A JSTests/wasm/stress/cross-module-rtt-identity.js
    A JSTests/wasm/stress/recgroup-mutual-cycle.js
    A JSTests/wasm/stress/recgroup-order-sensitive.js
    A JSTests/wasm/stress/struct-get-cse-multi-match.js
    M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
    M 
Source/JavaScriptCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations
    M 
Source/JavaScriptCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations
    M Source/JavaScriptCore/Sources.txt
    M Source/JavaScriptCore/b3/B3EliminateCommonSubexpressions.cpp
    M Source/JavaScriptCore/b3/B3LowerMacros.cpp
    M Source/JavaScriptCore/b3/B3ReduceStrength.cpp
    M Source/JavaScriptCore/b3/B3Value.cpp
    M Source/JavaScriptCore/b3/B3WasmArrayElementValue.h
    M Source/JavaScriptCore/b3/B3WasmArrayGetValue.cpp
    M Source/JavaScriptCore/b3/B3WasmArrayGetValue.h
    M Source/JavaScriptCore/b3/B3WasmArrayNewValue.cpp
    M Source/JavaScriptCore/b3/B3WasmArrayNewValue.h
    M Source/JavaScriptCore/b3/B3WasmArraySetValue.cpp
    M Source/JavaScriptCore/b3/B3WasmArraySetValue.h
    M Source/JavaScriptCore/b3/B3WasmRefTypeCheckValue.h
    M Source/JavaScriptCore/b3/B3WasmStructFieldValue.h
    M Source/JavaScriptCore/b3/B3WasmStructGetValue.cpp
    M Source/JavaScriptCore/b3/B3WasmStructGetValue.h
    M Source/JavaScriptCore/b3/B3WasmStructNewValue.cpp
    M Source/JavaScriptCore/b3/B3WasmStructNewValue.h
    M Source/JavaScriptCore/b3/B3WasmStructSetValue.cpp
    M Source/JavaScriptCore/b3/B3WasmStructSetValue.h
    M Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
    M Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp
    M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT.h
    M Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT64.h
    M Source/JavaScriptCore/wasm/WasmBBQPlan.cpp
    M Source/JavaScriptCore/wasm/WasmBBQPlan.h
    M Source/JavaScriptCore/wasm/WasmCallee.cpp
    M Source/JavaScriptCore/wasm/WasmCallee.h
    M Source/JavaScriptCore/wasm/WasmCallingConvention.h
    M Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmFormat.h
    M Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.h
    M Source/JavaScriptCore/wasm/WasmFunctionParser.h
    M Source/JavaScriptCore/wasm/WasmGlobal.cpp
    M Source/JavaScriptCore/wasm/WasmGlobal.h
    M Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmIPIntGenerator.h
    M Source/JavaScriptCore/wasm/WasmIPIntPlan.cpp
    M Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp
    M Source/JavaScriptCore/wasm/WasmJS.h
    M Source/JavaScriptCore/wasm/WasmModule.cpp
    M Source/JavaScriptCore/wasm/WasmModule.h
    M Source/JavaScriptCore/wasm/WasmModuleInformation.h
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.h
    M Source/JavaScriptCore/wasm/WasmOMGPlan.cpp
    M Source/JavaScriptCore/wasm/WasmOMGPlan.h
    M Source/JavaScriptCore/wasm/WasmOSREntryPlan.cpp
    M Source/JavaScriptCore/wasm/WasmOSREntryPlan.h
    M Source/JavaScriptCore/wasm/WasmOperations.cpp
    M Source/JavaScriptCore/wasm/WasmOperations.h
    M Source/JavaScriptCore/wasm/WasmOperationsInlines.h
    M Source/JavaScriptCore/wasm/WasmParser.h
    M Source/JavaScriptCore/wasm/WasmSectionParser.cpp
    M Source/JavaScriptCore/wasm/WasmSectionParser.h
    M Source/JavaScriptCore/wasm/WasmTable.cpp
    M Source/JavaScriptCore/wasm/WasmTable.h
    M Source/JavaScriptCore/wasm/WasmTag.cpp
    M Source/JavaScriptCore/wasm/WasmTag.h
    M Source/JavaScriptCore/wasm/WasmTypeDefinition.cpp
    M Source/JavaScriptCore/wasm/WasmTypeDefinition.h
    M Source/JavaScriptCore/wasm/WasmTypeDefinitionInlines.h
    A Source/JavaScriptCore/wasm/WasmTypeSectionState.cpp
    A Source/JavaScriptCore/wasm/WasmTypeSectionState.h
    M Source/JavaScriptCore/wasm/debugger/WasmModuleDebugInfo.cpp
    M Source/JavaScriptCore/wasm/debugger/tests/TestUtilities.cpp
    M Source/JavaScriptCore/wasm/js/JSToWasm.cpp
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyArray.h
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyArrayInlines.h
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.h
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyStruct.cpp
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyStruct.h
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyTag.h
    M Source/JavaScriptCore/wasm/js/WasmToJS.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyBuiltin.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyBuiltin.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyCompileOptions.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyFunction.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyFunctionBase.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyFunctionBase.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyGCStructure.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyGCStructure.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyTagConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.h

  Log Message:
  -----------
  [JSC] Fix wasm type parsing regression by making RTT formal canonicalized 
types
https://bugs.webkit.org/show_bug.cgi?id=313185
rdar://175466443

Reviewed by Yijia Huang.

We have bunch of problems in RTT etc.'s lifetime, and having two
different type representations (TypeDefinition and RTT) on wasm. Also,
recent dependency computation code caused significant performance
regression because of repeated traversal when constructing wasm GC structures.

Let's make wasm GC type handling *significant* simplified.

1. Introduce TypeSectionState and using this during Type section
   parsing. Our model of Type construction becomes significantly
   simpler. All supporting data structures (Subtype, RecursionGroup,
   Projection) are alive *only during Type section parsing*. And we
   convert everything to canonical RTT. And after that, only RTT exists.
2. Remove TypeDefinition completely. We use Subtype, Projection,
   RecursionGroup during Type section parsing. Constructing RTT, and we
   *attempt to register and expose* this pre-baked RTT to the entire
   process, which is managed by TypeInformation singleton. And if it
   succeeds, this RTT is exposed & deduped, and all threads use it. If
   the same structured RTT is already registered, we use it instead and
   destroy the pre-baked RTT.
3. Basically algorithm itself is not changed. But because of (1) and
   (2), a lot of things are much more strictly typed. Also Subtype,
   Projection, RecursionGroup are allocated from SegmentedVector in
   TypeSectionState so we can continue using these pointers and they are
   swept at the end of Type section parsing.
4. RTT now refer to the other RTT. This means that we can create a
   cyclic reference and leak RTT when it happens. Right now, we leak
   them: V8 etc. are leaking them permanently, and they are bound by
   type representation in wasm modules. We are planning to introduce
   cycle-collector to resolve it, but for now, aligning to V8's model.

This resolves performance regression happened via 312331@main.

Tests: JSTests/wasm/stress/cross-module-rtt-identity.js
       JSTests/wasm/stress/recgroup-mutual-cycle.js
       JSTests/wasm/stress/recgroup-order-sensitive.js
       JSTests/wasm/stress/struct-get-cse-multi-match.js

* JSTests/wasm/stress/cross-module-rtt-identity.js: Added.
* JSTests/wasm/stress/recgroup-mutual-cycle.js: Added.
* JSTests/wasm/stress/recgroup-order-sensitive.js: Added.
(u):
(section):
(buildModule):
(buildTestModule):
* JSTests/wasm/stress/struct-get-cse-multi-match.js: Added.
* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
* 
Source/JavaScriptCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:
* 
Source/JavaScriptCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations:
* Source/JavaScriptCore/Sources.txt:
* Source/JavaScriptCore/b3/B3EliminateCommonSubexpressions.cpp:
* Source/JavaScriptCore/b3/B3LowerMacros.cpp:
* Source/JavaScriptCore/b3/B3ReduceStrength.cpp:
* Source/JavaScriptCore/b3/B3Value.cpp:
(JSC::B3::Value::key const):
* Source/JavaScriptCore/b3/B3WasmArrayElementValue.h:
(JSC::B3::WasmArrayElementValue::rtt const):
(JSC::B3::WasmArrayElementValue::WasmArrayElementValue):
(JSC::B3::WasmArrayElementValue::arrayType const): Deleted.
* Source/JavaScriptCore/b3/B3WasmArrayGetValue.cpp:
(JSC::B3::WasmArrayGetValue::WasmArrayGetValue):
(JSC::B3::WasmArrayGetValue::dumpMeta const):
* Source/JavaScriptCore/b3/B3WasmArrayGetValue.h:
* Source/JavaScriptCore/b3/B3WasmArrayNewValue.cpp:
(JSC::B3::WasmArrayNewValue::dumpMeta const):
* Source/JavaScriptCore/b3/B3WasmArrayNewValue.h:
* Source/JavaScriptCore/b3/B3WasmArraySetValue.cpp:
(JSC::B3::WasmArraySetValue::WasmArraySetValue):
(JSC::B3::WasmArraySetValue::dumpMeta const):
* Source/JavaScriptCore/b3/B3WasmArraySetValue.h:
* Source/JavaScriptCore/b3/B3WasmRefTypeCheckValue.h:
* Source/JavaScriptCore/b3/B3WasmStructFieldValue.h:
(JSC::B3::WasmStructFieldValue::rtt const):
(JSC::B3::WasmStructFieldValue::WasmStructFieldValue):
(JSC::B3::WasmStructFieldValue::structType const): Deleted.
* Source/JavaScriptCore/b3/B3WasmStructGetValue.cpp:
(JSC::B3::WasmStructGetValue::WasmStructGetValue):
* Source/JavaScriptCore/b3/B3WasmStructGetValue.h:
* Source/JavaScriptCore/b3/B3WasmStructNewValue.cpp:
(JSC::B3::WasmStructNewValue::dumpMeta const):
* Source/JavaScriptCore/b3/B3WasmStructNewValue.h:
* Source/JavaScriptCore/b3/B3WasmStructSetValue.cpp:
(JSC::B3::WasmStructSetValue::WasmStructSetValue):
* Source/JavaScriptCore/b3/B3WasmStructSetValue.h:
* Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::BBQJIT):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArguments):
(JSC::Wasm::BBQJITImpl::BBQJIT::getArrayElementType):
(JSC::Wasm::BBQJITImpl::BBQJIT::addTopLevel):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCatch):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCatchToUnreachable):
(JSC::Wasm::BBQJITImpl::BBQJIT::addReturn):
(JSC::Wasm::BBQJITImpl::BBQJIT::saveValuesAcrossCallAndPassArguments):
(JSC::Wasm::BBQJITImpl::BBQJIT::returnValuesFromCall):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitTailCall):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCall):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitIndirectCall):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitIndirectTailCall):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCallIndirect):
(JSC::Wasm::parseAndCompileBBQ):
(JSC::Wasm::BBQJITImpl::BBQJIT::getArrayTypeDefinition): Deleted.
* Source/JavaScriptCore/wasm/WasmBBQJIT.h:
* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::emitAllocateGCArrayUninitialized):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitStructSet):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitAllocateGCStructUninitialized):
(JSC::Wasm::BBQJITImpl::BBQJIT::addStructNewDefault):
(JSC::Wasm::BBQJITImpl::BBQJIT::addStructNew):
(JSC::Wasm::BBQJITImpl::BBQJIT::addStructGet):
(JSC::Wasm::BBQJITImpl::BBQJIT::addStructSet):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitCatchImpl):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitCatchTableImpl):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCallRef):
* Source/JavaScriptCore/wasm/WasmBBQJIT64.h:
(JSC::Wasm::BBQJITImpl::BBQJIT::emitCCall):
* Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::dumpDisassembly):
(JSC::Wasm::BBQPlan::work):
(JSC::Wasm::BBQPlan::compileFunction):
* Source/JavaScriptCore/wasm/WasmBBQPlan.h:
* Source/JavaScriptCore/wasm/WasmCallee.cpp:
(JSC::Wasm::JSToWasmCallee::JSToWasmCallee):
* Source/JavaScriptCore/wasm/WasmCallee.h:
* Source/JavaScriptCore/wasm/WasmCallingConvention.h:
(JSC::Wasm::WasmCallingConvention::callInformationFor const):
(JSC::Wasm::JSCallingConvention::callInformationFor const):
(JSC::Wasm::CCallingConventionArmThumb2::numberOfStackResults const):
(JSC::Wasm::CCallingConventionArmThumb2::numberOfStackArguments const):
(JSC::Wasm::CCallingConventionArmThumb2::callInformationFor const):
* Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp:
(JSC::Wasm::ConstExprGenerator::addArguments):
(JSC::Wasm::ConstExprGenerator::addArrayNewDefault):
(JSC::Wasm::ConstExprGenerator::addArrayNewFixed):
(JSC::Wasm::parseExtendedConstExpr):
(JSC::Wasm::evaluateExtendedConstExpr):
* Source/JavaScriptCore/wasm/WasmFormat.h:
(JSC::Wasm::BlockSignature::BlockSignature):
(JSC::Wasm::BlockSignature::argumentCount const):
(JSC::Wasm::BlockSignature::returnCount const):
(JSC::Wasm::BlockSignature::argumentType const):
(JSC::Wasm::BlockSignature::returnType const):
(JSC::Wasm::BlockSignature::hasReturnedV128 const):
(JSC::Wasm::isValueType):
(JSC::Wasm::isInternalref):
(JSC::Wasm::isSubtypeIndex):
(JSC::Wasm::isSubtypeSlow):
(JSC::Wasm::WasmToWasmImportableFunction::offsetOfRTT):
(JSC::Wasm::BlockSignature::hasReturnVector const):
(JSC::Wasm::isRefWithRecursiveReference): Deleted.
* Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.cpp:
(JSC::Wasm::FunctionIPIntMetadataGenerator::addReturnData):
* Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.h:
* Source/JavaScriptCore/wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser::signature const):
(JSC::Wasm::FunctionParser::typeToStringModuleRelative const):
(JSC::Wasm::FunctionParser<Context>::parseBlockSignatureAndNotifySIMDUseIfNeeded):
(JSC::Wasm::FunctionParser<Context>::FunctionParser):
(JSC::Wasm::FunctionParser<Context>::parse):
(JSC::Wasm::FunctionParser<Context>::parseConstantExpression):
(JSC::Wasm::FunctionParser<Context>::parseBody):
(JSC::Wasm::FunctionParser<Context>::parseStructTypeIndex):
(JSC::Wasm::FunctionParser<Context>::parseStructFieldIndex):
(JSC::Wasm::FunctionParser<Context>::parseStructTypeIndexAndFieldIndex):
(JSC::Wasm::FunctionParser<Context>::parseStructFieldManipulation):
(JSC::Wasm::FunctionParser<Context>::parseArrayTypeDefinition):
(JSC::Wasm::FunctionParser<Context>::parseNestedBlocksEagerly):
(JSC::Wasm::FunctionParser<Context>::parseBlockSignature):
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):
* Source/JavaScriptCore/wasm/WasmGlobal.cpp:
(JSC::Wasm::Global::set):
* Source/JavaScriptCore/wasm/WasmGlobal.h:
* Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp:
(JSC::Wasm::IPIntGenerator::cachedCallInformationFor):
(JSC::Wasm::IPIntGenerator::IPIntGenerator):
(JSC::Wasm::IPIntGenerator::addArguments):
(JSC::Wasm::IPIntGenerator::addStructNew):
(JSC::Wasm::IPIntGenerator::addStructGet):
(JSC::Wasm::IPIntGenerator::addStructSet):
(JSC::Wasm::IPIntGenerator::addCatch):
(JSC::Wasm::IPIntGenerator::addCatchToUnreachable):
(JSC::Wasm::IPIntGenerator::addThrow):
(JSC::Wasm::IPIntGenerator::addCallCommonData):
(JSC::Wasm::IPIntGenerator::addTailCallCommonData):
(JSC::Wasm::IPIntGenerator::addCall):
(JSC::Wasm::IPIntGenerator::addCallIndirect):
(JSC::Wasm::IPIntGenerator::addCallRef):
(JSC::Wasm::parseAndCompileMetadata):
(JSC::Wasm::parseForDebugInfo):
* Source/JavaScriptCore/wasm/WasmIPIntGenerator.h:
* Source/JavaScriptCore/wasm/WasmIPIntPlan.cpp:
(JSC::Wasm::IPIntPlan::compileFunction):
(JSC::Wasm::IPIntPlan::ensureEntrypoint):
* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:
(JSC::IPInt::copyExceptionStackToPayload):
(JSC::IPInt::copyExceptionPayloadToStack):
(JSC::IPInt::WASM_IPINT_EXTERN_CPP_DECL):
* Source/JavaScriptCore/wasm/WasmJS.h:
* Source/JavaScriptCore/wasm/WasmModule.cpp:
(JSC::Wasm::Module::rttFromFunctionIndexSpace const):
(JSC::Wasm::Module::typeIndexFromFunctionIndexSpace const): Deleted.
* Source/JavaScriptCore/wasm/WasmModule.h:
* Source/JavaScriptCore/wasm/WasmModuleInformation.h:
* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:
(JSC::Wasm::OMGIRGenerator::toB3ResultType):
(JSC::Wasm::OMGIRGenerator::addInlinedArguments):
(JSC::Wasm::OMGIRGenerator::addArguments):
(JSC::Wasm::OMGIRGenerator::fillCallResults):
(JSC::Wasm::emitWasmCallStackResultsAndSPRestore):
(JSC::Wasm::OMGIRGenerator::emitIndirectCall):
(JSC::Wasm::OMGIRGenerator::emitStructSet):
(JSC::Wasm::OMGIRGenerator::getArrayRTT):
(JSC::Wasm::OMGIRGenerator::getArrayElementType):
(JSC::Wasm::OMGIRGenerator::getArrayRefType):
(JSC::Wasm::OMGIRGenerator::addArrayNew):
(JSC::Wasm::OMGIRGenerator::addArrayNewDefault):
(JSC::Wasm::OMGIRGenerator::addArrayNewFixed):
(JSC::Wasm::OMGIRGenerator::addArrayGet):
(JSC::Wasm::OMGIRGenerator::emitArraySetUncheckedWithoutWriteBarrier):
(JSC::Wasm::OMGIRGenerator::addArraySet):
(JSC::Wasm::OMGIRGenerator::addStructNew):
(JSC::Wasm::OMGIRGenerator::addStructNewDefault):
(JSC::Wasm::OMGIRGenerator::addStructGet):
(JSC::Wasm::OMGIRGenerator::addStructSet):
(JSC::Wasm::OMGIRGenerator::addCatch):
(JSC::Wasm::OMGIRGenerator::addCatchToUnreachable):
(JSC::Wasm::OMGIRGenerator::emitCatchTableImpl):
(JSC::Wasm::OMGIRGenerator::addInlinedReturn):
(JSC::Wasm::OMGIRGenerator::addReturn):
(JSC::Wasm::OMGIRGenerator::createCallPatchpoint):
(JSC::Wasm::prepareForTailCallImpl):
(JSC::Wasm::OMGIRGenerator::createTailCallPatchpoint):
(JSC::Wasm::OMGIRGenerator::emitInlineDirectCall):
(JSC::Wasm::OMGIRGenerator::addCall):
(JSC::Wasm::OMGIRGenerator::emitDirectCall):
(JSC::Wasm::OMGIRGenerator::tryInliningPolymorphicCalls):
(JSC::Wasm::OMGIRGenerator::addCallIndirect):
(JSC::Wasm::OMGIRGenerator::addCallRef):
(JSC::Wasm::parseAndCompileOMG):
(JSC::Wasm::OMGIRGenerator::getTypeDefinition): Deleted.
(JSC::Wasm::OMGIRGenerator::getArrayTypeDefinition): Deleted.
* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.h:
* Source/JavaScriptCore/wasm/WasmOMGPlan.cpp:
(JSC::Wasm::OMGPlan::dumpDisassembly):
(JSC::Wasm::OMGPlan::work):
* Source/JavaScriptCore/wasm/WasmOMGPlan.h:
* Source/JavaScriptCore/wasm/WasmOSREntryPlan.cpp:
(JSC::Wasm::OSREntryPlan::dumpDisassembly):
(JSC::Wasm::OSREntryPlan::work):
* Source/JavaScriptCore/wasm/WasmOSREntryPlan.h:
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
(JSC::Wasm::JSC_DEFINE_NOEXCEPT_JIT_OPERATION):
* Source/JavaScriptCore/wasm/WasmOperations.h:
* Source/JavaScriptCore/wasm/WasmOperationsInlines.h:
(JSC::Wasm::arrayNew):
(JSC::Wasm::arrayNewFixed):
(JSC::Wasm::arrayNewData):
(JSC::Wasm::arrayNewElem):
(JSC::Wasm::arrayGet):
(JSC::Wasm::arraySet):
(JSC::Wasm::structNew):
(JSC::Wasm::refCast):
* Source/JavaScriptCore/wasm/WasmParser.h:
(JSC::Wasm::ParserBase::ParserBase):
(JSC::Wasm::ParserBase::parseHeapType):
(JSC::Wasm::ParserBase::parseValueType):
* Source/JavaScriptCore/wasm/WasmSectionParser.cpp:
(JSC::Wasm::SectionParser::parseType):
(JSC::Wasm::SectionParser::parseImport):
(JSC::Wasm::SectionParser::parseFunction):
(JSC::Wasm::SectionParser::parseStart):
(JSC::Wasm::SectionParser::parseInitExpr):
(JSC::Wasm::SectionParser::parseFunctionType):
(JSC::Wasm::SectionParser::parseStructType):
(JSC::Wasm::SectionParser::parseArrayType):
(JSC::Wasm::SectionParser::parseRecursionGroup):
(JSC::Wasm::SectionParser::checkStructuralSubtype):
(JSC::Wasm::SectionParser::checkSubtypeValidity):
(JSC::Wasm::SectionParser::parseSubtype):
(JSC::Wasm::SectionParser::parseException):
* Source/JavaScriptCore/wasm/WasmSectionParser.h:
* Source/JavaScriptCore/wasm/WasmTable.cpp:
(JSC::Wasm::Table::Table):
(JSC::Wasm::FuncRefTable::FuncRefTable):
(JSC::Wasm::FuncRefTable::clear):
* Source/JavaScriptCore/wasm/WasmTable.h:
* Source/JavaScriptCore/wasm/WasmTag.cpp:
(JSC::Wasm::Tag::jsExceptionTag):
* Source/JavaScriptCore/wasm/WasmTag.h:
* Source/JavaScriptCore/wasm/WasmTypeDefinition.cpp:
(JSC::Wasm::RTT::tryCreateFunction):
(JSC::Wasm::RTT::tryCreateStruct):
(JSC::Wasm::RTT::tryCreateArray):
(JSC::Wasm::RTT::isSubRTT const):
(JSC::Wasm::RTT::isStrictSubRTT const):
(JSC::Wasm::RTT::toString const):
(JSC::Wasm::RTTGroup::~RTTGroup):
(JSC::Wasm::RTT::rewriteInternalRefs):
(JSC::Wasm::RTT::clearReferencedRTTs):
(JSC::Wasm::RTT::dump const):
(JSC::Wasm::TypeInformation::signatureForJSException):
(JSC::Wasm::TypeInformation::TypeInformation):
(JSC::Wasm::TypeInformation::extractExternalRTT):
(JSC::Wasm::encodeRef):
(JSC::Wasm::hashEncodedRef):
(JSC::Wasm::hashType):
(JSC::Wasm::equalTypes):
(JSC::Wasm::hashFieldType):
(JSC::Wasm::equalFieldTypes):
(JSC::Wasm::hashRTTForRecGroup):
(JSC::Wasm::equalRTTsForRecGroup):
(JSC::Wasm::GroupLookup::operator() const):
(JSC::Wasm::SingletonSelfRef::operator() const):
(JSC::Wasm::TypeInformation::typeDefinitionForFunction):
(JSC::Wasm::TypeInformation::rttForFunction):
(JSC::Wasm::TypeInformation::typeDefinitionForStruct):
(JSC::Wasm::TypeInformation::typeDefinitionForArray):
(JSC::Wasm::TypeInformation::isRefWithRecursiveReference):
(JSC::Wasm::TypeInformation::getCanonicalRTT):
(JSC::Wasm::CanonicalRecursionGroupEntryHash::hash):
(JSC::Wasm::CanonicalRecursionGroupEntryHash::equal):
(JSC::Wasm::CanonicalRecursionGroupEntry::operator== const):
(JSC::Wasm::CanonicalSingletonEntryHash::hash):
(JSC::Wasm::CanonicalSingletonEntryHash::equal):
(JSC::Wasm::CanonicalSingletonEntry::operator== const):
(JSC::Wasm::TypeInformation::canonicalizeRecursionGroup):
(JSC::Wasm::TypeInformation::canonicalizeSingleton):
(JSC::Wasm::TypeInformation::canonicalizeRecursionGroupImpl):
(JSC::Wasm::TypeInformation::canonicalizeSingletonImpl):
(JSC::Wasm::TypeInformation::canonicalizeStandaloneRTT):
(JSC::Wasm::TypeInformation::canonicalizeStandaloneRTTImpl):
(JSC::Wasm::TypeInformation::isReferenceValueAssignable):
(JSC::Wasm::TypeInformation::tryCleanup):
(JSC::Wasm::Type::definitelyIsWasmGCObjectOrNull const):
(JSC::Wasm::Type::dump const):
(JSC::Wasm::TypeDefinition::toString const): Deleted.
(JSC::Wasm::TypeDefinition::dump const): Deleted.
(JSC::Wasm::FunctionSignature::toString const): Deleted.
(JSC::Wasm::FunctionSignature::dump const): Deleted.
(JSC::Wasm::FunctionSignature::FunctionSignature): Deleted.
(JSC::Wasm::StructType::toString const): Deleted.
(JSC::Wasm::StructType::dump const): Deleted.
(JSC::Wasm::StructType::StructType): Deleted.
(JSC::Wasm::ArrayType::ArrayType): Deleted.
(JSC::Wasm::ArrayType::toString const): Deleted.
(JSC::Wasm::ArrayType::dump const): Deleted.
(JSC::Wasm::RecursionGroup::RecursionGroup): Deleted.
(JSC::Wasm::RecursionGroup::toString const): Deleted.
(JSC::Wasm::RecursionGroup::dump const):
(JSC::Wasm::Projection::Projection): Deleted.
(JSC::Wasm::Projection::toString const): Deleted.
(JSC::Wasm::Projection::dump const):
(JSC::Wasm::Subtype::Subtype): Deleted.
(JSC::Wasm::Subtype::toString const): Deleted.
(JSC::Wasm::Subtype::dump const):
(JSC::Wasm::TypeDefinition::cleanup): Deleted.
(JSC::Wasm::Subtype::cleanup): Deleted.
(JSC::Wasm::Projection::cleanup): Deleted.
(JSC::Wasm::RecursionGroup::cleanup): Deleted.
(JSC::Wasm::computeSignatureHash): Deleted.
(JSC::Wasm::computeStructTypeHash): Deleted.
(JSC::Wasm::computeArrayTypeHash): Deleted.
(JSC::Wasm::computeRecursionGroupHash):
(JSC::Wasm::computeProjectionHash):
(JSC::Wasm::computeSubtypeHash):
(JSC::Wasm::TypeDefinition::hash const): Deleted.
(JSC::Wasm::FunctionSignature::tryCreate): Deleted.
(JSC::Wasm::StructType::tryCreate): Deleted.
(JSC::Wasm::ArrayType::tryCreate): Deleted.
(JSC::Wasm::RecursionGroup::tryCreate): Deleted.
(JSC::Wasm::Projection::tryCreate): Deleted.
(JSC::Wasm::Subtype::tryCreate): Deleted.
(JSC::Wasm::TypeDefinition::substitute): Deleted.
(JSC::Wasm::substituteParent): Deleted.
(JSC::Wasm::TypeDefinition::replacePlaceholders const): Deleted.
(JSC::Wasm::TypeDefinition::unrollSlow const): Deleted.
(JSC::Wasm::TypeDefinition::expand const): Deleted.
(JSC::Wasm::TypeDefinition::hasRecursiveReference const): Deleted.
(JSC::Wasm::TypeDefinition::isFinalType const): Deleted.
(JSC::Wasm::RTT::RTT):
(JSC::Wasm::RTT::tryCreate):
(JSC::Wasm::FunctionParameterTypes::hash): Deleted.
(JSC::Wasm::FunctionParameterTypes::equal): Deleted.
(JSC::Wasm::FunctionParameterTypes::translate): Deleted.
(JSC::Wasm::StructParameterTypes::hash): Deleted.
(JSC::Wasm::StructParameterTypes::equal): Deleted.
(JSC::Wasm::StructParameterTypes::translate): Deleted.
(JSC::Wasm::ArrayParameterTypes::hash): Deleted.
(JSC::Wasm::ArrayParameterTypes::equal): Deleted.
(JSC::Wasm::ArrayParameterTypes::translate): Deleted.
(JSC::Wasm::RecursionGroupParameterTypes::hash): Deleted.
(JSC::Wasm::RecursionGroupParameterTypes::equal): Deleted.
(JSC::Wasm::RecursionGroupParameterTypes::translate): Deleted.
(JSC::Wasm::ProjectionParameterTypes::hash): Deleted.
(JSC::Wasm::ProjectionParameterTypes::equal): Deleted.
(JSC::Wasm::ProjectionParameterTypes::translate): Deleted.
(JSC::Wasm::SubtypeParameterTypes::hash): Deleted.
(JSC::Wasm::SubtypeParameterTypes::equal): Deleted.
(JSC::Wasm::SubtypeParameterTypes::translate): Deleted.
(JSC::Wasm::TypeInformation::typeDefinitionForRecursionGroup): Deleted.
(JSC::Wasm::TypeInformation::typeDefinitionForProjection): Deleted.
(JSC::Wasm::TypeInformation::typeDefinitionForSubtype): Deleted.
(JSC::Wasm::TypeInformation::getPlaceholderProjection): Deleted.
(JSC::Wasm::TypeInformation::addCachedUnrolling): Deleted.
(JSC::Wasm::TypeInformation::tryGetCachedUnrolling): Deleted.
(JSC::Wasm::TypeInformation::registerCanonicalRTTForType): Deleted.
(JSC::Wasm::TypeInformation::createCanonicalRTTForType): Deleted.
(JSC::Wasm::typeHash): Deleted.
(JSC::Wasm::WebAssemblyGCTypeDependencies::WebAssemblyGCTypeDependencies): 
Deleted.
(JSC::Wasm::appendToWorkIfNeeded): Deleted.
(JSC::Wasm::WebAssemblyGCTypeDependencies::process): Deleted.
* Source/JavaScriptCore/wasm/WasmTypeDefinition.h:
(JSC::Wasm::TypeSlot::TypeSlot):
(JSC::Wasm::StructFieldEntry::StructFieldEntry):
(JSC::Wasm::RTTFunctionPayload::RTTFunctionPayload):
(JSC::Wasm::RTTFunctionPayload::argumentCount const):
(JSC::Wasm::RTTFunctionPayload::returnCount const):
(JSC::Wasm::RTTFunctionPayload::returnType const):
(JSC::Wasm::RTTFunctionPayload::argumentType const):
(JSC::Wasm::RTTFunctionPayload::returnsVoid const):
(JSC::Wasm::RTTFunctionPayload::argumentsOrResultsIncludeI64 const):
(JSC::Wasm::RTTFunctionPayload::argumentsOrResultsIncludeV128 const):
(JSC::Wasm::RTTFunctionPayload::argumentsOrResultsIncludeExnref const):
(JSC::Wasm::RTTFunctionPayload::hasRecursiveReference const):
(JSC::Wasm::RTTFunctionPayload::visitChildrenRTT):
(JSC::Wasm::RTTStructPayload::RTTStructPayload):
(JSC::Wasm::RTTStructPayload::fieldCount const):
(JSC::Wasm::RTTStructPayload::offsetOfFieldInPayload const):
(JSC::Wasm::RTTStructPayload::instancePayloadSize const):
(JSC::Wasm::RTTStructPayload::hasRefFieldTypes const):
(JSC::Wasm::RTTStructPayload::hasRecursiveReference const):
(JSC::Wasm::RTTStructPayload::visitChildrenRTT):
(JSC::Wasm::RTTArrayPayload::RTTArrayPayload):
(JSC::Wasm::RTTArrayPayload::hasRecursiveReference const):
(JSC::Wasm::RTTArrayPayload::visitChildrenRTT):
(JSC::Wasm::CanonicalRecursionGroupEntry::CanonicalRecursionGroupEntry):
(JSC::Wasm::CanonicalRecursionGroupEntry::isHashTableDeletedValue const):
(JSC::Wasm::CanonicalSingletonEntry::CanonicalSingletonEntry):
(JSC::Wasm::CanonicalSingletonEntry::isHashTableDeletedValue const):
(WTF::HashTraits<JSC::Wasm::CanonicalRecursionGroupEntry>::isEmptyValue):
(JSC::Wasm::TypeDefinition::is const): Deleted.
(JSC::Wasm::TypeDefinition::as): Deleted.
(JSC::Wasm::TypeDefinition::as const): Deleted.
(JSC::Wasm::TypeDefinition::operator== const): Deleted.
(JSC::Wasm::TypeDefinition::unroll const): Deleted.
(JSC::Wasm::TypeDefinition::unownedIndex const): Deleted.
(JSC::Wasm::TypeDefinition::TypeDefinition): Deleted.
(JSC::Wasm::Type::dump const):
(JSC::Wasm::TypeHash::TypeHash): Deleted.
(JSC::Wasm::TypeHash::operator== const): Deleted.
(JSC::Wasm::TypeHash::equal): Deleted.
(JSC::Wasm::TypeHash::hash): Deleted.
(JSC::Wasm::TypeHash::isHashTableDeletedValue const): Deleted.
(JSC::Wasm::TypeInformation::thunkFor const): Deleted.
* Source/JavaScriptCore/wasm/WasmTypeDefinitionInlines.h:
(JSC::Wasm::TypeInformation::tryGetRTT):
(JSC::Wasm::TypeInformation::typeDefinitionForStructFromProvider):
(JSC::Wasm::TypeInformation::typeDefinitionForFunctionFromProviders):
(JSC::Wasm::TypeDefinition::index const): Deleted.
(JSC::Wasm::TypeInformation::get): Deleted.
(JSC::Wasm::TypeInformation::getFunctionSignature): Deleted.
(): Deleted.
(JSC::Wasm::TypeInformation::getRef): Deleted.
* Source/JavaScriptCore/wasm/WasmTypeSectionState.cpp: Added.
(JSC::Wasm::computeProjectionHash):
(JSC::Wasm::ProjectionHash::hash):
(JSC::Wasm::ProjectionHash::equal):
(JSC::Wasm::ParsedDef::hasRecursiveReference const):
(JSC::Wasm::ParsedDef::index const):
(JSC::Wasm::ParsedDef::canonicalRTT const):
(JSC::Wasm::RecursionGroup::emptySingleton):
(JSC::Wasm::RecursionGroup::toString const):
(JSC::Wasm::RecursionGroup::dump const):
(JSC::Wasm::Projection::toString const):
(JSC::Wasm::Projection::dump const):
(JSC::Wasm::Subtype::toString const):
(JSC::Wasm::Subtype::dump const):
(JSC::Wasm::Subtype::hasRecursiveReference const):
(JSC::Wasm::ProjectionLookupTranslator::hash):
(JSC::Wasm::ProjectionLookupTranslator::equal):
(JSC::Wasm::TypeSectionState::createRecursionGroup):
(JSC::Wasm::TypeSectionState::createProjection):
(JSC::Wasm::TypeSectionState::createSubtype):
(JSC::Wasm::TypeSectionState::createPlaceholderProjection):
(JSC::Wasm::TypeSectionState::substitute):
(JSC::Wasm::TypeSectionState::substituteParent):
(JSC::Wasm::TypeSectionState::registerCanonicalRTT):
(JSC::Wasm::TypeSectionState::createCanonicalRTT):
* Source/JavaScriptCore/wasm/WasmTypeSectionState.h: Added.
(JSC::Wasm::untagProjection):
(JSC::Wasm::untagSubtype):
(JSC::Wasm::tagAsSubtype):
(JSC::Wasm::tagAsProjection):
(JSC::Wasm::isPlaceholderRef):
(JSC::Wasm::ParsedDef::ParsedDef):
(JSC::Wasm::ParsedDef::isRTT const):
(JSC::Wasm::ParsedDef::isSubtype const):
(JSC::Wasm::ParsedDef::asRTT const):
(JSC::Wasm::ParsedDef::asSubtype const):
(JSC::Wasm::ParsedDef::operator! const):
(JSC::Wasm::ParsedDef::operator bool const):
* Source/JavaScriptCore/wasm/debugger/WasmModuleDebugInfo.cpp:
(JSC::Wasm::ModuleDebugInfo::ensureFunctionDebugInfo):
* Source/JavaScriptCore/wasm/debugger/tests/TestUtilities.cpp:
(WasmDebugInfoTest::parseAndVerifyDebugInfoImpl):
* Source/JavaScriptCore/wasm/js/JSToWasm.cpp:
(JSC::Wasm::marshallJSResult):
(JSC::Wasm::usedCalleeSaveRegisters):
(JSC::Wasm::RTT::jsToWasmICEntrypoint const):
(JSC::Wasm::FunctionSignature::jsToWasmICEntrypoint const): Deleted.
* Source/JavaScriptCore/wasm/js/JSWebAssemblyArray.h:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyArrayInlines.h:
(JSC::JSWebAssemblyArray::createStructure):
* Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::finishCreation):
(JSC::JSWebAssemblyInstance::initElementSegment):
* Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp:
(JSC::JSWebAssemblyModule::rttFromFunctionIndexSpace const):
(JSC::JSWebAssemblyModule::typeIndexFromFunctionIndexSpace const): Deleted.
* Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.h:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyStruct.cpp:
(JSC::JSWebAssemblyStruct::tryCreate):
(JSC::JSWebAssemblyStruct::getVector const):
(JSC::JSWebAssemblyStruct::visitChildrenImpl):
* Source/JavaScriptCore/wasm/js/JSWebAssemblyStruct.h:
(JSC::JSWebAssemblyStruct::createStructure):
* Source/JavaScriptCore/wasm/js/JSWebAssemblyTag.h:
* Source/JavaScriptCore/wasm/js/WasmToJS.cpp:
(JSC::Wasm::wasmToJS):
* Source/JavaScriptCore/wasm/js/WebAssemblyBuiltin.cpp:
(JSC::WebAssemblyArrayMutI16TypeExpectation::isValid const):
(JSC::WebAssemblyBuiltinSignature::isValid const):
* Source/JavaScriptCore/wasm/js/WebAssemblyBuiltin.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyCompileOptions.cpp:
(JSC::WebAssemblyCompileOptions::validateImportForBuiltinSetNames const):
* Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::create):
(JSC::WebAssemblyFunction::WebAssemblyFunction):
* Source/JavaScriptCore/wasm/js/WebAssemblyFunction.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyFunctionBase.cpp:
(JSC::WebAssemblyFunctionBase::signature const):
* Source/JavaScriptCore/wasm/js/WebAssemblyFunctionBase.h:
(JSC::WebAssemblyFunctionBase::type const):
(JSC::WebAssemblyFunctionBase::typeIndex const): Deleted.
* Source/JavaScriptCore/wasm/js/WebAssemblyGCStructure.cpp:
(JSC::WebAssemblyGCStructure::WebAssemblyGCStructure):
(JSC::WebAssemblyGCStructure::create):
* Source/JavaScriptCore/wasm/js/WebAssemblyGCStructure.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.cpp:
(JSC::createTypeReflectionObject):
* Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::initializeBuiltinImport):
(JSC::WebAssemblyModuleRecord::initializeImports):
(JSC::WebAssemblyModuleRecord::initializeExports):
* Source/JavaScriptCore/wasm/js/WebAssemblyTagConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::WebAssemblyWrapperFunction::create):
* Source/JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.h:

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



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

Reply via email to