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