Integrated: 8256220: C1: x86_32 fails with -XX:UseSSE=1 after JDK-8210764 due to mishandled lir_neg
Aleksey Shipilev
shade at openjdk.java.net
Fri Nov 13 07:43:00 UTC 2020
On Wed, 11 Nov 2020 19:32:44 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
> This failure manifests on many tests in `tier1`:
>
> $ CONF=linux-x86-server-fastdebug make images run-test TEST=tier1 TEST_VM_OPTS="-XX:UseSSE=1"
>
> # Internal Error (/home/shade/trunks/jdk/src/hotspot/cpu/x86/c1_LinearScan_x86.cpp:794), pid=1484789, tid=1484820
> # assert(false) failed: missed a fpu-operation
> #
> # JRE version: OpenJDK Runtime Environment (16.0) (fastdebug build 16-internal+0-adhoc.shade.jdk)
> # Java VM: OpenJDK Server VM (fastdebug 16-internal+0-adhoc.shade.jdk, mixed mode, tiered, g1 gc, linux-x86)
> # Problematic frame:
> # V [libjvm.so+0x6d6300] FpuStackAllocator::handle_op2(LIR_Op2*)+0xf0
>
> Amending that assert implies we miss "neg". I believe it was missed when [JDK-8210764](https://bugs.openjdk.java.net/browse/JDK-8210764) changed `lir_neg` from `LIR_Op1` to `LIR_Op2`. At first I just moved the block to appropriate switch that handles `op2`, but then I realized `lir_neg` code is basically the same as for `lir_abs` in the same switch.
>
> Testing:
> - [x] Linux x86_32 fastdebug tier1 with `-XX:UseSSE=0` (some leftover failures)
> - [x] Linux x86_32 fastdebug tier1 with `-XX:UseSSE=1` (some leftover failures)
This pull request has now been integrated.
Changeset: c3139abe
Author: Aleksey Shipilev <shade at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/c3139abe
Stats: 17 lines in 1 file changed: 1 ins; 15 del; 1 mod
8256220: C1: x86_32 fails with -XX:UseSSE=1 after JDK-8210764 due to mishandled lir_neg
Reviewed-by: chagedorn
-------------
PR: https://git.openjdk.java.net/jdk/pull/1173
More information about the hotspot-compiler-dev
mailing list