Weird performance behavior involving VarHandles
Andrew Haley
aph-open at littlepinkcloud.com
Fri Apr 26 13:03:44 UTC 2024
--
Andrew Haley (he/him)
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
-------------- next part --------------
....[Hottest Region 1].............................................................................. ....[Hottest Region 1]..............................................................................
c2, level 4, org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::control_avgt_jmhStub, version 5, compile id 1291 c2, level 4, org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmhTest::gwt2_methodhandle_avgt_jmhStub, version 5, compile id 1271
; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::contro ;; B20: # out( B21 ) <- in( B19 ) Freq: 0.999985
0x0000fffeb0b528a4: nop 0x0000fffefcb54a14: add x0, x16, #0x94
0x0000fffeb0b528a8: nop 0x0000fffefcb54a18: mov x1, #0x23190000 ; {metadata('jdk/internal/foreign/NativeMemorySegmentImpl')}
0x0000fffeb0b528ac: nop ;*aload_1 {reexecute=0 rethrow=0 return_oop=0} 0x0000fffefcb54a1c: movk x1, #0x6428 ;*aload_1 {reexecute=0 rethrow=0 return_oop=0}
; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::contro ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmhTe
;; B16: # out( B44 B17 ) <- in( B15 B25 ) Loop( B16-B25 inner ) Freq: 133448 ;; B21: # out( B62 B22 ) <- in( B20 B35 ) Loop( B21-B35 inner ) Freq: 91236.1
↗ 0x0000fffeb0b528b0: ldr w12, [x15, #0xc] ↗ 0x0000fffefcb54a20: ldr w11, [x10, #0xc]
│ 0x0000fffeb0b528b4: lsl x10, x12, #3 ;*getfield segment {reexecute=0 rethrow=0 return_oop=0} │ 0x0000fffefcb54a24: lsl x17, x11, #3 ;*getfield segment {reexecute=0 rethrow=0 return_oop=0}
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 4 (line 92) │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 9 (line 106)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
11.47% │ 0x0000fffeb0b528b8: ldr w12, [x10, #8] ; implicit exception: dispatches to 0x0000fffeb0b52cdc 7.57% │ 0x0000fffefcb54a28: ldr w13, [x17, #8] ; implicit exception: dispatches to 0x0000fffefcb55058
│ ;; B17: # out( B43 B18 ) <- in( B16 ) Freq: 133448 │ ;; B22: # out( B61 B23 ) <- in( B21 ) Freq: 91236
│ 0x0000fffeb0b528bc: cmp w12, w17 │ 0x0000fffefcb54a2c: cmp w13, w1 ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
0.48% │ 0x0000fffeb0b528c0: b.ne #0xfffeb0b52ca8 │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ;; B18: # out( B30 B19 ) <- in( B17 ) Freq: 133448 │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ 0x0000fffeb0b528c4: mov x13, x10 ;*checkcast {reexecute=0 rethrow=0 return_oop=0} │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - jdk.internal.foreign.LayoutPath::checkAlign at 1 (line 290) │ 0x0000fffefcb54a30: b.ne #0xfffefcb55024
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971c8c00::invokeStatic at 15 │ ;; B23: # out( B41 B24 ) <- in( B22 ) Freq: 91236
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971cd800::invoke at 26 │ 0x0000fffefcb54a34: mov x13, x17 ;*checkcast {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971cf400::guardWithCatch at 42 │ ; - jdk.internal.foreign.LayoutPath::checkAlign at 1 (line 290)
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 18 │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231c8c00::invokeStatic at 15
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231cd800::invoke at 26
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231cf400::guardWithCatch at 42
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 18
│ 0x0000fffeb0b528c8: ldr w14, [x13, #0x18] ;*getfield scope {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::sessionImpl at 1 (line 430) │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 13 (line 106)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 24 (line 108) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971d1c00::invokeStatic at 14 │ 0x0000fffefcb54a38: ldr x11, [x13, #0x20] ;*getfield min {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 53 │ ; - jdk.internal.foreign.NativeMemorySegmentImpl::unsafeGetOffset at 1 (line 82)
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 1 (line 386)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 8 (line 381)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ; - jdk.internal.foreign.LayoutPath::checkAlign at 6 (line 290)
│ 0x0000fffeb0b528cc: ldr x12, [x13, #0x20] ;*getfield min {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231c8c00::invokeStatic at 15
│ ; - jdk.internal.foreign.NativeMemorySegmentImpl::unsafeGetOffset at 1 (line 82) │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231cd800::invoke at 26
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 1 (line 386) │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231cf400::guardWithCatch at 42
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 8 (line 381) │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 18
│ ; - jdk.internal.foreign.LayoutPath::checkAlign at 6 (line 290) │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971c8c00::invokeStatic at 15 │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 13 (line 106)
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971cd800::invoke at 26 │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971cf400::guardWithCatch at 42 │ 0x0000fffefcb54a3c: ldr w15, [x13, #0x18] ;*getfield scope {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 18 │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::sessionImpl at 1 (line 430)
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 24 (line 108)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ 0x0000fffeb0b528d0: lsl x16, x14, #3 ;*getfield scope {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::sessionImpl at 1 (line 430) │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 13 (line 106)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 24 (line 108) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971d1c00::invokeStatic at 14 │ 0x0000fffefcb54a40: and x18, x11, #3 ;*land {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 53 │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 14 (line 386)
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 8 (line 381)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ ; - jdk.internal.foreign.LayoutPath::checkAlign at 6 (line 290)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231c8c00::invokeStatic at 15
│ 0x0000fffeb0b528d4: and x14, x12, #3 ;*land {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231cd800::invoke at 26
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 14 (line 386) │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231cf400::guardWithCatch at 42
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 8 (line 381) │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 18
│ ; - jdk.internal.foreign.LayoutPath::checkAlign at 6 (line 290) │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971c8c00::invokeStatic at 15 │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 13 (line 106)
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971cd800::invoke at 26 │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971cf400::guardWithCatch at 42 7.39% │ 0x0000fffefcb54a44: ldr x14, [x13, #0x10] ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 18 │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont 0.59% │ 0x0000fffefcb54a48: lsl x15, x15, #3 ;*getfield scope {reexecute=0 rethrow=0 return_oop=0}
10.46% │ 0x0000fffeb0b528d8: ldr x0, [x13, #0x10] │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::sessionImpl at 1 (line 430)
│ 0x0000fffeb0b528dc: cbnz x14, #0xfffeb0b52a3c;*ifne {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 24 (line 108)
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 17 (line 386) │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 8 (line 381) │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ ; - jdk.internal.foreign.LayoutPath::checkAlign at 6 (line 290) │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971c8c00::invokeStatic at 15 │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 13 (line 106)
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971cd800::invoke at 26 │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971cf400::guardWithCatch at 42 │ 0x0000fffefcb54a4c: cbnz x18, #0xfffefcb54c1c;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 18 │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ;; B24: # out( B37 B25 ) <- in( B23 ) Freq: 91236
│ ;; B19: # out( B27 B20 ) <- in( B18 ) Freq: 133447 5.99% │ 0x0000fffefcb54a50: sub x14, x14, #3 ;*ladd {reexecute=0 rethrow=0 return_oop=0}
11.09% │ 0x0000fffeb0b528e0: sub x14, x0, #3 ;*ladd {reexecute=0 rethrow=0 return_oop=0} │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::checkBounds at 14 (line 404)
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::checkBounds at 14 (line 404) │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::checkAccess at 26 (line 364)
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::checkAccess at 26 (line 364) │ ; - java.lang.invoke.VarHandleSegmentAsInts::checkAddress at 15 (line 81)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::checkAddress at 15 (line 81) │ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 14 (line 107)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 14 (line 107) │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971d1c00::invokeStatic at 14 │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 53 │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 13 (line 106)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ 0x0000fffefcb54a54: tbnz x14, #0x3f, #0xfffefcb54b44
│ 0x0000fffeb0b528e4: tbnz x14, #0x3f, #0xfffeb0b5299c │ ;*invokestatic checkIndex {reexecute=0 rethrow=0 return_oop=0}
│ ;*invokestatic checkIndex {reexecute=0 rethrow=0 return_oop=0} │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::checkBounds at 16 (line 404)
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::checkBounds at 16 (line 404) │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::checkAccess at 26 (line 364)
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::checkAccess at 26 (line 364) │ ; - java.lang.invoke.VarHandleSegmentAsInts::checkAddress at 15 (line 81)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::checkAddress at 15 (line 81) │ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 14 (line 107)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 14 (line 107) │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971d1c00::invokeStatic at 14 │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 53 │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 13 (line 106)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ;; B25: # out( B38 B26 ) <- in( B24 ) Freq: 91235.9
│ ;; B20: # out( B28 B21 ) <- in( B19 ) Freq: 133447 8.83% │ 0x0000fffefcb54a58: cmp x14, #0
10.83% │ 0x0000fffeb0b528e8: cmp x14, #0 │ 0x0000fffefcb54a5c: b.ls #0xfffefcb54b78
│ 0x0000fffeb0b528ec: b.ls #0xfffeb0b529d0 │ ;; B26: # out( B63 B27 ) <- in( B25 ) Freq: 91235.8
│ ;; B21: # out( B45 B22 ) <- in( B20 ) Freq: 133447 6.48% │ 0x0000fffefcb54a60: ldr w18, [x15, #0x14] ; implicit exception: dispatches to 0x0000fffefcb5508c
9.86% │ 0x0000fffeb0b528f0: ldr w10, [x16, #0x14] ; implicit exception: dispatches to 0x0000fffeb0b52d10 │ ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
│ ;; B22: # out( B31 B23 ) <- in( B21 ) Freq: 133447 │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ 0x0000fffeb0b528f4: lsl x10, x10, #3 ;*getfield owner {reexecute=0 rethrow=0 return_oop=0} │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - jdk.internal.foreign.MemorySessionImpl::checkValidStateRaw at 1 (line 192) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnalignedInternal at 5 (line 1891) │ ;; B27: # out( B43 B28 ) <- in( B26 ) Freq: 91235.7
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnaligned at 6 (line 1881) │ 0x0000fffefcb54a64: lsl x14, x18, #3 ;*getfield owner {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 48 (line 108) │ ; - jdk.internal.foreign.MemorySessionImpl::checkValidStateRaw at 1 (line 192)
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971d1c00::invokeStatic at 14 │ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnalignedInternal at 5 (line 1891)
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 53 │ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnaligned at 6 (line 1881)
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 48 (line 108)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
0.30% │ 0x0000fffeb0b528f8: mov x0, x12 ;*invokevirtual getIntUnaligned {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - jdk.internal.misc.Unsafe::getIntUnaligned at 5 (line 3576) │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 13 (line 106)
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnalignedInternal at 15 (line 1893) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnaligned at 6 (line 1881) │ 0x0000fffefcb54a68: cbnz x14, #0xfffefcb54ca0;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 48 (line 108) │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971d1c00::invokeStatic at 14 │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 53 │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ;; B28: # out( B44 B29 ) <- in( B27 ) Freq: 91235.6
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) 7.62% │ 0x0000fffefcb54a6c: ldr w14, [x15, #0xc] ;*getfield state {reexecute=0 rethrow=0 return_oop=0}
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ; - jdk.internal.foreign.MemorySessionImpl::checkValidStateRaw at 22 (line 195)
│ 0x0000fffeb0b528fc: cbnz x10, #0xfffeb0b52a7c;*ifnull {reexecute=0 rethrow=0 return_oop=0} │ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnalignedInternal at 5 (line 1891)
│ ; - jdk.internal.foreign.MemorySessionImpl::checkValidStateRaw at 4 (line 192) │ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnaligned at 6 (line 1881)
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnalignedInternal at 5 (line 1891) │ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 48 (line 108)
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnaligned at 6 (line 1881) │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 48 (line 108) │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971d1c00::invokeStatic at 14 │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 53 │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 13 (line 106)
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ 0x0000fffefcb54a70: tbnz w14, #0x1f, #0xfffefcb54cd8
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
│ ;; B23: # out( B32 B24 ) <- in( B22 ) Freq: 133447 │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
10.48% │ 0x0000fffeb0b52900: ldr w10, [x16, #0xc] ;*getfield state {reexecute=0 rethrow=0 return_oop=0} │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - jdk.internal.foreign.MemorySessionImpl::checkValidStateRaw at 22 (line 195) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnalignedInternal at 5 (line 1891) │ ;; B29: # out( B42 B30 ) <- in( B28 ) Freq: 91235.6
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnaligned at 6 (line 1881) │ 0x0000fffefcb54a74: ldr w11, [x11] ;*invokevirtual getIntUnaligned {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 48 (line 108) │ ; - jdk.internal.misc.Unsafe::getIntUnaligned at 5 (line 3576)
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971d1c00::invokeStatic at 14 │ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnalignedInternal at 15 (line 1893)
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 53 │ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnaligned at 6 (line 1881)
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 48 (line 108)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ 0x0000fffeb0b52904: tbnz w10, #0x1f, #0xfffeb0b52ab4 │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ;*ifge {reexecute=0 rethrow=0 return_oop=0} │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 13 (line 106)
│ ; - jdk.internal.foreign.MemorySessionImpl::checkValidStateRaw at 25 (line 195) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnalignedInternal at 5 (line 1891) │ ;; membar_release
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnaligned at 6 (line 1881) │ 0x0000fffefcb54a78: dmb ish ;*synchronization entry
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 48 (line 108) │ ; - java.lang.invoke.VarHandle::getMethodHandle at -1 (line 2203)
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971d1c00::invokeStatic at 14 │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 59 (line 1001)
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 53 │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ 0x0000fffefcb54a7c: ldr w14, [x13, #0x18] ;*getfield scope {reexecute=0 rethrow=0 return_oop=0}
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::sessionImpl at 1 (line 430)
│ ;; B24: # out( B29 B25 ) <- in( B23 ) Freq: 133447 │ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 24 (line 108)
10.31% │ 0x0000fffeb0b52908: ldr w10, [x0] ;*invokevirtual getIntUnaligned {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - jdk.internal.misc.Unsafe::getIntUnaligned at 5 (line 3576) │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnalignedInternal at 15 (line 1893) │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnaligned at 6 (line 1881) │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 48 (line 108) │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000971d1c00::invokeStatic at 14 │ 0x0000fffefcb54a80: ldr x15, [x13, #0x20] ;*getfield min {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000971d3800::invoke at 53 │ ; - jdk.internal.foreign.NativeMemorySegmentImpl::unsafeGetOffset at 1 (line 82)
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002) │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 1 (line 386)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::control at 8 (line 92) │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 8 (line 381)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ; - jdk.internal.foreign.LayoutPath::checkAlign at 6 (line 290)
│ 0x0000fffeb0b5290c: cmp x14, #4 │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231c8c00::invokeStatic at 15
0.36% │ 0x0000fffeb0b52910: b.ls #0xfffeb0b52a04 │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231cd800::invoke at 26
│ ;; B25: # out( B16 B26 ) <- in( B24 ) Freq: 133447 │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231cf400::guardWithCatch at 42
│ 0x0000fffeb0b52914: ldarb w13, [x1] │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 18
│ 0x0000fffeb0b52918: ldr w12, [x0, #4] │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ 0x0000fffeb0b5291c: add w12, w12, w10 ;*getfield isDone {reexecute=0 rethrow=0 return_oop=0} │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::cont │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ;; membar_acquire (elided) │ 0x0000fffefcb54a84: lsl x2, x14, #3 ;*getfield scope {reexecute=0 rethrow=0 return_oop=0}
│ 0x0000fffeb0b52920: ldr x12, [x28, #0x498] │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::sessionImpl at 1 (line 430)
│ 0x0000fffeb0b52924: add x19, x19, #1 ; ImmutableOopMap {r11=Oop r15=Oop r18_tls=Oop c_rarg1=Derived_oop_r18_tls resp=Oop } │ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 24 (line 108)
│ ;*ifeq {reexecute=1 rethrow=0 return_oop=0} │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - (reexecute) org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_j │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ 0x0000fffeb0b52928: ldr wzr, [x12] ; {poll} │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
11.04% │ 0x0000fffeb0b5292c: ldrb w8, [x28, #0x4b0] │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
0.41% ╭│ 0x0000fffeb0b52930: cbz x8, #0xfffeb0b52948 │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
││ ;; 0xFFFEBF6BA090 │ 0x0000fffefcb54a88: and x14, x15, #3 ;*land {reexecute=0 rethrow=0 return_oop=0}
││ 0x0000fffeb0b52934: mov x8, #0xa090 ; {external_word} │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 14 (line 386)
││ 0x0000fffeb0b52938: movk x8, #0xbf6b, lsl #16 │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::isAlignedForElement at 8 (line 381)
││ 0x0000fffeb0b5293c: movk x8, #0xfffe, lsl #32 │ ; - jdk.internal.foreign.LayoutPath::checkAlign at 6 (line 290)
││ 0x0000fffeb0b52940: mov x0, x28 │ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231c8c00::invokeStatic at 15
││ 0x0000fffeb0b52944: blr x8 │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231cd800::invoke at 26
10.39% ↘╰ 0x0000fffeb0b52948: cbz w13, #0xfffeb0b528b0;*aload_1 {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231cf400::guardWithCatch at 42
; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_control_jmhTest::contro │ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 18
;; B26: # out( N1 ) <- in( B25 B14 ) Freq: 0.13522 │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
0x0000fffeb0b5294c: adr x9, #0xfffeb0b52964 │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
;; 0xFFFEBFC842A0 │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
0x0000fffeb0b52950: mov x8, #0x42a0 ; {runtime_call os::javaTimeNanos()} 6.51% │ 0x0000fffefcb54a8c: ldr x18, [x13, #0x10]
0x0000fffeb0b52954: movk x8, #0xbfc8, lsl #16 │ 0x0000fffefcb54a90: cbnz x14, #0xfffefcb54c5c;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
0x0000fffeb0b52958: movk x8, #0xfffe, lsl #32 │ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
0x0000fffeb0b5295c: stp xzr, x9, [sp, #-0x10]! │ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
0x0000fffeb0b52960: blr x8 │ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
0x0000fffeb0b52964: nop ; {other} │ ;; B30: # out( B39 B31 ) <- in( B29 ) Freq: 91235.6
.................................................................................................... 8.03% │ 0x0000fffefcb54a94: sub x14, x18, #3 ;*ladd {reexecute=0 rethrow=0 return_oop=0}
97.49% <total for region 1> │ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::checkBounds at 14 (line 404)
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::checkAccess at 26 (line 364)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::checkAddress at 15 (line 81)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 14 (line 107)
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ 0x0000fffefcb54a98: tbnz x14, #0x3f, #0xfffefcb54bac
│ ;*invokestatic checkIndex {reexecute=0 rethrow=0 return_oop=0}
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::checkBounds at 16 (line 404)
│ ; - jdk.internal.foreign.AbstractMemorySegmentImpl::checkAccess at 26 (line 364)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::checkAddress at 15 (line 81)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 14 (line 107)
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ;; B31: # out( B40 B32 ) <- in( B30 ) Freq: 91235.5
8.20% │ 0x0000fffefcb54a9c: cmp x14, #4
0.80% │ 0x0000fffefcb54aa0: b.ls #0xfffefcb54be4
│ ;; B32: # out( B64 B33 ) <- in( B31 ) Freq: 91235.4
6.32% │ 0x0000fffefcb54aa4: ldr w13, [x2, #0x14] ; implicit exception: dispatches to 0x0000fffefcb550bc
│ ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ;; B33: # out( B45 B34 ) <- in( B32 ) Freq: 91235.3
│ 0x0000fffefcb54aa8: lsl x13, x13, #3 ;*getfield owner {reexecute=0 rethrow=0 return_oop=0}
│ ; - jdk.internal.foreign.MemorySessionImpl::checkValidStateRaw at 1 (line 192)
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnalignedInternal at 5 (line 1891)
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnaligned at 6 (line 1881)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 48 (line 108)
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ 0x0000fffefcb54aac: cbnz x13, #0xfffefcb54d10;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ;; B34: # out( B46 B35 ) <- in( B33 ) Freq: 91235.2
8.19% │ 0x0000fffefcb54ab0: ldr w13, [x2, #0xc] ;*getfield state {reexecute=0 rethrow=0 return_oop=0}
│ ; - jdk.internal.foreign.MemorySessionImpl::checkValidStateRaw at 22 (line 195)
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnalignedInternal at 5 (line 1891)
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnaligned at 6 (line 1881)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 48 (line 108)
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ 0x0000fffefcb54ab4: tbnz w13, #0x1f, #0xfffefcb54d4c
│ ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ;; B35: # out( B21 B36 ) <- in( B34 ) Freq: 91235.2
│ 0x0000fffefcb54ab8: ldarb w17, [x0] ;*getfield isDone {reexecute=0 rethrow=0 return_oop=0}
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ 0x0000fffefcb54abc: mov x13, x15 ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ 0x0000fffefcb54ac0: ldr w13, [x13, #4] ;*invokevirtual getIntUnaligned {reexecute=0 rethrow=0 return_oop=0}
│ ; - jdk.internal.misc.Unsafe::getIntUnaligned at 5 (line 3576)
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnalignedInternal at 15 (line 1893)
│ ; - jdk.internal.misc.ScopedMemoryAccess::getIntUnaligned at 6 (line 1881)
│ ; - java.lang.invoke.VarHandleSegmentAsInts::get at 48 (line 108)
│ ; - java.lang.invoke.LambdaForm$DMH/0x00000000231d1c00::invokeStatic at 14
│ ; - java.lang.invoke.LambdaForm$MH/0x00000000231d3800::invoke at 53
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ 0x0000fffefcb54ac4: add w13, w13, w11 ;*getfield isDone {reexecute=0 rethrow=0 return_oop=0}
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ ;; membar_acquire (elided)
│ 0x0000fffefcb54ac8: ldr x11, [x28, #0x498] ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
│ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
│ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmh
│ 0x0000fffefcb54acc: add x19, x19, #1 ; ImmutableOopMap {r10=Oop r12=Oop r16=Oop c_rarg0=Derived_oop_r16 resp=Oop }
│ ;*ifeq {reexecute=1 rethrow=0 return_oop=0}
│ ; - (reexecute) org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_meth
│ 0x0000fffefcb54ad0: ldr wzr, [x11] ; {poll}
6.89% │ 0x0000fffefcb54ad4: ldrb w8, [x28, #0x4b0]
╭│ 0x0000fffefcb54ad8: cbz x8, #0xfffefcb54af0
││ ;; 0xFFFF0CABA090
││ 0x0000fffefcb54adc: mov x8, #0xa090 ; {external_word}
││ 0x0000fffefcb54ae0: movk x8, #0xcab, lsl #16
││ 0x0000fffefcb54ae4: movk x8, #0xffff, lsl #32
││ 0x0000fffefcb54ae8: mov x0, x28
││ 0x0000fffefcb54aec: blr x8 ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
││ ; - java.lang.invoke.VarHandleGuards::guard_LJ_I at 80 (line 1002)
││ ; - org.openjdk.bench.vm.lang.ReproducerBenchmarks::gwt2_methodhandle at 30 (line 107)
││ ; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_j
8.17% ↘╰ 0x0000fffefcb54af0: cbz w17, #0xfffefcb54a20;*aload_1 {reexecute=0 rethrow=0 return_oop=0}
; - org.openjdk.bench.vm.lang.jmh_generated.ReproducerBenchmarks_gwt2_methodhandle_jmhTe
;; B36: # out( N1 ) <- in( B35 B19 ) Freq: 0.0924477
0x0000fffefcb54af4: adr x9, #0xfffefcb54b0c
;; 0xFFFF0D0842A0
0x0000fffefcb54af8: mov x8, #0x42a0 ; {runtime_call os::javaTimeNanos()}
0x0000fffefcb54afc: movk x8, #0xd08, lsl #16
0x0000fffefcb54b00: movk x8, #0xffff, lsl #32
....................................................................................................
97.59% <total for region 1>
More information about the hotspot-compiler-dev
mailing list