Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5f50c2e0c206b7f0fe8ca5040af207298a09c399
      
https://github.com/WebKit/WebKit/commit/5f50c2e0c206b7f0fe8ca5040af207298a09c399
  Author: Yusuke Suzuki <ysuz...@apple.com>
  Date:   2025-02-05 (Wed, 05 Feb 2025)

  Changed paths:
    M Source/JavaScriptCore/wasm/WasmCallingConvention.h
    M Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.h
    M Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmTypeDefinition.cpp
    M Source/JavaScriptCore/wasm/WasmTypeDefinition.h

  Log Message:
  -----------
  [JSC] Further optimize wasm init time
https://bugs.webkit.org/show_bug.cgi?id=287076
rdar://144217504

Reviewed by Keith Miller.

This patch further optimizes wasm init time.

1. addCall's signature is already expanded, so we do not need to do it
   again.
2. CallInformation should hold numberOfStackValues for wasm.
3. IPIntGenerator MetadataBuffer increase policy should be 2x.
4. We introduce CallCommonData bytecode cache.
5. Use shrink(0) instead of clear() for control flow stack in IPIntGenerator.
6. Do style fix.

                                  ToT                     Patched

    hashset-wasm-load      376.2614+-1.0030     ^    318.7618+-0.6149        ^ 
definitely 1.1804x faster

* Source/JavaScriptCore/wasm/WasmCallingConvention.h:
(JSC::Wasm::CallInformation::CallInformation):
(JSC::Wasm::WasmCallingConvention::callInformationFor const):
(JSC::Wasm::JSCallingConvention::callInformationFor const):
(JSC::Wasm::CCallingConventionArmThumb2::callInformationFor const):
* Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.h:
* Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp:
(JSC::Wasm::IPIntGenerator::cachedCallInformationFor):
(JSC::Wasm::IPIntGenerator::addCallCommonData):
(JSC::Wasm::IPIntGenerator::addTailCallCommonData):
(JSC::Wasm::IPIntGenerator::addCall):
(JSC::Wasm::IPIntGenerator::addCallIndirect):
(JSC::Wasm::IPIntGenerator::addCallRef):
* Source/JavaScriptCore/wasm/WasmTypeDefinition.cpp:
(JSC::Wasm::FunctionSignature::FunctionSignature):
(JSC::Wasm::StructType::StructType):
(JSC::Wasm::TypeDefinition::tryCreateFunctionSignature):
(JSC::Wasm::TypeDefinition::tryCreateStructType):
(JSC::Wasm::TypeDefinition::tryCreateArrayType):
(JSC::Wasm::TypeDefinition::tryCreateRecursionGroup):
(JSC::Wasm::TypeDefinition::tryCreateProjection):
(JSC::Wasm::TypeDefinition::tryCreateSubtype):
* Source/JavaScriptCore/wasm/WasmTypeDefinition.h:
(JSC::Wasm::ArrayType::ArrayType):
(JSC::Wasm::RecursionGroup::RecursionGroup):
(JSC::Wasm::Projection::Projection):
(JSC::Wasm::Subtype::Subtype):
(JSC::Wasm::TypeDefinition::TypeDefinition):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to