RFR: 8283187: C2: loop candidate for superword not always unrolled fully if superword fails [v3]

Roland Westrelin roland at openjdk.java.net
Wed Mar 23 14:00:43 UTC 2022


> IdealLoopTree::policy_unroll_slp_analysis() restricts unrolling of
> loops that are found to be candidate for superword but if superword
> then fails, unrolling doesn't always resume. SuperWord::output() has
> logic for that in one of the failure paths but some other paths are
> not covered (for instance in the case of the test case). I propose
> that superword explictly returns whether it succeeded or not and that
> in case of failure, for a main loop, unrolling be attempted again.

Roland Westrelin 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 commit 'cac6704b8a1791c621918af316250e94047bff43' into JDK-8283187
 - Update test/hotspot/jtreg/compiler/c2/irTests/TestSuperwordFailsUnrolling.java
   
   Co-authored-by: Tobias Hartmann <tobias.hartmann at oracle.com>
 - review
 - Merge branch 'master' into JDK-8283187
 - whitespaces
 - fix & test

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/7822/files
  - new: https://git.openjdk.java.net/jdk/pull/7822/files/cac6704b..8ae4fa52

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=7822&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=7822&range=01-02

  Stats: 9493 lines in 1121 files changed: 5162 ins; 1775 del; 2556 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7822.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7822/head:pull/7822

PR: https://git.openjdk.java.net/jdk/pull/7822


More information about the hotspot-compiler-dev mailing list