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

Christian Hagedorn chagedorn at openjdk.org
Mon Jan 29 09:34:32 UTC 2024


On Mon, 29 Jan 2024 08:52:09 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> 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/c98d57d5...bf5e8263

Marked as reviewed by chagedorn (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/17586#pullrequestreview-1848203310


More information about the hotspot-compiler-dev mailing list