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

Reply via email to