RFR: 8302191: Performance degradation for float/double modulo on Linux [v2]

Jan Kratochvil duke at openjdk.org
Wed Mar 1 08:52:06 UTC 2023


On Mon, 27 Feb 2023 01:16:31 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains one additional commit since the last revision:
>> 
>>   8302191: Performance degradation for float/double modulo on Linux
>
> src/hotspot/cpu/x86/sharedRuntime_x86.cpp line 87:
> 
>> 85: #endif //COMPILER1
>> 86: 
>> 87: JRT_LEAF(jfloat, SharedRuntime::frem(jfloat  x, jfloat  y))
> 
> Nit: extra space before x and y.

I agree but FYI it was just copy-pasted from existing source:
> `-JRT_LEAF(jfloat, SharedRuntime::frem(jfloat  x, jfloat  y))`

> src/hotspot/share/runtime/sharedRuntime.cpp line 236:
> 
>> 234: const julong double_infinity  = CONST64(0x7FF0000000000000);
>> 235: 
>> 236: #ifndef X86
> 
> I wonder if the WIN64 workaround is actually needed/valid for non-X86 windows?

It is true the comment says:
> 64-bit Windows on amd64 returns the wrong values for infinity operands.
I have left the workaround really just for AMD64 Windows now. I am going to get it regression tested on aarch64 if that is enough.

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

PR: https://git.openjdk.org/jdk/pull/12508


More information about the hotspot-dev mailing list