RFR: 8298935: fix cyclic dependency bug in create_pack logic in SuperWord::find_adjacent_refs [v9]

Fei Gao fgao at openjdk.org
Wed Mar 1 02:29:06 UTC 2023


On Tue, 28 Feb 2023 15:27:07 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> @jatin-bhateja I now have a first version out of the `test/hotspot/jtreg/compiler/loopopts/superword/TestDependencyOffsets.java`. It seems to work for `sse4.1 ... avx512`. I'm now testing it for `asimd`.
>> And then I will proceed to add the features for `-XX:+AlignVector`, with the modulo check.
>
> Update: I cannot use `SuperWordMaxVectorSize`, because it is regulated down on x86 to be at most `MaxVectorSize`. But on `aarch64` the flag `SuperWordMaxVectorSize` does not seem to be adjusted. @fg1417 do you think this is correct / on purpose? Maybe this is just an unfortunate but harmless inconsistency. I guess in `SuperWord::max_vector_size` we first get the info from `Matcher::max_vector_size` (based on `MaxVectorSize`), and then upper bound that based on `SuperWordMaxVectorSize`.
> 
> TLDR: I am using `MaxVectorSize` instead of `SuperWordMaxVectorSize` now.

Hi @eme64, see https://github.com/openjdk/jdk/pull/8877. Before that, we use `MaxVectorSize` for all platforms.  `SuperWordMaxVectorSize` is only used to fix the performance issue on x86. The option is set as `64` by default, which is fine for current aarch64 hardware, but SVE architecture supports more than 512 bits. I believe `SuperWordMaxVectorSize` is just a temporary solution and we expect a more complete fix. Thanks.

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

PR: https://git.openjdk.org/jdk/pull/12350


More information about the hotspot-compiler-dev mailing list