RFR: 8325541: C2 SuperWord: refactor filter / split [v5]

Emanuel Peter epeter at openjdk.org
Sat Feb 10 14:25:22 UTC 2024


> A few filter / split methods are currently bunched together. We should peal them apart so that moving / changing things becomes easier in the future.
> 
> 
> combine_packs -> refactored into:
>   combine_packs (now really only combines)
>   split_packs_for_max_vector_size
>   filter_packs_for_power_of_2_size
>   filter_packs_for_mutual_independence
> 
> filter_packs -> refactored into:
>   filter_packs_for_implemented
>   filter_packs_for_profitable
> 
> 
> Since we have so many "filter" passes, I created a dedicated `SuperWord::filter_packs` method, that takes a `FilterPredicate` lambda. This also allows me now to systematically debug dump any packs that are rejected .
> 
> I also took the liberty to enforce a new invariant between passes: there cannot be any `nullptr` in the packlist.
> Before the "filter" passes just set some packs to `nullptr`. I now shift all surviving packs down, and truncate the packlist.

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 six additional commits since the last revision:

 - Merge branch 'master' into JDK-8325541
 - refactored filter_packs_for_alignment using filter_packs
 - updates for Christian
 - small bugfix
 - small update
 - 8325541

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/17785/files
  - new: https://git.openjdk.org/jdk/pull/17785/files/9f75b452..49f7a8b0

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=17785&range=04
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=17785&range=03-04

  Stats: 6330 lines in 363 files changed: 4250 ins; 836 del; 1244 mod
  Patch: https://git.openjdk.org/jdk/pull/17785.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17785/head:pull/17785

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


More information about the hotspot-compiler-dev mailing list