RFR: 8308606: C2 SuperWord: remove alignment checks when not required [v2]
Emanuel Peter
epeter at openjdk.org
Thu Jun 8 08:56:20 UTC 2023
On Thu, 8 Jun 2023 04:43:38 GMT, Fei Gao <fgao at openjdk.org> wrote:
>> Emanuel Peter has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains ten additional commits since the last revision:
>>
>> - IR whitelist AlignVector, require it false in the newly added tests
>> - Merge branch 'master' into JDK-8308606
>> - Merge branch 'master' into JDK-8308606
>> - remove some outdated comments
>> - Benchmark VectorAlignment
>> - Merge branch 'master' into JDK-8308606
>> - remove dead code and add offset printing
>> - fix typo
>> - 8308606: C2 SuperWord: remove alignment checks where not required
>
> test/hotspot/jtreg/compiler/vectorization/runner/LoopArrayIndexComputeTest.java line 166:
>
>> 164: // No true dependency in read-forward case.
>> 165: @IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true"},
>> 166: counts = {IRNode.STORE_VECTOR, ">0"})
>
> You may need add `applyIf = {"AlignVector", "false"}` for these newly added IR check rules.
@fg1417 you are right!
I think we should also add `AlignVector` to the IR whitelist. It makes sense to add it with this change here, because only from now on can we actually have misaligned loads / stores on the same memory-slice! So we should also test things more thoroughly now.
I also see that in `test/hotspot/jtreg/compiler/vectorization/runner/` a lot of tests have `@requires vm.flagless`. That means we actually do not check any flag combinations with those tests. I think we should file an RFE to make them more general, and add the requirements to the IR rules.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14096#discussion_r1222667056
More information about the hotspot-compiler-dev
mailing list