RFR: 8308606: C2 SuperWord: remove alignment checks when not required [v3]
Emanuel Peter
epeter at openjdk.org
Fri Jun 9 06:38:43 UTC 2023
On Fri, 9 Jun 2023 02:14:18 GMT, Pengfei Li <pli at openjdk.org> wrote:
>> Ok, there are some bugs around, I cannot yet directly add `AlignVector` to the IR framework whitelist. We can do it in a follow up RFE https://bugs.openjdk.org/browse/JDK-8309662
>
> Hi @eme64, I'd like to explain more about the `@requires vm.flagless`. Vladimir Kozlov had suggested removing those annotations. I didn't do that before because those annotations cannot be simply removed. All tests under `compiler/vectorization/runner/` are used for both correctness check and vectorizability (IR) check. For correctness check, each test method is invoked twice and the return results from the interpreter and C2 compiled code are compared. We use compiler control via WhiteBox API from the test runner to force these methods running in interpreter and C2 (see the logic in `VectorizationTestRunner.java`). The force compilation would fail if some extra vm option of compiler control (such as `-Xint`) is specified.
>
> A way of removing `@requires vm.flagless` I can think of may be skipping the correctness check in the vectorization test runner if the compiler control fails. I just filed [JDK-8309697](https://bugs.openjdk.org/browse/JDK-8309697) for this. Please let me know if you have any better ideas or suggestions.
@pfustc If I run it with `-Xint`, then it says "Test results: no tests selected". I think that is because of `@requires vm.compiler2.enabled`. But sure, there may be some other flags that mess with the compiler controls.
But I think it is important to remove the `@requires vm.flagless`, there are always bugs lurking around with more flag combinations. Plus, we don't have all the hardware that exists out there. That is why it is crucial that we can run with flags `AlignVector` (some ARM machines have it on true) or `UseKNLSetting` (intel), for example.
I'll temporarily add the `@requires vm.flagless` back in for `test/hotspot/jtreg/compiler/vectorization/runner/LoopArrayIndexComputeTest.java`.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14096#discussion_r1223902593
More information about the hotspot-compiler-dev
mailing list