RFR: 8283232: x86: Improve vector broadcast operations [v12]

Quan Anh Mai duke at openjdk.org
Fri Jul 29 14:00:29 UTC 2022


On Fri, 29 Jul 2022 08:17:23 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> There are other machine nodes which just accept constants as a mode, like vround* and vcompu* nodes which will now qualify for rematerlization leading to emitting high cost instructions.
>
> I think we should have a rough cost model here and not just basing it purely over connectivity of the node, or for the time being you can remove this change ?

A node being decided to prefer rematerialising to spilling has to satisfy that:

- The node is not explicitly said to be expensive, `divD` and `divF` fails at this stage.
- The node declaration only contains simple register rules (explicit or implicit DEF dst and USE src), `vround` fails this because it has temp register, `cmpF_imm` and `cmpD_imm` fail this because they kill flags.
- This method we are at agrees with the rematerialising.

I have looked at all instances where `constantaddress` is used and found no node where accidental rematerialisation is inefficient.

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

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


More information about the hotspot-compiler-dev mailing list