RFR: 8331764: C2 SuperWord: refactor _align_to_ref/_mem_ref_for_main_loop_alignment
Vladimir Kozlov
kvn at openjdk.org
Tue May 7 18:02:55 UTC 2024
On Tue, 7 May 2024 09:26:11 GMT, Emanuel Peter <epeter at openjdk.org> wrote:
> This PR accomplishes these things:
> - Rename `_align_to_ref` -> `_mem_ref_for_main_loop_alignment`.
> - Move the `mem_ref` finding for alignment out of `SuperWord::find_adjacent_refs`. This is too early, and we don't even know if the relevant `mem_ref` is going to be vectorized. It makes more sense to pick a `mem_ref` directly in `SuperWord::adjust_pre_loop_limit_to_align_main_loop_vectors`, where we already know what packs are going to be vectorized.
> - For the alignment width (aw), we can use the `vector_width` of the pack to which the `mem_ref` belongs, rather than the potentially much larger `vector_width_in_bytes`. I track this with `_aw_for_main_loop_alignment` now.
>
> I need this for https://github.com/openjdk/jdk/pull/18822, and decided to split it out into an independent change.
src/hotspot/share/opto/superword.cpp line 3407:
> 3405: if (first == nullptr) { continue; }
> 3406:
> 3407: int vw = first->memory_size() * pack->size();
I assume `first` is verified already and `first->memory_size()` is reasonable (size of primitive type).
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19115#discussion_r1592872102
More information about the hotspot-compiler-dev
mailing list