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