Integrated: 8342387: C2 SuperWord: refactor and improve compiler/loopopts/superword/TestDependencyOffsets.java

Emanuel Peter epeter at openjdk.org
Thu Oct 24 05:48:12 UTC 2024


On Wed, 16 Oct 2024 14:35:13 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

> I want to refactor `TestDependencyOffsets.java` using the `CompileFramework`.
> 
> Reasons:
> - I soon need to modify the IR rules in this test soon anyway (https://github.com/openjdk/jdk/pull/21521), and so a refactor might be good to do first.
> - The generator script used to be a `generator.py`, stored not on `git` but `JBS`. Not great. Now we have it in Java code, and maintenance is easier.
> - Since I first wrote that test, I have now introduced the `IRNode.VECTOR_SIZE`. This allows:
>   - Simplifying the logic for the IR rules (removed the `IRRange` and `IRBool`, and the `Platform`).
>   - Strengthening the rules.
> - I was able to add `random` offsets. This means we have better coverage, and do not rely on just hand-crafted values.
> 
> I extensively use `String.format` and `StringBuilder`... would be nicer to have string-templates but they don't exist yet.
> 
> Recommendation for review: the old file was huge. Finding the new code in the diff can be hard. I would start by only reading the new file.
> 
> Ah. And about runtime of the test. On my machine I get this (in ms):
> 
> Generate: 27
> Compile:  5845
> Run:      23435
> 
> Test generation is negligible. 6sec on compilation, 20+sec on execution. I think that is an ok balance, at least we can say that generation and compilation only take about 1/6 of total time - an acceptable overhead I would say.

This pull request has now been integrated.

Changeset: e96b4cf0
Author:    Emanuel Peter <epeter at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/e96b4cf0a81914c6a615bb4f62ea3f139a4737f3
Stats:     15659 lines in 1 file changed: 172 ins; 15167 del; 320 mod

8342387: C2 SuperWord: refactor and improve compiler/loopopts/superword/TestDependencyOffsets.java

Reviewed-by: thartmann, chagedorn

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

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


More information about the hotspot-compiler-dev mailing list