RFR: 8351666: [PPC64] Make non-volatile VectorRegisters available for C2 register allocation [v4]
Martin Doerr
mdoerr at openjdk.org
Wed Apr 23 20:50:00 UTC 2025
On Wed, 23 Apr 2025 20:23:14 GMT, Richard Reingruber <rrich at openjdk.org> wrote:
>> It might be that currently in master only VSR32, VSR36, VSR40, ... are actually used.
>
>> 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.
Interesting! Thanks for figuring that out!
It's already too late for JDK 24. And JDK 17 and 21 are rather stable releases. I guess this issue is not critical enough for backporting to 17. Maybe we can discuss fixing it in 21.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23987#discussion_r2056850439
More information about the hotspot-dev
mailing list