Integrated: 8345609: [C1] LIR Operations with one input should be implemented as LIR_Op1
Martin Doerr
mdoerr at openjdk.org
Wed Dec 11 12:52:44 UTC 2024
On Thu, 5 Dec 2024 16:57:24 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)
This pull request has now been integrated.
Changeset: a21d21f4
Author: Martin Doerr <mdoerr at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/a21d21f4d7b74e21f68b6bf9c5dc9ba7d3f9963c
Stats: 158 lines in 10 files changed: 59 ins; 89 del; 10 mod
8345609: [C1] LIR Operations with one input should be implemented as LIR_Op1
Reviewed-by: rrich, goetz
-------------
PR: https://git.openjdk.org/jdk/pull/22582
More information about the hotspot-compiler-dev
mailing list