Skip to content

Instantly share code, notes, and snippets.

@carl-mastrangelo
Last active May 26, 2019 22:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save carl-mastrangelo/5fe2f1f744c05ca20242cad9b5f7fb26 to your computer and use it in GitHub Desktop.
Save carl-mastrangelo/5fe2f1f744c05ca20242cad9b5f7fb26 to your computer and use it in GitHub Desktop.
C2 vs Graal

C2:

# JMH version: 1.21
# VM version: JDK 11.0.2, Java HotSpot(TM) 64-Bit Server VM, 11.0.2+9-LTS
# VM invoker: /home/carl/bin/jdk-11.0.2/bin/java
# VM options: -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+LogCompilation -XX:LogFile=/tmp/blah.txt -XX:+PrintAssembly -XX:+PrintInterpreter -XX:+PrintNMethods -XX:+PrintNativeNMethods -XX:+PrintSignatureHandlers -XX:+PrintAdapterHandlers -XX:+PrintStubCode -XX:+PrintCompilation -XX:+PrintInlining -XX:+TraceClassLoading -XX:PrintAssemblyOptions=syntax -XX:PrintAssemblyOptions=intel
# Warmup: 10 iterations, 1 s each
# Measurement: 5 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: io.perfmark.java9.VarHandleMarkHolderBenchmark.link

# Run progress: 25.00% complete, ETA 00:02:45
# Fork: 1 of 1
# Preparing profilers: LinuxPerfAsmProfiler 
# Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console

# Warmup Iteration   1: 5.791 ns/op
# Warmup Iteration   2: 5.639 ns/ops]
# Warmup Iteration   3: 5.239 ns/ops]
# Warmup Iteration   4: 4.792 ns/ops]
# Warmup Iteration   5: 4.306 ns/ops]
# Warmup Iteration   6: 4.331 ns/ops]
# Warmup Iteration   7: 4.765 ns/ops]
# Warmup Iteration   8: 4.078 ns/ops]
# Warmup Iteration   9: 4.037 ns/op0s]
# Warmup Iteration  10: 3.962 ns/op1s]
Iteration   1: 3.968 ns/opING [1m 12s]
Iteration   2: 3.955 ns/opING [1m 13s]
Iteration   3: 3.956 ns/opING [1m 14s]
Iteration   4: 3.952 ns/opING [1m 15s]
Iteration   5: 3.931 ns/opING [1m 16s]

> Task :perfmark-java9:jmh
# Processing profiler results: LinuxPerfAsmProfiler 


Result "io.perfmark.java9.VarHandleMarkHolderBenchmark.link":
  3.952 ±(99.9%) 0.051 ns/op [Average]
  (min, avg, max) = (3.931, 3.952, 3.968), stdev = 0.013
  CI (99.9%): [3.901, 4.004] (assumes normal distribution)

Secondary result "io.perfmark.java9.VarHandleMarkHolderBenchmark.link:·asm":
PrintAssembly processed: 135441 total address lines.
Perf output processed (skipped 12.103 seconds):
 Column 1: cycles (5101 events)

Hottest code regions (>10.00% "cycles" events):

