RFR: 8310190: C2 SuperWord: AlignVector is broken, generates misaligned packs [v58]
Emanuel Peter
epeter at openjdk.org
Thu Jan 4 08:18:38 UTC 2024
On Wed, 3 Jan 2024 18:38:16 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
>> Emanuel Peter has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 124 commits:
>>
>> - Merge branch 'JDK-8311586' of https://github.com/eme64/jdk into JDK-8311586
>> - Apply suggestions from code review by Christian
>>
>> Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>
>> - fix copyright year 2024
>> - Merge branch 'master' into JDK-8311586
>> - more comments in SuperWord::adjust_pre_loop_limit_to_align_main_loop_vectors
>> - comments about modulo positive / negative values
>> - Apply suggestions from code review from Christian
>>
>> Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>
>> - more small fixes by Christian
>> - fix for yesterday's reviews by Christian
>> - improve case analysis empty / constrained / trivial
>> - ... and 114 more: https://git.openjdk.org/jdk/compare/06dd7353...d01a0cd9
>
> src/hotspot/share/opto/compile.cpp line 1059:
>
>> 1057:
>> 1058: if (AllowVectorizeOnDemand) {
>> 1059: if (has_method() && _directive->VectorizeOption) {
>
> This seems no related. Please explain it.
This is my justification in the PR description:
> Other Details
>
> I made VectorizeDebugOption a debug print only flag now. Before this fix, it also had the same effect as VectorizeOption (which ensures that only nodes from the same original pre-unrolling node are packed, preventing hand-unrolled code to be vectorized but enabling some edge cases to be vectorized that would not otherwise vectorize).
>
> I added is_trace_align_vector with bit 128, since 64 was recently used for is_trace_loop_reverse, removed with [JDK-8309204](https://bugs.openjdk.org/browse/JDK-8309204).
>
> I plan to refactor VectorizeDebugOption soon, as it now has a few subflags / bits that are not used. I may also refactor how TraceSuperWord works in general. Filed [JDK-8317572](https://bugs.openjdk.org/browse/JDK-8317572).
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14785#discussion_r1441455977
More information about the hotspot-compiler-dev
mailing list