[webkit-changes] [WebKit/WebKit] 34f0ba: Improve VectorShuffle on arm

Justin Michaud noreply at github.com
Wed Jan 25 14:51:15 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 34f0ba48fd68b5467f5b0d5c2f09a14f8d5834fa
      https://github.com/WebKit/WebKit/commit/34f0ba48fd68b5467f5b0d5c2f09a14f8d5834fa
  Author: Justin Michaud <justin at justinmichaud.com>
  Date:   2023-01-25 (Wed, 25 Jan 2023)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
    M Source/JavaScriptCore/b3/B3LowerMacros.cpp
    M Source/JavaScriptCore/b3/B3LowerToAir.cpp
    M Source/JavaScriptCore/b3/B3Opcode.cpp
    M Source/JavaScriptCore/b3/B3Opcode.h
    M Source/JavaScriptCore/b3/B3SIMDValue.h
    M Source/JavaScriptCore/b3/B3Validate.cpp
    M Source/JavaScriptCore/b3/B3Value.cpp
    M Source/JavaScriptCore/b3/B3Value.h
    M Source/JavaScriptCore/b3/B3ValueInlines.h
    M Source/JavaScriptCore/b3/air/AirLowerMacros.cpp
    M Source/JavaScriptCore/b3/air/AirOpcode.opcodes
    M Source/JavaScriptCore/wasm/WasmAirIRGenerator64.cpp
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp

  Log Message:
  -----------
  Improve VectorShuffle on arm
https://bugs.webkit.org/show_bug.cgi?id=251172
rdar://104661654

Reviewed by Yusuke Suzuki.

VectorShuffle is very hot in tfjs, so let's make it lower directly to
tbl like other engines do.

Also fix up some intel redundancy.

This is a 2x speedup on tfjs on arm.

* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::vectorSwizzle2):
(JSC::MacroAssemblerARM64::vectorShuffle): Deleted.
* Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h:
* Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::vectorShuffle): Deleted.
* Source/JavaScriptCore/b3/B3LowerMacros.cpp:
* Source/JavaScriptCore/b3/B3LowerToAir.cpp:
* Source/JavaScriptCore/b3/B3Opcode.cpp:
(WTF::printInternal):
* Source/JavaScriptCore/b3/B3Opcode.h:
* Source/JavaScriptCore/b3/B3SIMDValue.h:
* Source/JavaScriptCore/b3/B3Validate.cpp:
* Source/JavaScriptCore/b3/B3Value.cpp:
(JSC::B3::Value::effects const):
* Source/JavaScriptCore/b3/B3Value.h:
* Source/JavaScriptCore/b3/B3ValueInlines.h:
* Source/JavaScriptCore/b3/air/AirLowerMacros.cpp:
(JSC::B3::Air::lowerMacros):
* Source/JavaScriptCore/b3/air/AirOpcode.opcodes:
* Source/JavaScriptCore/wasm/WasmAirIRGenerator64.cpp:
(JSC::Wasm::AirIRGenerator64::fixupOutOfBoundsIndicesForSwizzle):
(JSC::Wasm::AirIRGenerator64::addSIMDV_VV):
(JSC::Wasm::AirIRGenerator64::addSIMDShuffle):
(JSC::Wasm::AirIRGenerator64::addSIMDSwizzleHelperX86): Deleted.
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::fixupOutOfBoundsIndicesForSwizzle):
(JSC::Wasm::B3IRGenerator::addSIMDV_VV):
(JSC::Wasm::B3IRGenerator::addSIMDShuffle):

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




More information about the webkit-changes mailing list