[webkit-changes] [WebKit/WebKit] ec3927: [JSC] Optimize DFG ArithMul
Yusuke Suzuki
noreply at github.com
Mon Jun 12 18:46:41 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ec3927dec16c983d02600627fa81d51be322984b
https://github.com/WebKit/WebKit/commit/ec3927dec16c983d02600627fa81d51be322984b
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
M Source/JavaScriptCore/b3/B3LowerMacros.cpp
M Source/JavaScriptCore/b3/B3LowerToAir.cpp
M Source/JavaScriptCore/b3/air/AirOpcode.opcodes
M Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp
Log Message:
-----------
[JSC] Optimize DFG ArithMul
https://bugs.webkit.org/show_bug.cgi?id=257973
rdar://110657502
Reviewed by Justin Michaud.
This patch optimizes DFG ArithMul more.
1. ARM64 branchMul32 and branchMul64 were suboptimal. This patch rewrites the assembler generated code.
And we drop B3's ARM64 CheckMul macro-lowering since BranchMul32 generated code is now better.
2. Extend isNotNegZero not to cause negative zero check unnecessarily. Bit ops never generates -0 (If it is numbers,
then it is always non -0. If it is BigInt, anyway, it is not -0).
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::branchMul32):
(JSC::MacroAssemblerARM64::branchMul64):
* Source/JavaScriptCore/b3/B3LowerMacros.cpp:
* Source/JavaScriptCore/b3/B3LowerToAir.cpp:
* Source/JavaScriptCore/b3/air/AirOpcode.opcodes:
* Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp:
(JSC::DFG::BackwardsPropagationPhase::isNotNegZero):
Canonical link: https://commits.webkit.org/265097@main
More information about the webkit-changes
mailing list