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