RFR: 8323641: Test compiler/loopopts/superword/TestAlignVectorFuzzer.java timed out

Emanuel Peter epeter at openjdk.org
Fri Jan 12 16:20:28 UTC 2024


It seems that allowing `90%` of the timeout-time was cutting it too close. Some individual tests can take more time occasionally, one even took more than `80 sec` (very rare).

Why do these tests take so long?
- Sometimes compilation can take quite a bit of time. `-XX:LoopUnrollLimit=250` already increases the number of nodes allowed in a loop-body, and with unrolling this increases significantly. SuperWord then has to work through all these nodes, and has a lot of quadratic and higher complexity loops.
- The loop bodies are quite large (hand unrolled), and often lead to partial vectorization, with lots of scalar memory ops. This produces quite sub-optimal code, with a bit too many instructions in the loop body. Combined with lots of array copying, this probably takes quite a hit on caches.

I will investigate SuperWord compilation time in the future, and lower the runtime complexity if neccessary/possible, it is part of my autovectorization plans.

I now lowered the allowance down to `40%`, which is hopefully small enough to avoid timeout, while still allowing sufficient many run to get decent test coverage.

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

Commit messages:
 - reduce allowance even more, and fix typos
 - 8323641

Changes: https://git.openjdk.org/jdk/pull/17389/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17389&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8323641
  Stats: 7 lines in 1 file changed: 2 ins; 0 del; 5 mod
  Patch: https://git.openjdk.org/jdk/pull/17389.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17389/head:pull/17389

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


More information about the hotspot-compiler-dev mailing list