RFR: 8325589: C2 SuperWord refactoring: create VLoopAnalyzer with Submodules

Emanuel Peter epeter at openjdk.org
Sat Feb 10 22:37:23 UTC 2024


Subtask of https://github.com/openjdk/jdk/pull/16620

SuperWord is a nasty large class, and it is difficult to know what impacts what.
Plus, in the future, we may want to reuse some components of SuperWord in other Vectorizers.
Hence, I pull some parts out of SuperWord, and put it in a new class `VLoopAnalyzer`.
This has 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.

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

Commit messages:
 - remove some comments
 - VLoopTypes
 - VLoopBody
 - VLoopMemorySlices
 - VLoopReductions
 - 8325589

Changes: https://git.openjdk.org/jdk/pull/17800/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17800&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8325589
  Stats: 818 lines in 7 files changed: 439 ins; 204 del; 175 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