RFR: 8345609: [C1] LIR Operations with one input should be implemented as LIR_Op1

Martin Doerr mdoerr at openjdk.org
Thu Dec 5 17:19:43 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 get implemented in a better way if needed in the future, but I guess they are not important to have in C1.

src/hotspot/share/c1/c1_LIR.cpp line 492:

> 490:       assert(op1->_info != nullptr, "");  do_info(op1->_info);
> 491:       if (op1->_opr->is_valid())       do_temp(op1->_opr); // safepoints on SPARC need temporary register
> 492:       assert(op1->_tmp->is_illegal(), "not used");

I think safepoints should ideally be implemented as LIR_Op0. SPARC support is removed. We could file a new RFE for that.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22582#discussion_r1871787519


More information about the hotspot-compiler-dev mailing list