-
Bug
-
Resolution: Unresolved
-
P4
-
14, 17, 21, 23
Running attached Test2.java shows some inlining failures due to "unloaded signature classes" since JDK-8234049 in JDK 14 b28:
java -XX:CompileCommand=compileonly,"Test2::test" -XX:CompileCommand=quiet -Xbatch -XX:+PrintCompilation -XX:+PrintInlining Test2.java
1723 107 b 3 Test2::test (12 bytes)
@ 2 java.nio.ByteBuffer::allocate (20 bytes) failed to inline: callee uses too much stack
@ 8 java.nio.ByteBuffer::getShort (0 bytes) failed to inline: no static binding
1732 108 b 4 Test2::test (12 bytes)
1735 107 3 Test2::test (12 bytes) made not entrant
@ 2 java.nio.ByteBuffer::allocate (20 bytes) inline (hot)
@ 16 java.nio.HeapByteBuffer::<init> (21 bytes) failed to inline: unloaded signature classes
@ 8 java.nio.HeapByteBuffer::getShort (30 bytes) inline (hot)
@ 4 java.nio.Buffer::session (20 bytes) failed to inline: unloaded signature classes
@ 15 java.nio.Buffer::checkIndex (16 bytes) force inline by annotation
@ 12 jdk.internal.util.Preconditions::checkIndex (18 bytes) (intrinsic)
@ 19 java.nio.HeapByteBuffer::byteOffset (7 bytes) inline (hot)
! @ 26 jdk.internal.misc.ScopedMemoryAccess::getShortUnaligned (18 bytes) failed to inline: unloaded signature classes
Running with JDK 13 looks like this:
1561 88 b 3 Test2::test (12 bytes)
@ 2 java.nio.ByteBuffer::allocate (19 bytes) not compilable (disabled)
@ 8 java.nio.ByteBuffer::getShort (0 bytes) no static binding
1570 89 b 4 Test2::test (12 bytes)
1573 88 3 Test2::test (12 bytes) made not entrant
@ 2 java.nio.ByteBuffer::allocate (19 bytes) inline (hot)
@ 15 java.nio.HeapByteBuffer::<init> (20 bytes) inline (hot)
@ 9 java.nio.ByteBuffer::<init> (45 bytes) inline (hot)
@ 6 java.nio.Buffer::<init> (99 bytes) inline (hot)
@ 1 java.lang.Object::<init> (1 bytes) inline (hot)
@ 33 java.nio.ByteBuffer::limit (6 bytes) inline (hot)
@ 2 java.nio.ByteBuffer::limit (8 bytes) inline (hot)
@ 2 java.nio.Buffer::limit (74 bytes) inline (hot)
@ 39 java.nio.ByteBuffer::position (6 bytes) inline (hot)
@ 2 java.nio.ByteBuffer::position (8 bytes) inline (hot)
@ 2 java.nio.Buffer::position (55 bytes) inline (hot)
@ 15 java.nio.ByteOrder::nativeOrder (4 bytes) inline (hot)
@ 8 java.nio.HeapByteBuffer::getShort (26 bytes) inline (hot)
@ 11 java.nio.Buffer::checkIndex (24 bytes) inline (hot)
@ 15 java.nio.HeapByteBuffer::byteOffset (7 bytes) inline (hot)
@ 22 jdk.internal.misc.Unsafe::getShortUnaligned (12 bytes) inline (hot)
@ 5 jdk.internal.misc.Unsafe::getShortUnaligned (33 bytes) (intrinsic)
@ 8 jdk.internal.misc.Unsafe::convEndian (16 bytes) inline (hot)
@ 12 java.lang.Short::reverseBytes (14 bytes) (intrinsic)
I also attached a version of the test (Test3.java) that fails:
java Test3.java
52 1 n jdk.internal.vm.Continuation::enterSpecial (native) (static)
52 2 n jdk.internal.vm.Continuation::doYield (native) (static)
66 3 b Test3::test (12 bytes)
@ 2 java.nio.ByteBuffer::allocate (20 bytes) inline (hot)
@ 16 java.nio.HeapByteBuffer::<init> (21 bytes) failed to inline: unloaded signature classes
@ 8 java.nio.HeapByteBuffer::getShort (30 bytes) inline (hot)
@ 4 java.nio.Buffer::session (20 bytes) failed to inline: unloaded signature classes
@ 15 java.nio.Buffer::checkIndex (16 bytes) force inline by annotation
@ 12 jdk.internal.util.Preconditions::checkIndex (18 bytes) (intrinsic)
@ 19 java.nio.HeapByteBuffer::byteOffset (7 bytes) inline (hot)
! @ 26 jdk.internal.misc.ScopedMemoryAccess::getShortUnaligned (18 bytes) failed to inline: unloaded signature classes
Exception in thread "main" java.lang.RuntimeException: Test failed
at Test3.runInSeparateVM(Test3.java:36)
at Test3.main(Test3.java:52)
java -XX:CompileCommand=compileonly,"Test2::test" -XX:CompileCommand=quiet -Xbatch -XX:+PrintCompilation -XX:+PrintInlining Test2.java
1723 107 b 3 Test2::test (12 bytes)
@ 2 java.nio.ByteBuffer::allocate (20 bytes) failed to inline: callee uses too much stack
@ 8 java.nio.ByteBuffer::getShort (0 bytes) failed to inline: no static binding
1732 108 b 4 Test2::test (12 bytes)
1735 107 3 Test2::test (12 bytes) made not entrant
@ 2 java.nio.ByteBuffer::allocate (20 bytes) inline (hot)
@ 16 java.nio.HeapByteBuffer::<init> (21 bytes) failed to inline: unloaded signature classes
@ 8 java.nio.HeapByteBuffer::getShort (30 bytes) inline (hot)
@ 4 java.nio.Buffer::session (20 bytes) failed to inline: unloaded signature classes
@ 15 java.nio.Buffer::checkIndex (16 bytes) force inline by annotation
@ 12 jdk.internal.util.Preconditions::checkIndex (18 bytes) (intrinsic)
@ 19 java.nio.HeapByteBuffer::byteOffset (7 bytes) inline (hot)
! @ 26 jdk.internal.misc.ScopedMemoryAccess::getShortUnaligned (18 bytes) failed to inline: unloaded signature classes
Running with JDK 13 looks like this:
1561 88 b 3 Test2::test (12 bytes)
@ 2 java.nio.ByteBuffer::allocate (19 bytes) not compilable (disabled)
@ 8 java.nio.ByteBuffer::getShort (0 bytes) no static binding
1570 89 b 4 Test2::test (12 bytes)
1573 88 3 Test2::test (12 bytes) made not entrant
@ 2 java.nio.ByteBuffer::allocate (19 bytes) inline (hot)
@ 15 java.nio.HeapByteBuffer::<init> (20 bytes) inline (hot)
@ 9 java.nio.ByteBuffer::<init> (45 bytes) inline (hot)
@ 6 java.nio.Buffer::<init> (99 bytes) inline (hot)
@ 1 java.lang.Object::<init> (1 bytes) inline (hot)
@ 33 java.nio.ByteBuffer::limit (6 bytes) inline (hot)
@ 2 java.nio.ByteBuffer::limit (8 bytes) inline (hot)
@ 2 java.nio.Buffer::limit (74 bytes) inline (hot)
@ 39 java.nio.ByteBuffer::position (6 bytes) inline (hot)
@ 2 java.nio.ByteBuffer::position (8 bytes) inline (hot)
@ 2 java.nio.Buffer::position (55 bytes) inline (hot)
@ 15 java.nio.ByteOrder::nativeOrder (4 bytes) inline (hot)
@ 8 java.nio.HeapByteBuffer::getShort (26 bytes) inline (hot)
@ 11 java.nio.Buffer::checkIndex (24 bytes) inline (hot)
@ 15 java.nio.HeapByteBuffer::byteOffset (7 bytes) inline (hot)
@ 22 jdk.internal.misc.Unsafe::getShortUnaligned (12 bytes) inline (hot)
@ 5 jdk.internal.misc.Unsafe::getShortUnaligned (33 bytes) (intrinsic)
@ 8 jdk.internal.misc.Unsafe::convEndian (16 bytes) inline (hot)
@ 12 java.lang.Short::reverseBytes (14 bytes) (intrinsic)
I also attached a version of the test (Test3.java) that fails:
java Test3.java
52 1 n jdk.internal.vm.Continuation::enterSpecial (native) (static)
52 2 n jdk.internal.vm.Continuation::doYield (native) (static)
66 3 b Test3::test (12 bytes)
@ 2 java.nio.ByteBuffer::allocate (20 bytes) inline (hot)
@ 16 java.nio.HeapByteBuffer::<init> (21 bytes) failed to inline: unloaded signature classes
@ 8 java.nio.HeapByteBuffer::getShort (30 bytes) inline (hot)
@ 4 java.nio.Buffer::session (20 bytes) failed to inline: unloaded signature classes
@ 15 java.nio.Buffer::checkIndex (16 bytes) force inline by annotation
@ 12 jdk.internal.util.Preconditions::checkIndex (18 bytes) (intrinsic)
@ 19 java.nio.HeapByteBuffer::byteOffset (7 bytes) inline (hot)
! @ 26 jdk.internal.misc.ScopedMemoryAccess::getShortUnaligned (18 bytes) failed to inline: unloaded signature classes
Exception in thread "main" java.lang.RuntimeException: Test failed
at Test3.runInSeparateVM(Test3.java:36)
at Test3.main(Test3.java:52)
- relates to
-
JDK-8234049 Implementation of Memory Access API (Incubator)
- Resolved