RFR: 8345609: [C1] LIR Operations with one input should be implemented as LIR_Op1 [v2]
Martin Doerr
mdoerr at openjdk.org
Wed Dec 11 12:52:43 UTC 2024
On Thu, 5 Dec 2024 21:29:51 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:
>> Change `lir_sqrt`, `lir_abs`, `lir_neg`, `lir_f2hf`, `lir_hf2f` to use `LIR_Op1`. Extend `LIR_Op1` to support one temp register operand. Also see JBS issue.
>>
>> Remove `lir_tan` and `lir_log10` which are unused (dead and incomplete code). They should have been removed with or after https://github.com/openjdk/jdk/commit/ad79a5ae65d24861ead3ae96cf148c8bc0f02736 and the corresponding changes on other platforms.
>>
>> The removal of the unnecessary float constant loads improves performance:
>> make run-test TEST="micro:Fp16ConversionBenchmark" MICRO="VM_OPTIONS=-XX:TieredStopAtLevel=1"
>>
>> Power 10 without patch:
>>
>> Benchmark (size) Mode Cnt Score Error Units
>> Fp16ConversionBenchmark.floatToFloat16 2048 thrpt 15 247.064 ± 0.189 ops/ms
>>
>>
>> Power 10 with patch:
>>
>> Benchmark (size) Mode Cnt Score Error Units
>> Fp16ConversionBenchmark.floatToFloat16 2048 thrpt 15 308.372 ± 0.432 ops/ms
>>
>>
>> x64 machine without patch:
>>
>> Benchmark (size) Mode Cnt Score Error Units
>> Fp16ConversionBenchmark.floatToFloat16 2048 thrpt 15 384.565 ± 3.758 ops/ms
>>
>>
>> x64 machine with patch:
>>
>> Benchmark (size) Mode Cnt Score Error Units
>> Fp16ConversionBenchmark.floatToFloat16 2048 thrpt 15 406.121 ± 3.228 ops/ms
>>
>>
>> Testing: tier1-4 on x64 (Windows, linux, MacOS), aarch64 (linux, MacOS), ppc64 (linux, AIX)
>
> Martin Doerr has updated the pull request incrementally with one additional commit since the last revision:
>
> Update Copyright headers.
Thanks for the review!
-------------
PR Comment: https://git.openjdk.org/jdk/pull/22582#issuecomment-2535903697
More information about the hotspot-compiler-dev
mailing list