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

Emanuel Peter epeter at openjdk.org
Mon Jan 29 08:52:09 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 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 11 additional commits since the last revision:

 - Merge branch 'master' into JDK-8317572
 - adjust hpp guards for Christian
 - fix missing include
 - add PRODUCT and COMPILER2 ifdefs for Vladimir
 - fix a test
 - move code to StringUtils::CommaSeparatedStringIterator
 - more for Christian
 - Apply suggestions from code review
   
   Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>
 - a bit more
 - reordering some things
 - ... and 1 more: https://git.openjdk.org/jdk/compare/e6b2c16b...bf5e8263

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/17586/files
  - new: https://git.openjdk.org/jdk/pull/17586/files/28e0893f..bf5e8263

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

  Stats: 3114 lines in 181 files changed: 1899 ins; 758 del; 457 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