Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f66c3804ee6c2efbaf23130a1a282fa345f299cd
      
https://github.com/WebKit/WebKit/commit/f66c3804ee6c2efbaf23130a1a282fa345f299cd
  Author: Sergey Rubanov <[email protected]>
  Date:   2026-07-22 (Wed, 22 Jul 2026)

  Changed paths:
    A JSTests/wasm/stress/type-index-abstract-heap-types.js
    M Source/JavaScriptCore/b3/B3LowerMacros.cpp
    M Source/JavaScriptCore/b3/B3ReduceStrength.cpp
    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/WasmCallingConvention.h
    M Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmFormat.cpp
    M Source/JavaScriptCore/wasm/WasmFormat.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/WasmIPIntSlowPaths.cpp
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmOperations.cpp
    M Source/JavaScriptCore/wasm/WasmOperationsInlines.h
    M Source/JavaScriptCore/wasm/WasmParser.h
    M Source/JavaScriptCore/wasm/WasmSectionParser.cpp
    M Source/JavaScriptCore/wasm/WasmTable.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
    M Source/JavaScriptCore/wasm/WasmTypeSectionState.cpp
    M Source/JavaScriptCore/wasm/WasmTypeSectionState.h
    M Source/JavaScriptCore/wasm/debugger/WasmDebugServerUtilities.cpp
    M Source/JavaScriptCore/wasm/debugger/WasmQueryHandler.cpp
    M Source/JavaScriptCore/wasm/generateWasmOpsHeader.py
    M Source/JavaScriptCore/wasm/js/JSToWasm.cpp
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyArrayInlines.h
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyException.cpp
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyHelpers.h
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyStruct.cpp
    M Source/JavaScriptCore/wasm/js/WasmToJS.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyBuiltin.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyExceptionConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyGlobalConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp
    M Source/WTF/wtf/CompactPointerTuple.h

  Log Message:
  -----------
  [JSC][Wasm] Shrink Type to a pointer-sized payload on 64-bit
https://bugs.webkit.org/show_bug.cgi?id=247454

Reviewed by Yusuke Suzuki.

On ADDRESS64, store Wasm::Type in one pointer-sized word with
CompactPointerTuple (pointer half + TypeKind bits as the tag). Use the same
Type API on 32-bit where CompactPointerTuple is a real pointer+tag pair.
Bare kinds use a null pointer; concrete ref/ref_null store a TypeIndex;
abstract heap types store a small TypeIndexTag and rebuild the TypeIndex
in index().

EnumTaggingTraits remains for standalone abstract TypeIndex tags on
ADDRESS64. CompactPointerTuple constexpr paths assert a null pointer so
they cannot silently drop a non-null payload.

Access via kind() / index() / set(). Call sites that used .kind / .index
fields are updated to methods.

* Source/WTF/wtf/CompactPointerTuple.h:
* Source/JavaScriptCore/wasm/generateWasmOpsHeader.py:
* Source/JavaScriptCore/wasm/WasmFormat.h:
* Source/JavaScriptCore/wasm/WasmFormat.cpp:
* Source/JavaScriptCore/wasm/WasmTypeDefinition.h:
* Source/JavaScriptCore/wasm/WasmTypeDefinition.cpp:
* Source/JavaScriptCore/wasm/WasmTypeDefinitionInlines.h:
* Source/JavaScriptCore/wasm/WasmFunctionParser.h:
* Source/JavaScriptCore/wasm/WasmSectionParser.cpp:
* Source/JavaScriptCore/wasm/WasmParser.h:
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
* Source/JavaScriptCore/wasm/WasmBBQJIT.h:
* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:
* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
* Source/JavaScriptCore/wasm/WasmOperationsInlines.h:
* Source/JavaScriptCore/wasm/WasmCallingConvention.h:
* Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp:
* Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp:
* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:
* Source/JavaScriptCore/wasm/WasmGlobal.cpp:
* Source/JavaScriptCore/wasm/WasmGlobal.h:
* Source/JavaScriptCore/wasm/WasmTable.cpp:
* Source/JavaScriptCore/wasm/WasmTag.h:
* Source/JavaScriptCore/wasm/WasmTypeSectionState.cpp:
* Source/JavaScriptCore/wasm/WasmTypeSectionState.h:
* Source/JavaScriptCore/wasm/debugger/WasmDebugServerUtilities.cpp:
* Source/JavaScriptCore/wasm/debugger/WasmQueryHandler.cpp:
* Source/JavaScriptCore/wasm/js/JSToWasm.cpp:
* Source/JavaScriptCore/wasm/js/WasmToJS.cpp:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyArrayInlines.h:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyException.cpp:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyHelpers.h:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyStruct.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyBuiltin.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyExceptionConstructor.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyGlobalConstructor.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:
* Source/JavaScriptCore/b3/B3LowerMacros.cpp:
* Source/JavaScriptCore/b3/B3ReduceStrength.cpp:
* Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:
* Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
* JSTests/wasm/stress/type-index-abstract-heap-types.js: Added.

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



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

Reply via email to