RFR: 8298935: fix cyclic dependency bug in create_pack logic in SuperWord::find_adjacent_refs
Emanuel Peter
epeter at openjdk.org
Tue Feb 21 07:35:27 UTC 2023
On Mon, 13 Feb 2023 01:43:49 GMT, Fei Gao <fgao at openjdk.org> wrote:
>>> @fg1417 Do you have the possibility to test on arm32?
>>
>> Sure. I'll do the testing with a 32-bit docker container on a 64-bit host.
>
>> > @fg1417 Do you have the possibility to test on arm32?
>>
>> Sure. I'll do the testing with a 32-bit docker container on a 64-bit host.
>
> The testing for tier 1 - 3 and jcstress looks good. No new failures on arm32. Thanks.
Thanks @fg1417 for running my two `Test.java`. He got a crash from the `byte` case. And my patch seems to fix it.
Quoting him:
As mentioned in arm manual, E2.6.2 Unaligned data access, vldr doesn’t support unaligned data access. We use fldd(vldr, see K8.1.1 Pre-UAL instruction syntax for the A32 base instructions) for 8-byte vector load.
This is the crash he got:
...
After filter_packs
packset
Pack: 0
align: 0 809 StoreB === 820 823 810 812 [[ 807 808 ]] {230:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=720,643,230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 1 807 StoreB === 820 809 814 808 [[ 805 806 ]] {230:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=717,230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 2 805 StoreB === 820 807 813 806 [[ 802 803 ]] {230:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=643,230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 3 802 StoreB === 820 805 811 803 [[ 720 721 ]] {230:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 4 720 StoreB === 820 802 815 721 [[ 717 718 ]] {230:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=643,230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 5 717 StoreB === 820 720 804 718 [[ 643 644 ]] {230:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 6 643 StoreB === 820 717 722 644 [[ 463 230 211 ]] {230:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 7 230 StoreB === 820 643 719 211 [[ 823 459 238 ]] {230:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
Pack: 1
align: 0 812 LoadB === 470 823 813 [[ 809 ]] {211:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Type:byte !orig=721,644,211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 1 808 LoadB === 470 809 811 [[ 807 ]] {211:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Type:byte !orig=718,211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 2 806 LoadB === 470 807 815 [[ 805 ]] {211:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Type:byte !orig=644,211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 3 803 LoadB === 470 805 804 [[ 802 ]] {211:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Type:byte !orig=211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 4 721 LoadB === 470 802 722 [[ 720 ]] {211:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Type:byte !orig=644,211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 5 718 LoadB === 470 720 719 [[ 717 ]] {211:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Type:byte !orig=211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 6 644 LoadB === 470 717 645 [[ 643 ]] {211:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Type:byte !orig=211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
align: 7 211 LoadB === 470 643 207 [[ 230 ]] {211:0} @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10; Type:byte !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGBUS (0x7) at pc=0xf47cbb9c, pid=188025, tid=188026
#
# JRE version: OpenJDK Runtime Environment (21.0) (slowdebug build 21-internal-git-43c71ddf9)
# Java VM: OpenJDK Server VM (slowdebug 21-internal-git-43c71ddf9, mixed mode, sharing, g1 gc, linux-arm)
# Problematic frame:
# J 14 c2 java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Ljava/util/function/IntConsumer;)V java.base at 21-internal (65 bytes) @ 0xf47cbb9c [0xf47cb980+0x0000021c]
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/ent-user/ci-scripts/core.188025)
#
# An error report file with more information is saved as:
# /home/ent-user/ci-scripts/hs_err_pid188025.log
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
-------------
PR: https://git.openjdk.org/jdk/pull/12350
More information about the hotspot-compiler-dev
mailing list