RFR: 8323582: C2 SuperWord AlignVector: misaligned vector memory access with unaligned native memory [v3]

Roland Westrelin roland at openjdk.org
Mon Feb 24 12:54:56 UTC 2025


On Thu, 20 Feb 2025 09:44:16 GMT, Roland Westrelin <roland at openjdk.org> wrote:

>>> Do you see any better way than having the 2x code size if we need both a slow and fast loop?
>> 
>> No but I was confused by your comment about 3x and 4x which is why I asked for clarification.
>> Compiled code size affects inlining decisions: if a callee has compiled code and it's larger than some threshold, then the callee is considered too expensive to inline. With your change, some method that was considered ok to inline could now be considered too big. I think that's what Vladimir is concerned by. I don't see what you can do about it, this said.
>
>> @rwestrel I think I had tried some verifications above, but I could not even get it to work in all cases in `SuperWord`.
>> 
>> In `VLoop::check_preconditions_helper`, I try to find either the predicate or the multiversioning if. But I cannot always find it, and I think that one reason was that the pre-loop can be lost. At least that is what I remember from 4+ weeks ago.
> 
> Do you understand when that happens? It doesn't feel right that the pre loop can be lost.

> @rwestrel Do you want me to find examples for the pre-loop disappearing? I suppose I can find some easily by adding an assert in SuperWord, where we bail out, as I showed above.

Yes, if not too much work.

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

PR Comment: https://git.openjdk.org/jdk/pull/22016#issuecomment-2678332801


More information about the hotspot-dev mailing list