RFR: 8282365: Optimize divideUnsigned and remainderUnsigned for constants [v30]

Quan Anh Mai qamai at openjdk.org
Sat Oct 21 15:25:53 UTC 2023


On Thu, 19 Oct 2023 00:58:35 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> @eme64 Thanks a lot for your diligent reviews and numerous suggestions. Don't worry I think it's on me taking a long time refining the patch.
>> @vnkozlov I have addressed your reviews. Thanks very much.
>
> @merykitty Can you show performance numbers with latest changes?

@vnkozlov Can you verify if the error has been resolved? I have added 2 cases when the dividends are provably bounded, and here is the result of the latest patch on my AMD Ryzen 7 7700.

                                                                                      Before              After
    Benchmark                                        (BUFFER_SIZE)  Mode  Cnt     Score     Error     Score    Error  Units   Change
    IntegerDivMod.testDivideConstant                          1024  avgt    5   102.296 ±   0.509    89.752 ±  0.934  ns/op  -12.26%
    IntegerDivMod.testDivideConstantBounded                   1024  avgt    5   119.249 ±   1.479    49.908 ±  0.363  ns/op  -58.15%
    IntegerDivMod.testDivideUnsignedConstant                  1024  avgt    5  1158.261 ±   3.751    92.269 ±  0.980  ns/op  -92.03%
    IntegerDivMod.testDivideUnsignedConstantBounded           1024  avgt    5  1160.531 ±   6.941    28.073 ±  0.144  ns/op  -97.58%
    IntegerDivMod.testRemainderUnsignedConstant               1024  avgt    5  1180.825 ±  35.549   127.642 ±  1.561  ns/op  -89.19%
    LongDivMod.testDivideConstantBounded                      1024  avgt    5   591.165 ±  22.569   104.507 ±  0.606  ns/op  -82.32%
    LongDivMod.testDivideUnsignedConstant                     1024  avgt    5  1768.345 ±  15.068   532.097 ±  9.144  ns/op  -69.91%
    LongDivMod.testDivideUnsignedConstantBounded              1024  avgt    5  1354.547 ±  11.357    83.710 ±  0.780  ns/op  -93.82%
    LongDivMod.testRemainderUnsignedConstant                  1024  avgt    5  1742.673 ±  29.557   736.080 ± 22.306  ns/op  -57.76%

-------------

PR Comment: https://git.openjdk.org/jdk/pull/9947#issuecomment-1773829405


More information about the hotspot-compiler-dev mailing list