RFR: 8323582: C2 SuperWord AlignVector: misaligned vector memory access with unaligned native memory
Vladimir Kozlov
kvn at openjdk.org
Tue Feb 18 19:26:19 UTC 2025
On Tue, 18 Feb 2025 18:45:34 GMT, Emanuel Peter <epeter at openjdk.org> wrote:
> > What probabilities for multi-version loops branches? Did non-vectorized version is move out of hot path in generated code?
>
> I'm not sure what you are asking. Are you asking what probability I'm setting for the multi-version branch?
>
> This is the loop selector, which later gets copied for each of the checks. `const LoopSelector loop_selector(lpt, opaque, PROB_FAIR, COUNT_UNKNOWN);`
>
> So 50%. But maybe you are suggesting it should really be biased towards the fast-path, right? What probability would you suggest? It should probably be fairly low, since there can be multiple checks added, and each one lowers the probability of arriving at the true-loop. So for scheduling, we should keep the probability high, so the true-loop is scheduled closer, right?
>
> Is that what you meant?
Yes. I want prioritize fast path assuming it is vectorized loop and that we get aligned data more frequently.
It is actually difficult to judge without statistic from real applications. It should be reversed if an application works mostly on unaligned data. Can we profile alignment in Interpreter (and C1)?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/22016#issuecomment-2666635167
More information about the hotspot-dev
mailing list