RFR: 8283232: x86: Improve vector broadcast operations [v12]
Jatin Bhateja
jbhateja at openjdk.org
Fri Jul 29 08:27:49 UTC 2022
On Fri, 29 Jul 2022 08:00:21 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> src/hotspot/share/opto/machnode.cpp line 478:
>>
>>> 476: // Stretching lots of inputs - don't do it.
>>> 477: // A MachContant has the last input being the constant base
>>> 478: if (req() > (is_MachConstant() ? 3U : 2U)) {
>>
>> Earlier some of the nodes like add/sub/mul/divF_imm which were carrying 3 inputs were not getting cloned, now with change we may see them getting rematerialized before uses which may increase code size but of course it will reduced interferences. With earlier cap of 2 only Replicates were passing this check.
>
> Saving a spill at the cost of re-materialization using a comparatively cheaper instruction like add/sub/mul looks better for divD may be costly.
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.
-------------
PR: https://git.openjdk.org/jdk/pull/7832
More information about the hotspot-compiler-dev
mailing list