....[Hottest Region 1]..............................................................................
c2, level 4, io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub, version 537 (226 bytes) 

              0x00007fc1980f0f59: vzeroupper 
              0x00007fc1980f0f5c: movabs r10,0x7fc1acd01600
              0x00007fc1980f0f66: call   r10
              0x00007fc1980f0f69: mov    r11,rbp
              0x00007fc1980f0f6c: mov    r8,QWORD PTR [rsp+0x50]  ;*invokevirtual putObjectOpaque {reexecute=0 rethrow=0 return_oop=0}
                                                            ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@47 (line 459)
                                                            ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
                                                            ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
                                                            ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
                                                            ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.29%  ↗↗↗  0x00007fc1980f0f71: mov    r9d,DWORD PTR [r12+rbx*8+0x34]
         │││                                                ;*getfield genOps {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@50 (line 134)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  3.16%  │││  0x00007fc1980f0f76: mov    r10d,DWORD PTR [r12+r9*8+0xc]
         │││                                                ;*arraylength {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@14 (line 601)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@60 (line 134)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
         │││                                                ; implicit exception: dispatches to 0x00007fc1980f140e
  4.49%  │││  0x00007fc1980f0f7b: cmp    r13d,r10d
         │││  0x00007fc1980f0f7e: jae    0x00007fc1980f1176  ;*invokevirtual putLongOpaque {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@34 (line 601)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@60 (line 134)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.06%  │││  0x00007fc1980f0f84: add    r14,0x1            ;*ladd {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@21 (line 191)
  0.22%  │││  0x00007fc1980f0f88: mov    rcx,QWORD PTR [rsp+0x10]
  2.59%  │││  0x00007fc1980f0f8d: add    rcx,0x1
  4.43%  │││  0x00007fc1980f0f91: lea    r10,[r12+r9*8]
  0.08%  │││  0x00007fc1980f0f95: mov    QWORD PTR [r10+r13*8+0x10],0x8
  0.39%  │││  0x00007fc1980f0f9e: mov    QWORD PTR [r12+rbx*8+0x18],rcx
         │││                                                ;*invokevirtual storeFence {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - jdk.internal.misc.Unsafe::storeStoreFence@1 (line 3330)
         │││                                                ; - java.lang.invoke.VarHandle::storeStoreFence@3 (line 2083)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@74 (line 136)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  2.90%  │││  0x00007fc1980f0fa3: movzx  r9d,BYTE PTR [r8+0x94]  ;*invokevirtual putObjectOpaque {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@47 (line 459)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  4.37%  │││  0x00007fc1980f0fab: mov    r10,QWORD PTR [r15+0x108]
         │││                                                ; ImmutableOopMap{r11=Oop r8=Oop [88]=Oop }
         │││                                                ;*ifeq {reexecute=1 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@28 (line 192)
  0.16%  │││  0x00007fc1980f0fb2: test   DWORD PTR [r10],eax  ;   {poll}
  0.51%  │││  0x00007fc1980f0fb5: test   r9d,r9d
         │││  0x00007fc1980f0fb8: jne    0x00007fc1980f11c0  ;*aload_1 {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@31 (line 193)
  2.45%  │││  0x00007fc1980f0fbe: mov    ebx,DWORD PTR [r11+0x10]  ;*getfield markHolder {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@1 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  4.35%  │││  0x00007fc1980f0fc2: mov    r9d,DWORD PTR [r11+0xc]  ;*getfield MARKER {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@9 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.18%  │││  0x00007fc1980f0fc6: mov    DWORD PTR [rsp+0x28],r9d
  0.22%  │││  0x00007fc1980f0fcb: mov    r9d,DWORD PTR [r12+rbx*8+0x28]
         │││                                                ;*getfield tagIds {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@23 (line 132)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
         │││                                                ; implicit exception: dispatches to 0x00007fc1980f13d8
  2.98%  │││  0x00007fc1980f0fd0: mov    r10d,DWORD PTR [r12+r9*8+0xc]
         │││                                                ;*arraylength {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@14 (line 601)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@29 (line 132)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
         │││                                                ; implicit exception: dispatches to 0x00007fc1980f13ee
  5.29%  │││  0x00007fc1980f0fd5: mov    rcx,QWORD PTR [r12+rbx*8+0x18]
         │││                                                ;*invokevirtual getLong {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleLongs$FieldInstanceReadOnly::get@18 (line 60)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_L_J@32 (line 165)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@4 (line 130)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.12%  │││  0x00007fc1980f0fda: mov    QWORD PTR [rsp+0x10],rcx
  0.35%  │││  0x00007fc1980f0fdf: and    rcx,QWORD PTR [r12+rbx*8+0x10]
  2.72%  │││  0x00007fc1980f0fe4: mov    r13d,ecx           ;*l2i {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@16 (line 131)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  4.90%  │││  0x00007fc1980f0fe7: cmp    r13d,r10d
  0.02%  │││  0x00007fc1980f0fea: jae    0x00007fc1980f10ee  ;*invokevirtual putLongOpaque {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@34 (line 601)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@29 (line 132)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.04%  │││  0x00007fc1980f0ff0: lea    r10,[r12+r9*8]     ;*invokestatic checkIndex {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@18 (line 602)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@29 (line 132)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.35%  │││  0x00007fc1980f0ff4: mov    QWORD PTR [r10+r13*8+0x10],0x270f
         │││                                                ;*invokevirtual putLongOpaque {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@34 (line 601)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@29 (line 132)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  8.25%  │││  0x00007fc1980f0ffd: mov    ecx,DWORD PTR [r12+rbx*8+0x20]
         │││                                                ;*getfield taskNameOrMarkers {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@36 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  3.65%  │││  0x00007fc1980f1002: mov    r9d,DWORD PTR [r12+rcx*8+0xc]
         │││                                                ;*arraylength {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@21 (line 459)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
         │││                                                ; implicit exception: dispatches to 0x00007fc1980f13fe
  0.33%  │││  0x00007fc1980f1007: cmp    r13d,r9d
  0.02%  │││  0x00007fc1980f100a: jae    0x00007fc1980f1132
  0.39%  │││  0x00007fc1980f1010: mov    r10d,DWORD PTR [r12+rcx*8+0x8]
         │││                                                ;*invokevirtual getClass {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::runtimeTypeCheck@5 (line 404)
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@44 (line 461)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  3.65%  │││  0x00007fc1980f1015: movsxd r9,r13d
  3.20%  │││  0x00007fc1980f1018: shl    r9,0x2             ;*lshl {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@33 (line 460)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.04%  │││  0x00007fc1980f101c: cmp    r10d,0x13e88       ;   {metadata('java/lang/Object'[])}
         │││  0x00007fc1980f1023: jne    0x00007fc1980f11f8  ;*invokevirtual putObjectOpaque {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@47 (line 459)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.25%  │││  0x00007fc1980f1029: lea    r10,[r12+rcx*8]    ;*if_acmpne {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::runtimeTypeCheck@8 (line 404)
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@44 (line 461)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  3.53%  │││  0x00007fc1980f102d: lea    rbp,[r10+r9*1+0x10]
  3.67%  │││  0x00007fc1980f1032: cmp    BYTE PTR [r15+0x30],0x0
  0.12%  │││  0x00007fc1980f1037: jne    0x00007fc1980f10b7
  0.25%  │││  0x00007fc1980f1039: mov    r9d,DWORD PTR [rsp+0x28]
  3.98%  │││  0x00007fc1980f103e: mov    DWORD PTR [rbp+0x0],r9d
  7.41%  │││  0x00007fc1980f1042: mov    r10,r9
  0.12%  │││  0x00007fc1980f1045: shl    r10,0x3
  0.14%  │││  0x00007fc1980f1049: mov    rcx,rbp
  2.72%  │││  0x00007fc1980f104c: xor    r10,rcx
  4.57%  │││  0x00007fc1980f104f: shr    r10,0x15
  0.04%  │││  0x00007fc1980f1053: test   r10,r10
         ╰││  0x00007fc1980f1056: je     0x00007fc1980f0f71
          ││  0x00007fc1980f105c: test   r9d,r9d
          ╰│  0x00007fc1980f105f: je     0x00007fc1980f0f71
           │  0x00007fc1980f1065: shr    rcx,0x9
           │  0x00007fc1980f1069: movabs rdi,0x7fc18a5fd000
           │  0x00007fc1980f1073: add    rdi,rcx
           │  0x00007fc1980f1076: cmp    BYTE PTR [rdi],0x20
           ╰  0x00007fc1980f1079: je     0x00007fc1980f0f71
              0x00007fc1980f107f: mov    r10,QWORD PTR [r15+0x80]
              0x00007fc1980f1086: mov    r9,QWORD PTR [r15+0x70]
....................................................................................................
 93.94%  <total for region 1>

....[Hottest Regions]...............................................................................
 93.94%         c2, level 4  io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub, version 537 (226 bytes) 
  3.29%   [kernel.kallsyms]  native_write_msr (5 bytes) 
  0.20%   [kernel.kallsyms]  __intel_pmu_enable_all.constprop.25 (0 bytes) 
  0.20%   [kernel.kallsyms]  __perf_event_task_sched_in (17 bytes) 
  0.18%   [kernel.kallsyms]  __perf_event_task_sched_in (62 bytes) 
  0.12%   [kernel.kallsyms]  rcu_all_qs (0 bytes) 
  0.10%           libjvm.so  ElfSymbolTable::lookup (54 bytes) 
  0.06%   [kernel.kallsyms]  __entry_trampoline_start (0 bytes) 
  0.06%   [kernel.kallsyms]  finish_task_switch (30 bytes) 
  0.06%   [kernel.kallsyms]  syscall_return_via_sysret (0 bytes) 
  0.04%   [kernel.kallsyms]  __entry_trampoline_start (0 bytes) 
  0.04%   [kernel.kallsyms]  do_syscall_64 (0 bytes) 
  0.04%   [kernel.kallsyms]  copyin (2 bytes) 
  0.04%   [kernel.kallsyms]  copy_user_enhanced_fast_string (11 bytes) 
  0.04%     crc32c-intel.ko  crc32c_pcl_intel_update (2 bytes) 
  0.04%           libjvm.so  Monitor::lock_without_safepoint_check (7 bytes) 
  0.04%           libjvm.so  xmlStream::write_text (0 bytes) 
  0.04%        libc-2.28.so  _IO_default_xsputn (12 bytes) 
  0.02%   [kernel.kallsyms]  __entry_trampoline_start (0 bytes) 
  0.02%   [kernel.kallsyms]  __entry_trampoline_start (0 bytes) 
  1.41%  <...other 72 warm regions...>
....................................................................................................
 99.96%  <totals>

....[Hottest Methods (after inlining)]..............................................................
 93.94%         c2, level 4  io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub, version 537 
  3.29%   [kernel.kallsyms]  native_write_msr 
  0.37%   [kernel.kallsyms]  __perf_event_task_sched_in 
  0.20%   [kernel.kallsyms]  __intel_pmu_enable_all.constprop.25 
  0.14%   [kernel.kallsyms]  __entry_trampoline_start 
  0.12%   [kernel.kallsyms]  rcu_all_qs 
  0.10%           libjvm.so  ElfSymbolTable::lookup 
  0.08%   [kernel.kallsyms]  syscall_return_via_sysret 
  0.08%   [kernel.kallsyms]  finish_task_switch 
  0.06%        libc-2.28.so  _IO_default_xsputn 
  0.06%           libjvm.so  xmlStream::write_text 
  0.04%           libjvm.so  jio_print 
  0.04%   [kernel.kallsyms]  do_syscall_64 
  0.04%   [kernel.kallsyms]  copy_user_enhanced_fast_string 
  0.04%   [kernel.kallsyms]  vfs_write 
  0.04%     crc32c-intel.ko  crc32c_pcl_intel_update 
  0.04%           libjvm.so  Monitor::lock_without_safepoint_check 
  0.04%   [kernel.kallsyms]  copyin 
  0.04%   [kernel.kallsyms]  pipe_write 
  0.04%             ext4.ko  ext4_inode_csum.isra.62 
  1.18%  <...other 60 warm methods...>
....................................................................................................
 99.96%  <totals>

....[Distribution by Source]........................................................................
 93.94%         c2, level 4
  4.90%   [kernel.kallsyms]
  0.69%           libjvm.so
  0.18%        libc-2.28.so
  0.06%             ext4.ko
  0.06%         interpreter
  0.04%      hsdis-amd64.so
  0.04%  libpthread-2.28.so
  0.04%     crc32c-intel.ko
  0.02%         c1, level 3
....................................................................................................
 99.96%  <totals>

Graal:

# JMH version: 1.21
# VM version: JDK 11.0.2, Java HotSpot(TM) 64-Bit Server VM, 11.0.2+9-LTS
# VM invoker: /home/carl/bin/jdk-11.0.2/bin/java
# VM options: -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Dgraal.PrintCompilation=true -XX:+UseJVMCICompiler -XX:+LogCompilation -XX:LogFile=/tmp/blah.txt -XX:+PrintAssembly -XX:+PrintInterpreter -XX:+PrintNMethods -XX:+PrintNativeNMethods -XX:+PrintSignatureHandlers -XX:+PrintAdapterHandlers -XX:+PrintStubCode -XX:+PrintCompilation -XX:+PrintInlining -XX:+TraceClassLoading -XX:PrintAssemblyOptions=syntax -XX:PrintAssemblyOptions=intel
# Warmup: 10 iterations, 1 s each
# Measurement: 5 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: io.perfmark.java9.VarHandleMarkHolderBenchmark.link

# Run progress: 25.00% complete, ETA 00:02:54
# Fork: 1 of 1
# Preparing profilers: LinuxPerfAsmProfiler 
# Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console

# Warmup Iteration   1: 123.955 ns/op
# Warmup Iteration   2: 29.798 ns/op]
# Warmup Iteration   3: 8.086 ns/ops]
# Warmup Iteration   4: 7.503 ns/ops]
# Warmup Iteration   5: 7.226 ns/ops]
# Warmup Iteration   6: 7.717 ns/ops]
# Warmup Iteration   7: 7.280 ns/op0s]
# Warmup Iteration   8: 8.462 ns/op1s]
# Warmup Iteration   9: 7.628 ns/op2s]
# Warmup Iteration  10: 6.398 ns/op3s]
Iteration   1: 6.510 ns/opING [1m 14s]
Iteration   2: 6.300 ns/opING [1m 15s]
Iteration   3: 6.246 ns/opING [1m 16s]
Iteration   4: 6.197 ns/opING [1m 17s]
Iteration   5: 6.350 ns/opING [1m 18s]

> Task :perfmark-java9:jmh
# Processing profiler results: LinuxPerfAsmProfiler 


Result "io.perfmark.java9.VarHandleMarkHolderBenchmark.link":
  6.321 ±(99.9%) 0.464 ns/op [Average]
  (min, avg, max) = (6.197, 6.321, 6.510), stdev = 0.120
  CI (99.9%): [5.857, 6.784] (assumes normal distribution)

Secondary result "io.perfmark.java9.VarHandleMarkHolderBenchmark.link:·asm":
PrintAssembly processed: 521375 total address lines.
Perf output processed (skipped 12.320 seconds):
 Column 1: cycles (5178 events)

Hottest code regions (>10.00% "cycles" events):

....[Hottest Region 1]..............................................................................
jvmci, level 4, io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub, version 1925 (364 bytes) 

              0x00007f9775fe9569: mov    QWORD PTR [rsp+0x30],r13
              0x00007f9775fe956e: mov    QWORD PTR [rsp+0x20],0x1
         ╭    0x00007f9775fe9577: jmp    0x00007f9775fe96c4  ;*aload {reexecute=0 rethrow=0 return_oop=0}
         │                                                  ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@13 (line 190)
         │    0x00007f9775fe957c: nop    DWORD PTR [rax+0x0]  ;*arraylength {reexecute=0 rethrow=0 return_oop=0}
         │                                                  ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@14 (line 601)
         │                                                  ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
         │                                                  ; - io.perfmark.java9.VarHandleMarkHolder::link@29 (line 132)
         │                                                  ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │                                                  ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.10%  │ ↗  0x00007f9775fe9580: and    r8,r9              ;*land {reexecute=0 rethrow=0 return_oop=0}
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@15 (line 131)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  1.47%  │ │  0x00007f9775fe9583: mov    r8d,r8d            ;*l2i {reexecute=0 rethrow=0 return_oop=0}
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@16 (line 131)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.31%  │ │  0x00007f9775fe9586: cmp    ecx,r8d
         │ │  0x00007f9775fe9589: jbe    0x00007f9775fe9a1e  ;*if_icmplt {reexecute=0 rethrow=0 return_oop=0}
         │ │                                                ; - jdk.internal.util.Preconditions::checkIndex@6 (line 247)
         │ │                                                ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@18 (line 602)
         │ │                                                ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@29 (line 132)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  3.23%  │ │  0x00007f9775fe958f: mov    ecx,DWORD PTR [rbx+0xc]  ;*getfield MARKER {reexecute=0 rethrow=0 return_oop=0}
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@9 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.15%  │ │  0x00007f9775fe9592: shl    rsi,0x3            ;*getfield tagIds {reexecute=0 rethrow=0 return_oop=0}
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@23 (line 132)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  1.33%  │ │  0x00007f9775fe9596: movsxd rdi,r8d            ;*i2l {reexecute=0 rethrow=0 return_oop=0}
         │ │                                                ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@21 (line 602)
         │ │                                                ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@29 (line 132)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.41%  │ │  0x00007f9775fe9599: mov    QWORD PTR [rsi+rdi*8+0x10],0x270f
         │ │                                                ;* unwind (locked if synchronized)
         │ │                                                ; - jdk.internal.misc.Unsafe::putLongOpaque@-3
         │ │                                                ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@34 (line 601)
         │ │                                                ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@29 (line 132)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  5.18%  │ │  0x00007f9775fe95a2: mov    esi,DWORD PTR [r11*8+0x20]
         │ │                                                ;*getfield taskNameOrMarkers {reexecute=0 rethrow=0 return_oop=0}
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@36 (line 133)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.17%  │ │  0x00007f9775fe95aa: mov    edx,r11d
  1.20%  │ │  0x00007f9775fe95ad: shl    rdx,0x3            ;*getfield markHolder {reexecute=0 rethrow=0 return_oop=0}
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@1 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.25%  │ │  0x00007f9775fe95b1: mov    eax,ecx
  2.84%  │ │  0x00007f9775fe95b3: shl    rax,0x3            ; ImmutableOopMap{rax=Oop rcx=NarrowOop rdx=Oop rbx=Oop rsi=NarrowOop r11=NarrowOop [80]=Oop [88]=Oop [96]=Oop }
         │ │                                                ;*return {reexecute=1 rethrow=0 return_oop=0}
         │ │                                                ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@37 (line 604)
         │ │                                                ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@29 (line 132)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.12%  │ │  0x00007f9775fe95b7: mov    ebp,DWORD PTR [rsi*8+0xc]
  1.43%  │ │  0x00007f9775fe95be: mov    ebx,DWORD PTR [rsi*8+0x8]
         │ │                                                ;* unwind (locked if synchronized)
         │ │                                                ; - org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil::loadHubIntrinsic@-3
         │ │                                                ; - org.graalvm.compiler.hotspot.replacements.InstanceOfSnippets::instanceofExact@39 (line 144)
         │ │                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@8 (line 458)
         │ │                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  1.68%  │ │  0x00007f9775fe95c5: cmp    ebp,r8d
         │ │  0x00007f9775fe95c8: jle    0x00007f9775fe9997  ;*if_icmplt {reexecute=0 rethrow=0 return_oop=0}
         │ │                                                ; - jdk.internal.util.Preconditions::checkIndex@6 (line 247)
         │ │                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@25 (line 460)
         │ │                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  2.95%  │ │  0x00007f9775fe95ce: cmp    ebx,0x13e88        ;   {metadata(&apos;java/lang/Object&apos;[])}
         │ │  0x00007f9775fe95d4: jne    0x00007f9775fe99e6  ;*checkcast {reexecute=0 rethrow=0 return_oop=0}
         │ │                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@8 (line 458)
         │ │                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.73%  │ │  0x00007f9775fe95da: mov    ebx,esi
  1.24%  │ │  0x00007f9775fe95dc: shl    rbx,0x3            ;*getfield taskNameOrMarkers {reexecute=0 rethrow=0 return_oop=0}
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@36 (line 133)
         │ │                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │ │                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.37%  │ │  0x00007f9775fe95e0: movsx  esi,BYTE PTR [r15+0x30]
  2.63%  │ │  0x00007f9775fe95e5: test   esi,esi
         │╭│  0x00007f9775fe95e7: jne    0x00007f9775fe96f1  ;*ifeq {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets::g1PreWriteBarrier@217 (line 200)
         │││                                                ; - jdk.internal.misc.Unsafe::putObjectOpaque@-3
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@47 (line 459)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.50%  │││  0x00007f9775fe95ed: mov    QWORD PTR [rsp+0x18],rax
  0.95%  │││  0x00007f9775fe95f2: mov    QWORD PTR [rsp+0x10],rdx
  0.44%  │││  0x00007f9775fe95f7: mov    r14,rdi
  2.70%  │││  0x00007f9775fe95fa: mov    r13d,ecx
  0.56%  │││  0x00007f9775fe95fd: mov    DWORD PTR [rsp+0x4c],r8d
  0.91%  │││  0x00007f9775fe9602: mov    QWORD PTR [rsp+0x8],r9
  0.23%  │││  0x00007f9775fe9607: mov    DWORD PTR [rsp+0x38],r11d
  2.78%  │││  0x00007f9775fe960c: mov    DWORD PTR [rbx+r14*4+0x10],r13d
         │││                                                ;* unwind (locked if synchronized)
         │││                                                ; - jdk.internal.misc.Unsafe::putObjectOpaque@-3
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@47 (line 459)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.54%  │││  0x00007f9775fe9611: lea    rsi,[rbx+r14*4+0x10]
  1.20%  │││  0x00007f9775fe9616: xor    rsi,QWORD PTR [rsp+0x18]  ;*invokeinterface xor {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets::g1PostWriteBarrier@151 (line 260)
         │││                                                ; - jdk.internal.misc.Unsafe::putObjectOpaque@-3
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@47 (line 459)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.31%  │││  0x00007f9775fe961b: test   rsi,0xffffffffffe00000
  2.78%  │││  0x00007f9775fe9622: mov    r13,QWORD PTR [rsp+0x18]
  0.56%  │││  0x00007f9775fe9627: je     0x00007f9775fe9747  ;*ifeq {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets::g1PostWriteBarrier@262 (line 275)
         │││                                                ; - jdk.internal.misc.Unsafe::putObjectOpaque@-3
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@47 (line 459)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  1.08%  │││  0x00007f9775fe962d: test   r13,r13
         │││  0x00007f9775fe9630: je     0x00007f9775fe975b  ;*ifeq {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets::g1PostWriteBarrier@287 (line 279)
         │││                                                ; - jdk.internal.misc.Unsafe::putObjectOpaque@-3
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@47 (line 459)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.31%  │││  0x00007f9775fe9636: mov    r10,QWORD PTR [rsp+0x30]
  2.84%  │││  0x00007f9775fe963b: lea    rsi,[rbx+r14*4+0x10]
  0.54%  │││  0x00007f9775fe9640: shr    rsi,0x9            ;*invokeinterface unsignedShiftRight {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets::g1PostWriteBarrier@173 (line 264)
         │││                                                ; - jdk.internal.misc.Unsafe::putObjectOpaque@-3
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@47 (line 459)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  1.10%  │││  0x00007f9775fe9644: movsx  r11d,BYTE PTR [rsi+r10*1]
  0.44%  │││  0x00007f9775fe9649: cmp    r11d,0x20
         │││  0x00007f9775fe964d: jne    0x00007f9775fe976f  ;*ifeq {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets::g1PostWriteBarrier@331 (line 284)
         │││                                                ; - jdk.internal.misc.Unsafe::putObjectOpaque@-3
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@47 (line 459)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  2.95%  │││  0x00007f9775fe9653: mov    r8d,DWORD PTR [rsp+0x4c]
  0.83%  │││  0x00007f9775fe9658: mov    r11d,DWORD PTR [rsp+0x38]
  1.16%  │││  0x00007f9775fe965d: mov    rbx,r10            ;* unwind (locked if synchronized)
         │││                                                ; - jdk.internal.misc.Unsafe::putObjectOpaque@-3
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@47 (line 459)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.17%  │││  0x00007f9775fe9660: mov    r10d,DWORD PTR [r11*8+0x34]
         │││                                                ; ImmutableOopMap{r10=NarrowOop r11=NarrowOop r13=Oop [16]=Oop [80]=Oop [88]=Oop [96]=Oop }
         │││                                                ;*return {reexecute=1 rethrow=0 return_oop=0}
         │││                                                ; - java.lang.invoke.VarHandleObjects$Array::setOpaque@50 (line 462)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIL_V@37 (line 659)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@43 (line 133)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  2.57%  │││  0x00007f9775fe9668: cmp    r8d,DWORD PTR [r10*8+0xc]
         │││  0x00007f9775fe9670: jge    0x00007f9775fe9a60
  2.12%  │││  0x00007f9775fe9676: mov    rsi,QWORD PTR [rsp+0x60]
  0.33%  │││  0x00007f9775fe967b: shl    r10,0x3            ;*getfield genOps {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@50 (line 134)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  2.84%  │││  0x00007f9775fe967f: mov    QWORD PTR [r10+r14*8+0x10],0x8
         │││                                                ;* unwind (locked if synchronized)
         │││                                                ; - jdk.internal.misc.Unsafe::putLongOpaque@-3
         │││                                                ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@34 (line 601)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@60 (line 134)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.87%  │││  0x00007f9775fe9688: mov    r9,QWORD PTR [rsp+0x8]
  1.18%  │││  0x00007f9775fe968d: inc    r9                 ;*ladd {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@70 (line 135)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  0.25%  │││  0x00007f9775fe9690: mov    QWORD PTR [r11*8+0x18],r9
         │││                                                ;* unwind (locked if synchronized)
         │││                                                ; - jdk.internal.misc.Unsafe::putLongRelease@-3
         │││                                                ; - java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setRelease@19 (line 114)
         │││                                                ; - java.lang.invoke.VarHandleGuards::guard_LJ_V@36 (line 177)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@71 (line 135)
         │││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  2.47%  │││  0x00007f9775fe9698: movsx  r10d,BYTE PTR [rsi+0x94]
  0.64%  │││  0x00007f9775fe96a0: movzx  r10d,r10b          ;*getfield isDone {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@25 (line 192)
  1.27%  │││  0x00007f9775fe96a4: mov    r11,QWORD PTR [rsp+0x20]
  0.39%  │││  0x00007f9775fe96a9: inc    r11                ;*ladd {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@21 (line 191)
  2.26%  │││  0x00007f9775fe96ac: test   r10d,r10d
         │││  0x00007f9775fe96af: jne    0x00007f9775fe9835  ;*ifeq {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@28 (line 192)
  0.44%  │││  0x00007f9775fe96b5: mov    r10,QWORD PTR [r15+0x108]
         │││                                                ; ImmutableOopMap{rsi=Oop [80]=Oop [88]=Oop [96]=Oop }
         │││                                                ;*ifeq {reexecute=1 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@28 (line 192)
  1.26%  │││  0x00007f9775fe96bc: test   DWORD PTR [r10],eax  ;   {poll}
  0.44%  │││  0x00007f9775fe96bf: mov    QWORD PTR [rsp+0x20],r11  ;*aload {reexecute=0 rethrow=0 return_oop=0}
         │││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@13 (line 190)
  2.92%  ↘││  0x00007f9775fe96c4: mov    rbx,QWORD PTR [rsp+0x50]
  0.73%   ││  0x00007f9775fe96c9: mov    r11d,DWORD PTR [rbx+0x10]
          ││                                                ; ImmutableOopMap{rbx=Oop r11=NarrowOop [80]=Oop [88]=Oop [96]=Oop }
          ││                                                ;*aload {reexecute=1 rethrow=0 return_oop=0}
          ││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@13 (line 190)
  1.00%   ││  0x00007f9775fe96cd: mov    esi,DWORD PTR [r11*8+0x28]
  0.68%   ││  0x00007f9775fe96d5: mov    r8,QWORD PTR [r11*8+0x10]
          ││                                                ;*getfield maxEventsMax {reexecute=0 rethrow=0 return_oop=0}
          ││                                                ; - io.perfmark.java9.VarHandleMarkHolder::link@12 (line 131)
          ││                                                ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
          ││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
  2.90%   ││  0x00007f9775fe96dd: mov    r9,QWORD PTR [r11*8+0x18]
          ││                                                ; ImmutableOopMap{rbx=Oop rsi=NarrowOop r11=NarrowOop [80]=Oop [88]=Oop [96]=Oop }
          ││                                                ;*aload {reexecute=1 rethrow=0 return_oop=0}
          ││                                                ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@13 (line 190)
  0.79%   ││  0x00007f9775fe96e5: mov    ecx,DWORD PTR [rsi*8+0xc]
 10.93%   │╰  0x00007f9775fe96ec: jmp    0x00007f9775fe9580  ;*arraylength {reexecute=0 rethrow=0 return_oop=0}
          │                                                 ; - java.lang.invoke.VarHandleLongs$Array::setOpaque@14 (line 601)
          │                                                 ; - java.lang.invoke.VarHandleGuards::guard_LIJ_V@37 (line 763)
          │                                                 ; - io.perfmark.java9.VarHandleMarkHolder::link@29 (line 132)
          │                                                 ; - io.perfmark.java9.VarHandleMarkHolderBenchmark::link@12 (line 78)
          │                                                 ; - io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub@15 (line 190)
          ↘   0x00007f9775fe96f1: lea    rsi,[rbx+rdi*4+0x10]
              0x00007f9775fe96f6: mov    esi,DWORD PTR [rsi]
              0x00007f9775fe96f8: shl    rsi,0x3            ;*invokevirtual readObject {reexecute=0 rethrow=0 return_oop=0}
                                                            ; - org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets::g1PreWriteBarrier@236 (line 204)
                                                            ; - jdk.internal.misc.Unsafe::putObjectOpaque@-3
....................................................................................................
 92.95%  <total for region 1>

....[Hottest Regions]...............................................................................
 92.95%      jvmci, level 4  io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub, version 1925 (364 bytes) 
  2.41%   [kernel.kallsyms]  native_write_msr (5 bytes) 
  0.27%   [kernel.kallsyms]  syscall_return_via_sysret (3 bytes) 
  0.15%           libjvm.so  ElfSymbolTable::lookup (32 bytes) 
  0.15%           libjvm.so  fileStream::write (65 bytes) 
  0.14%   [kernel.kallsyms]  __entry_trampoline_start (70 bytes) 
  0.08%   [kernel.kallsyms]  __intel_pmu_enable_all.constprop.25 (0 bytes) 
  0.06%   [kernel.kallsyms]  __task_pid_nr_ns (0 bytes) 
  0.06%   [kernel.kallsyms]  __fget_light (2 bytes) 
  0.06%   [kernel.kallsyms]  common_file_perm (14 bytes) 
  0.06%   [kernel.kallsyms]  mutex_unlock (0 bytes) 
  0.06%   [kernel.kallsyms]  mutex_lock (0 bytes) 
  0.06%   [kernel.kallsyms]  entry_SYSCALL_64_after_hwframe (27 bytes) 
  0.06%         interpreter  method entry point (kind = zerolocals)  (8 bytes) 
  0.06%      hsdis-amd64.so  print_insn (34 bytes) 
  0.06%  libpthread-2.28.so  __libc_write (16 bytes) 
  0.06%          ld-2.28.so  __tls_get_addr (21 bytes) 
  0.04%   [kernel.kallsyms]  native_read_msr (0 bytes) 
  0.04%   [kernel.kallsyms]  __fget (30 bytes) 
  0.04%   [kernel.kallsyms]  __fget (23 bytes) 
  3.15%  <...other 146 warm regions...>
....................................................................................................
100.00%  <totals>

....[Hottest Methods (after inlining)]..............................................................
 92.95%      jvmci, level 4  io.perfmark.java9.generated.VarHandleMarkHolderBenchmark_link_jmhTest::link_avgt_jmhStub, version 1925 
  2.41%   [kernel.kallsyms]  native_write_msr 
  0.31%   [kernel.kallsyms]  syscall_return_via_sysret 
  0.17%           libjvm.so  fileStream::write 
  0.15%           libjvm.so  ElfSymbolTable::lookup 
  0.15%   [kernel.kallsyms]  __entry_trampoline_start 
  0.10%   [kernel.kallsyms]  __task_pid_nr_ns 
  0.10%         interpreter  method entry point (kind = zerolocals)  
  0.10%         interpreter  invokevirtual  182 invokevirtual  
  0.08%   [kernel.kallsyms]  __intel_pmu_enable_all.constprop.25 
  0.08%   [kernel.kallsyms]  __fget 
  0.08%      hsdis-amd64.so  print_insn 
  0.06%   [kernel.kallsyms]  mutex_lock 
  0.06%  libpthread-2.28.so  __libc_write 
  0.06%          ld-2.28.so  __tls_get_addr 
  0.06%   [kernel.kallsyms]  mutex_unlock 
  0.06%   [kernel.kallsyms]  common_file_perm 
  0.06%   [kernel.kallsyms]  __fget_light 
  0.06%   [kernel.kallsyms]  entry_SYSCALL_64_after_hwframe 
  0.06%           libjvm.so  xmlStream::write_text 
  2.86%  <...other 125 warm methods...>
....................................................................................................
100.00%  <totals>

....[Distribution by Source]........................................................................
 92.95%      jvmci, level 4
  4.69%   [kernel.kallsyms]
  1.10%           libjvm.so
  0.35%        libc-2.28.so
  0.31%         interpreter
  0.15%             ext4.ko
  0.12%      hsdis-amd64.so
  0.10%  libpthread-2.28.so
  0.06%         c1, level 1
  0.06%          ld-2.28.so
  0.04%      perf-13702.map
  0.04%     crc32c-intel.ko
  0.02%             i915.ko
  0.02%             jbd2.ko
....................................................................................................
100.00%  <totals>


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment