RFR: 8262950: Restructure compiler/intrinsics/TestRotate.java for easier compilation
Aleksey Shipilev
shade at openjdk.java.net
Thu Mar 4 07:43:47 UTC 2021
On Thu, 4 Mar 2021 03:38:32 GMT, Eric Liu <github.com+10482586+theRealELiu at openjdk.org> wrote:
>> It seems that after [JDK-8256438](https://bugs.openjdk.java.net/browse/JDK-8256438) this test is very slow. See [JDK-8262465 ](https://bugs.openjdk.java.net/browse/JDK-8262465) for more evidence of this.
>> I believe the underlying cause is that `main()` is way too busy with test cases, so this eventually happens:
>>
>> $ javac test/hotspot/jtreg/compiler/intrinsics/TestRotate.java
>> $ java -XX:-TieredCompilation -XX:CompileThreshold=1000 -Xbatch -XX:+PrintCompilation -cp test/hotspot/jtreg compiler.intrinsics.TestRotate
>> ...
>> 6112 112 % !b compiler.intrinsics.TestRotate::main @ 1494 (3008 bytes) COMPILE SKIPPED: out of nodes during split (retry at different tier)
>>
>> So, while the test is intended to test rotate intrinsics, I think it never gets there because compilation bails. And this also makes the test slow. This is tier1 test, and so its performance is somewhat important for developer experience.
>>
>> This improvement restructures the test to be easier to JIT compile. This drops the test run time from ~4 minutes to ~20 seconds on my desktop. Plus, additional diagnostic flag verifies that compiler does not bail anywhere.
>>
>> Attn @theRealELiu.
>>
>> Additional testing:
>> - [x] Linux x86_64 fastdebug, affected test
>> - [x] Linux x86_64 release, affected test
>> - [x] Linux aarch64 fastdebug, affected test
>
>> So, while the test is intended to test rotate intrinsics, I think it never gets there because compilation bails.
>
> Agree. The rotate was intended to be implemented by intrinsics but finally by those dedicated nodes instead[1][2].
>
> I was wondering if it's time to move this case out of 'intrinsics' package. Perhaps 'compiler.c2' is a more proper place .
>
> [1] http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-July/038963.html
> [2] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-July/039048.html
I think the test is fine at its current place, in case we ever consider C1 intrinsics. I am integrating this fix to make `tier1` sane again.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2811
More information about the hotspot-compiler-dev
mailing list