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