RFR: 8351666: [PPC64] Make non-volatile VectorRegisters available for C2 register allocation [v4]

Richard Reingruber rrich at openjdk.org
Wed Apr 23 20:25:51 UTC 2025


On Wed, 23 Apr 2025 14:07:59 GMT, Richard Reingruber <rrich at openjdk.org> wrote:

> It might be that currently in master only VSR32, VSR36, VSR40, ... are actually used.

I've made an experiment asserting that the target register of a LoadVector is a multiple of 4:

https://github.com/reinrich/jdk/blob/a860064031213e3f334fba04b7314eb054d286a1/src/hotspot/cpu/ppc/ppc.ad#L5403

I've run

make test TEST="hotspot_vector_1 hotspot:tier1 jdk:tier1"

Without failure.

Similar assertion on top of this pr: https://github.com/reinrich/jdk/commit/39b8c1f3583cb34de87080351ef53beeb4e78a88

The assertion failed already during build (that's why I added `!UseNewCode`) and also running the tests.

So only every 4th vector register is actually used because the registers aren't declared as sequence of 4 VMRegs. Should be fixed also in older releases.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23987#discussion_r2056822229


More information about the hotspot-dev mailing list