RFR: 8325589: C2 SuperWord refactoring: create VLoopAnalyzer with Submodules [v5]

Emanuel Peter epeter at openjdk.org
Thu Feb 15 18:30:12 UTC 2024


> Subtask of https://github.com/openjdk/jdk/pull/16620
> 
> **Goals**:
> - **modularity**: SuperWord is a nasty large class, and it is difficult to know what impacts what.
> - **code reuse**: In the future, we may want to reuse some components of SuperWord in other Vectorizers. For example the post-loop-vectorizer ([JDK-8308994](https://bugs.openjdk.org/browse/JDK-8308994)).
> 
> Hence, I pull some parts out of SuperWord, and put them in a new class `VLoopAnalyzer`, with submodules:
> 
> VLoopAnalyzer
>   VLoopReductions
>   VLoopMemorySlices
>   VLoopBody
>   VLoopTypes
> 
> 
> **Future Work**
> In my draft for https://github.com/openjdk/jdk/pull/16620, I also created a submodule `VLoopDependenceGraph`.
> But that is also a lot of code change.
> I decided to do this in a separate RFE, to keep this patch here reasonably short.
> 
> I also left many functions in `superword.cpp`, even though their classes are in `vectorization.hpp`.
> I think it is easier to review them in their old palces, with minor changes, for now.
> In a future RFE, I can then cleanly copy them, without any changes to them.

Emanuel Peter has updated the pull request incrementally with one additional commit since the last revision:

  remove accessors, use fields instead

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/17800/files
  - new: https://git.openjdk.org/jdk/pull/17800/files/ba07a799..1d771fdd

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

  Stats: 124 lines in 4 files changed: 2 ins; 13 del; 109 mod
  Patch: https://git.openjdk.org/jdk/pull/17800.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17800/head:pull/17800

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


More information about the hotspot-compiler-dev mailing list