RFR: 8317572: C2 SuperWord: refactor/improve TraceSuperWord, replace VectorizeDebugOption with TraceAutoVectorization [v5]

Emanuel Peter epeter at openjdk.org
Fri Jan 26 16:19:56 UTC 2024


> Subtask of https://github.com/openjdk/jdk/pull/16620
> 
> I got approval to remove VectorizeDebugOption: [JDK-8320668](https://bugs.openjdk.org/browse/JDK-8320668)
> 
> I want a more general flag for AutoVectorization, that can trace different components of AutoVectorization.
> It should be a CompileCommand, so that it can select which methods it traces for.
> 
> TraceSuperWord should still look similar, and select a subset of the TraceAutoVectorization components (those for SuperWord), but still apply to all classes/methods.
> 
> With more refactoring later in [JDK-8315361](https://bugs.openjdk.org/browse/JDK-8315361), this flag should become more usable and interpretable. Especially, the idea is that different components of the `VLoop / VLoopAnalyzer` can have tracing enabled / disabled.
> 
> **How to use the flag:**
> Get "help", i.e. see all available tags:
> `./java -Xcomp -XX:CompileCommand=TraceAutoVectorization,*::*,help --version`
> 
> See "rejections" (i.e. failures where we don't vectorize) and successes (using TraceNewVectors):
> `./java -Xcomp -XX:CompileCommand=TraceAutoVectorization,*::*,SW_REJECTIONS -XX:+TraceNewVectors --version`
> The results are currently underwhealming. I will have to track many more failures, and I will do that with the bigger refactoring, when I move around the code and require error code returning everywhere, and then I can use that error code for printing.

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

  fix a test

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/17586/files
  - new: https://git.openjdk.org/jdk/pull/17586/files/fc59b6bb..c9ac4344

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

  Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/17586.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17586/head:pull/17586

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


More information about the hotspot-compiler-dev mailing list