Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: de0f29b683564c7f6fc8bc1e92ae6c9af91f0e22
https://github.com/WebKit/WebKit/commit/de0f29b683564c7f6fc8bc1e92ae6c9af91f0e22
Author: Yusuke Suzuki <[email protected]>
Date: 2025-11-10 (Mon, 10 Nov 2025)
Changed paths:
M Source/JavaScriptCore/b3/B3ComputeDivisionMagic.h
M Source/JavaScriptCore/b3/B3ReduceStrength.cpp
M Source/JavaScriptCore/b3/testb3.h
M Source/JavaScriptCore/b3/testb3_1.cpp
M Source/JavaScriptCore/b3/testb3_2.cpp
M Source/JavaScriptCore/b3/testb3_3.cpp
Log Message:
-----------
[JSC] Implement B3 UDiv optimization
https://bugs.webkit.org/show_bug.cgi?id=302195
rdar://164301861
Reviewed by Dan Hecht.
This patch implements UDiv strength reduction similar to Div strength
reduction.
1. Magic computation needs unsigned version. Since we already have
LLVM's imported implementation for signed version, we import unsigned
version too.
2. Add strength reduction by using div magic constants in B3ReduceStrength.
Tests: Source/JavaScriptCore/b3/testb3_1.cpp
Source/JavaScriptCore/b3/testb3_2.cpp
Source/JavaScriptCore/b3/testb3_3.cpp
* Source/JavaScriptCore/b3/B3ComputeDivisionMagic.h:
(JSC::B3::computeSignedDivisionMagic):
(JSC::B3::computeUnsignedDivisionMagic):
(JSC::B3::computeDivisionMagic): Deleted.
* Source/JavaScriptCore/b3/B3ReduceStrength.cpp:
* Source/JavaScriptCore/b3/testb3.h:
* Source/JavaScriptCore/b3/testb3_1.cpp:
(testComputeDivisionMagic):
* Source/JavaScriptCore/b3/testb3_2.cpp:
(testUDivByConstantInt32):
(testUDivByConstantInt32PowerOf2):
(testUDivByConstantInt32NonPowerOf2):
(testUDivByConstantInt32EvenDivisors):
(testUDivByConstantInt32EdgeCases):
* Source/JavaScriptCore/b3/testb3_3.cpp:
(addArgTests):
Canonical link: https://commits.webkit.org/302814@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications