public class org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets implements org.graalvm.compiler.replacements.Snippets
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets
super_class: java.lang.Object
{
private static final org.graalvm.compiler.replacements.SnippetCounter$Group checkCounters;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter checkSuccessCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter checkAIOOBECounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter$Group counters;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter objectCheckcastCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter objectCheckcastSameTypeCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter predictedObjectArrayCopySlowPathCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter predictedObjectArrayCopyFastPathCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.EnumMap<jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.replacements.SnippetCounter> arraycopyCallCounters;
descriptor: Ljava/util/EnumMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/EnumMap<Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter;>;
private static final java.util.EnumMap<jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.replacements.SnippetCounter> arraycopyCounters;
descriptor: Ljava/util/EnumMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/EnumMap<Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter;>;
private static final java.util.EnumMap<jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.replacements.SnippetCounter> arraycopyCallCopiedCounters;
descriptor: Ljava/util/EnumMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/EnumMap<Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter;>;
private static final java.util.EnumMap<jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.replacements.SnippetCounter> arraycopyCopiedCounters;
descriptor: Ljava/util/EnumMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/EnumMap<Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter;>;
private static final org.graalvm.compiler.replacements.SnippetCounter genericPrimitiveCallCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter genericObjectExactCallCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter SystemArraycopyCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter$Group lengthCounters;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter zeroLengthStaticCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter zeroLengthDynamicCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter nonZeroLengthDynamicCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter$Group copiedCounters;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter nonZeroLengthDynamicCopiedCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter genericPrimitiveCallCopiedCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter genericObjectExactCallCopiedCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter SystemArraycopyCopiedCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter objectCheckcastCopiedCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter objectCheckcastSameTypeCopiedCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter predictedObjectArrayCopySlowPathCopiedCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.replacements.SnippetCounter predictedObjectArrayCopyFastPathCopiedCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: getstatic org.graalvm.compiler.core.common.GraalOptions.SnippetCounters:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 1
new org.graalvm.compiler.replacements.SnippetCounter$Group
dup
ldc "System.arraycopy checkInputs"
invokespecial org.graalvm.compiler.replacements.SnippetCounter$Group.<init>:(Ljava/lang/String;)V
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: org.graalvm.compiler.replacements.SnippetCounter$Group
2: putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
3: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "checkSuccess"
ldc "checkSuccess"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkSuccessCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
4: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "checkAIOOBE"
ldc "checkAIOOBE"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkAIOOBECounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
5: getstatic org.graalvm.compiler.core.common.GraalOptions.SnippetCounters:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 6
new org.graalvm.compiler.replacements.SnippetCounter$Group
dup
ldc "System.arraycopy"
invokespecial org.graalvm.compiler.replacements.SnippetCounter$Group.<init>:(Ljava/lang/String;)V
goto 7
StackMap locals:
StackMap stack:
6: aconst_null
StackMap locals:
StackMap stack: org.graalvm.compiler.replacements.SnippetCounter$Group
7: putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.counters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
8: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.counters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "Object[]{non-exact}"
ldc "arraycopy for non-exact Object[] arrays"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.objectCheckcastCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
9: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.counters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "Object[]{same-type}"
ldc "arraycopy call for src.klass == dest.klass Object[] arrays"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.objectCheckcastSameTypeCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
10: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.counters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "Object[]{slow-path}"
ldc "used System.arraycopy slow path for predicted Object[] arrays"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.predictedObjectArrayCopySlowPathCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
11: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.counters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "Object[]{fast-path}"
ldc "used oop_arraycopy for predicted Object[] arrays"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.predictedObjectArrayCopyFastPathCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
12: new java.util.EnumMap
dup
ldc Ljdk/vm/ci/meta/JavaKind;
invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.arraycopyCallCounters:Ljava/util/EnumMap;
13: new java.util.EnumMap
dup
ldc Ljdk/vm/ci/meta/JavaKind;
invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.arraycopyCounters:Ljava/util/EnumMap;
14: new java.util.EnumMap
dup
ldc Ljdk/vm/ci/meta/JavaKind;
invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.arraycopyCallCopiedCounters:Ljava/util/EnumMap;
15: new java.util.EnumMap
dup
ldc Ljdk/vm/ci/meta/JavaKind;
invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.arraycopyCopiedCounters:Ljava/util/EnumMap;
16: getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;)V
17: getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;)V
18: getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;)V
19: getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;)V
20: getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;)V
21: getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;)V
22: getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;)V
23: getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;)V
24: getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;)V
25: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.counters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "genericPrimitive"
ldc "generic arraycopy snippet for primitive arrays"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.genericPrimitiveCallCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
26: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.counters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "genericObjectExact"
ldc "generic arraycopy snippet for special object arrays"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.genericObjectExactCallCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
27: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.counters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "genericObject"
ldc "call to System.arraycopy"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.SystemArraycopyCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
28: getstatic org.graalvm.compiler.core.common.GraalOptions.SnippetCounters:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 29
new org.graalvm.compiler.replacements.SnippetCounter$Group
dup
ldc "System.arraycopy 0-length checks"
invokespecial org.graalvm.compiler.replacements.SnippetCounter$Group.<init>:(Ljava/lang/String;)V
goto 30
StackMap locals:
StackMap stack:
29: aconst_null
StackMap locals:
StackMap stack: org.graalvm.compiler.replacements.SnippetCounter$Group
30: putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.lengthCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
31: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.lengthCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "0-lengthcopy static"
ldc "arraycopy where the length is statically 0"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.zeroLengthStaticCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
32: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.lengthCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "0-lengthcopy dynamically"
ldc "arraycopy where the length is dynamically 0"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.zeroLengthDynamicCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
33: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.lengthCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "non-0-lengthcopy dynamically"
ldc "arraycopy where the length is dynamically not zero"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.nonZeroLengthDynamicCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
34: getstatic org.graalvm.compiler.core.common.GraalOptions.SnippetCounters:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 35
new org.graalvm.compiler.replacements.SnippetCounter$Group
dup
ldc "System.arraycopy copied elements"
invokespecial org.graalvm.compiler.replacements.SnippetCounter$Group.<init>:(Ljava/lang/String;)V
goto 36
StackMap locals:
StackMap stack:
35: aconst_null
StackMap locals:
StackMap stack: org.graalvm.compiler.replacements.SnippetCounter$Group
36: putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.copiedCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
37: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.copiedCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "non-0-lengthcopy dynamically"
ldc "arraycopy where the length is dynamically not zero"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.nonZeroLengthDynamicCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
38: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.copiedCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "genericPrimitive"
ldc "generic arraycopy snippet for primitive arrays"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.genericPrimitiveCallCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
39: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.copiedCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "genericObjectExact"
ldc "generic arraycopy snippet for special object arrays"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.genericObjectExactCallCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
40: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.copiedCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "genericObject"
ldc "call to System.arraycopy"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.SystemArraycopyCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
41: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.copiedCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "Object[]{non-exact}"
ldc "arraycopy for non-exact Object[] arrays"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.objectCheckcastCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
42: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.copiedCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "Object[]{same-type}"
ldc "arraycopy call for src.klass == dest.klass Object[] arrays"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.objectCheckcastSameTypeCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
43: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.copiedCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "Object[]{slow-path}"
44: ldc "used System.arraycopy slow path for predicted Object[] arrays"
45: invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.predictedObjectArrayCopySlowPathCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
46: new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.copiedCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
ldc "Object[]{fast-path}"
ldc "used oop_arraycopy for predicted Object[] arrays"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.predictedObjectArrayCopyFastPathCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySnippets;
private static int checkArrayType(org.graalvm.compiler.hotspot.word.KlassPointer);
descriptor: (Lorg/graalvm/compiler/hotspot/word/KlassPointer;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.readLayoutHelper:(Lorg/graalvm/compiler/hotspot/word/KlassPointer;)I
istore 1
start local 1 1: ldc 0.010000000000000009
iload 1
iflt 2
iconst_1
goto 3
StackMap locals: org.graalvm.compiler.hotspot.word.KlassPointer int
StackMap stack: double
2: iconst_0
StackMap locals: org.graalvm.compiler.hotspot.word.KlassPointer int
StackMap stack: double int
3: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 5
4: getstatic jdk.vm.ci.meta.DeoptimizationAction.None:Ljdk/vm/ci/meta/DeoptimizationAction;
getstatic jdk.vm.ci.meta.DeoptimizationReason.RuntimeConstraint:Ljdk/vm/ci/meta/DeoptimizationReason;
invokestatic org.graalvm.compiler.nodes.DeoptimizeNode.deopt:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
5: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 hub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
1 6 1 layoutHelper I
MethodParameters:
Name Flags
hub
private static void checkLimits(java.lang.Object, int, java.lang.Object, int, int);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: ldc 0.010000000000000009
iload 1
ifge 1
iconst_1
goto 2
StackMap locals:
StackMap stack: double
1: iconst_0
StackMap locals: java.lang.Object int java.lang.Object int int
StackMap stack: double int
2: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 5
3: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkAIOOBECounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
4: getstatic jdk.vm.ci.meta.DeoptimizationAction.None:Ljdk/vm/ci/meta/DeoptimizationAction;
getstatic jdk.vm.ci.meta.DeoptimizationReason.RuntimeConstraint:Ljdk/vm/ci/meta/DeoptimizationReason;
invokestatic org.graalvm.compiler.nodes.DeoptimizeNode.deopt:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
5: StackMap locals:
StackMap stack:
ldc 0.010000000000000009
iload 3
ifge 6
iconst_1
goto 7
StackMap locals:
StackMap stack: double
6: iconst_0
StackMap locals: java.lang.Object int java.lang.Object int int
StackMap stack: double int
7: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 10
8: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkAIOOBECounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
9: getstatic jdk.vm.ci.meta.DeoptimizationAction.None:Ljdk/vm/ci/meta/DeoptimizationAction;
getstatic jdk.vm.ci.meta.DeoptimizationReason.RuntimeConstraint:Ljdk/vm/ci/meta/DeoptimizationReason;
invokestatic org.graalvm.compiler.nodes.DeoptimizeNode.deopt:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
10: StackMap locals:
StackMap stack:
ldc 0.010000000000000009
iload 4
ifge 11
iconst_1
goto 12
StackMap locals:
StackMap stack: double
11: iconst_0
StackMap locals: java.lang.Object int java.lang.Object int int
StackMap stack: double int
12: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 15
13: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkAIOOBECounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
14: getstatic jdk.vm.ci.meta.DeoptimizationAction.None:Ljdk/vm/ci/meta/DeoptimizationAction;
getstatic jdk.vm.ci.meta.DeoptimizationReason.RuntimeConstraint:Ljdk/vm/ci/meta/DeoptimizationReason;
invokestatic org.graalvm.compiler.nodes.DeoptimizeNode.deopt:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
15: StackMap locals:
StackMap stack:
ldc 0.010000000000000009
iload 1
aload 0
invokestatic org.graalvm.compiler.nodes.java.ArrayLengthNode.arrayLength:(Ljava/lang/Object;)I
iload 4
isub
if_icmple 16
iconst_1
goto 17
StackMap locals:
StackMap stack: double
16: iconst_0
StackMap locals: java.lang.Object int java.lang.Object int int
StackMap stack: double int
17: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 20
18: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkAIOOBECounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
19: getstatic jdk.vm.ci.meta.DeoptimizationAction.None:Ljdk/vm/ci/meta/DeoptimizationAction;
getstatic jdk.vm.ci.meta.DeoptimizationReason.RuntimeConstraint:Ljdk/vm/ci/meta/DeoptimizationReason;
invokestatic org.graalvm.compiler.nodes.DeoptimizeNode.deopt:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
20: StackMap locals:
StackMap stack:
ldc 0.010000000000000009
iload 3
aload 2
invokestatic org.graalvm.compiler.nodes.java.ArrayLengthNode.arrayLength:(Ljava/lang/Object;)I
iload 4
isub
if_icmple 21
iconst_1
goto 22
StackMap locals:
StackMap stack: double
21: iconst_0
StackMap locals: java.lang.Object int java.lang.Object int int
StackMap stack: double int
22: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 25
23: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkAIOOBECounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
24: getstatic jdk.vm.ci.meta.DeoptimizationAction.None:Ljdk/vm/ci/meta/DeoptimizationAction;
getstatic jdk.vm.ci.meta.DeoptimizationReason.RuntimeConstraint:Ljdk/vm/ci/meta/DeoptimizationReason;
invokestatic org.graalvm.compiler.nodes.DeoptimizeNode.deopt:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
25: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkSuccessCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
26: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 src Ljava/lang/Object;
0 27 1 srcPos I
0 27 2 dest Ljava/lang/Object;
0 27 3 destPos I
0 27 4 length I
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
public static void arraycopyZeroLengthIntrinsic(java.lang.Object, int, java.lang.Object, int, int);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;II)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 1: aload 2
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 6
start local 6 2: aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadHub:(Ljava/lang/Object;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 7
start local 7 3: aload 6
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadHub:(Ljava/lang/Object;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 8
start local 8 4: aload 7
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkArrayType:(Lorg/graalvm/compiler/hotspot/word/KlassPointer;)I
pop
5: aload 8
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkArrayType:(Lorg/graalvm/compiler/hotspot/word/KlassPointer;)I
pop
6: aload 5
iload 1
aload 6
iload 3
iload 4
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkLimits:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.zeroLengthStaticCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
8: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 src Ljava/lang/Object;
0 9 1 srcPos I
0 9 2 dest Ljava/lang/Object;
0 9 3 destPos I
0 9 4 length I
1 9 5 nonNullSrc Ljava/lang/Object;
2 9 6 nonNullDest Ljava/lang/Object;
3 9 7 srcHub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
4 9 8 destHub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
public static void arraycopyExactIntrinsic(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.replacements.SnippetCounter, org.graalvm.compiler.replacements.SnippetCounter);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter;Lorg/graalvm/compiler/replacements/SnippetCounter;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=10, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 1: aload 2
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 9
start local 9 2: aload 8
iload 1
aload 9
iload 3
iload 4
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkLimits:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: aload 6
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
4: aload 7
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
5: aload 8
iload 1
aload 9
iload 3
iload 4
aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
6: iload 4
ifne 9
7: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.zeroLengthDynamicCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
8: goto 11
9: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.nonZeroLengthDynamicCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
10: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.nonZeroLengthDynamicCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
11: StackMap locals:
StackMap stack:
return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 src Ljava/lang/Object;
0 12 1 srcPos I
0 12 2 dest Ljava/lang/Object;
0 12 3 destPos I
0 12 4 length I
0 12 5 elementKind Ljdk/vm/ci/meta/JavaKind;
0 12 6 counter Lorg/graalvm/compiler/replacements/SnippetCounter;
0 12 7 copiedCounter Lorg/graalvm/compiler/replacements/SnippetCounter;
1 12 8 nonNullSrc Ljava/lang/Object;
2 12 9 nonNullDest Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
4:
5:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
6:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
7:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
elementKind
counter
copiedCounter
public static void arraycopyPredictedExactIntrinsic(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.replacements.SnippetCounter, org.graalvm.compiler.replacements.SnippetCounter);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter;Lorg/graalvm/compiler/replacements/SnippetCounter;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=12, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 1: aload 2
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 9
start local 9 2: aload 8
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadHub:(Ljava/lang/Object;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 10
start local 10 3: aload 9
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadHub:(Ljava/lang/Object;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 11
start local 11 4: ldc 0.010000000000000009
aload 10
aload 11
if_acmpeq 5
iconst_1
goto 6
StackMap locals: java.lang.Object int java.lang.Object int int jdk.vm.ci.meta.JavaKind org.graalvm.compiler.replacements.SnippetCounter org.graalvm.compiler.replacements.SnippetCounter java.lang.Object java.lang.Object org.graalvm.compiler.hotspot.word.KlassPointer org.graalvm.compiler.hotspot.word.KlassPointer
StackMap stack: double
5: iconst_0
StackMap locals: java.lang.Object int java.lang.Object int int jdk.vm.ci.meta.JavaKind org.graalvm.compiler.replacements.SnippetCounter org.graalvm.compiler.replacements.SnippetCounter java.lang.Object java.lang.Object org.graalvm.compiler.hotspot.word.KlassPointer org.graalvm.compiler.hotspot.word.KlassPointer
StackMap stack: double int
6: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 8
7: getstatic jdk.vm.ci.meta.DeoptimizationAction.None:Ljdk/vm/ci/meta/DeoptimizationAction;
getstatic jdk.vm.ci.meta.DeoptimizationReason.RuntimeConstraint:Ljdk/vm/ci/meta/DeoptimizationReason;
invokestatic org.graalvm.compiler.nodes.DeoptimizeNode.deopt:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
8: StackMap locals:
StackMap stack:
aload 8
iload 1
aload 9
iload 3
iload 4
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkLimits:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: aload 6
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
10: aload 7
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
11: aload 8
iload 1
aload 9
iload 3
iload 4
aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
12: iload 4
ifne 15
13: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.zeroLengthDynamicCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
14: goto 17
15: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.nonZeroLengthDynamicCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
16: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.nonZeroLengthDynamicCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
17: StackMap locals:
StackMap stack:
return
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 src Ljava/lang/Object;
0 18 1 srcPos I
0 18 2 dest Ljava/lang/Object;
0 18 3 destPos I
0 18 4 length I
0 18 5 elementKind Ljdk/vm/ci/meta/JavaKind;
0 18 6 counter Lorg/graalvm/compiler/replacements/SnippetCounter;
0 18 7 copiedCounter Lorg/graalvm/compiler/replacements/SnippetCounter;
1 18 8 nonNullSrc Ljava/lang/Object;
2 18 9 nonNullDest Ljava/lang/Object;
3 18 10 srcHub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
4 18 11 destHub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
4:
5:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
6:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
7:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
elementKind
counter
copiedCounter
public static void arraycopyPredictedObjectWork(java.lang.Object, int, java.lang.Object, int, int, org.graalvm.compiler.hotspot.word.KlassPointer, org.graalvm.compiler.replacements.SnippetCounter, org.graalvm.compiler.replacements.SnippetCounter);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILorg/graalvm/compiler/hotspot/word/KlassPointer;Lorg/graalvm/compiler/replacements/SnippetCounter;Lorg/graalvm/compiler/replacements/SnippetCounter;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: iload 4
ifle 15
1: aload 0
invokestatic org.graalvm.compiler.nodes.PiNode.asNonNullObject:(Ljava/lang/Object;)Ljava/lang/Class;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadHub:(Ljava/lang/Object;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 8
start local 8 2: aload 2
invokestatic org.graalvm.compiler.nodes.PiNode.asNonNullObject:(Ljava/lang/Object;)Ljava/lang/Class;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadHub:(Ljava/lang/Object;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 9
start local 9 3: ldc 0.99
aload 8
aload 9
if_acmpeq 4
aload 9
aload 5
if_acmpeq 4
iconst_0
goto 5
StackMap locals: java.lang.Object int java.lang.Object int int org.graalvm.compiler.hotspot.word.KlassPointer org.graalvm.compiler.replacements.SnippetCounter org.graalvm.compiler.replacements.SnippetCounter org.graalvm.compiler.hotspot.word.KlassPointer org.graalvm.compiler.hotspot.word.KlassPointer
StackMap stack: double
4: iconst_1
StackMap locals: java.lang.Object int java.lang.Object int int org.graalvm.compiler.hotspot.word.KlassPointer org.graalvm.compiler.replacements.SnippetCounter org.graalvm.compiler.replacements.SnippetCounter org.graalvm.compiler.hotspot.word.KlassPointer org.graalvm.compiler.hotspot.word.KlassPointer
StackMap stack: double int
5: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 12
6: aload 6
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
7: aload 7
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
8: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.predictedObjectArrayCopyFastPathCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
9: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.predictedObjectArrayCopyFastPathCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
10: aload 0
iload 1
aload 2
iload 3
iload 4
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.arraycopyObjectKillsAny:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: goto 15
12: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.predictedObjectArrayCopySlowPathCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
13: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.predictedObjectArrayCopySlowPathCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
14: aload 0
iload 1
aload 2
iload 3
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 9 end local 8 15: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 nonNullSrc Ljava/lang/Object;
0 16 1 srcPos I
0 16 2 nonNullDest Ljava/lang/Object;
0 16 3 destPos I
0 16 4 length I
0 16 5 objectArrayKlass Lorg/graalvm/compiler/hotspot/word/KlassPointer;
0 16 6 counter Lorg/graalvm/compiler/replacements/SnippetCounter;
0 16 7 copiedCounter Lorg/graalvm/compiler/replacements/SnippetCounter;
2 15 8 srcHub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
3 15 9 destHub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
4:
5:
6:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
7:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
nonNullSrc
srcPos
nonNullDest
destPos
length
objectArrayKlass
counter
copiedCounter
public static void arraycopySlowPathIntrinsic(java.lang.Object, int, java.lang.Object, int, int, org.graalvm.compiler.hotspot.word.KlassPointer, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo, java.lang.Object);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILorg/graalvm/compiler/hotspot/word/KlassPointer;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Ljava/lang/Object;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=13, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 9
start local 9 1: aload 2
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 10
start local 10 2: aload 9
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadHub:(Ljava/lang/Object;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 11
start local 11 3: aload 10
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadHub:(Ljava/lang/Object;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 12
start local 12 4: aload 11
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkArrayType:(Lorg/graalvm/compiler/hotspot/word/KlassPointer;)I
pop
5: aload 12
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkArrayType:(Lorg/graalvm/compiler/hotspot/word/KlassPointer;)I
pop
6: aload 9
iload 1
aload 10
iload 3
iload 4
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkLimits:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: iload 4
ifne 10
8: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.zeroLengthDynamicCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
9: goto 12
10: StackMap locals: java.lang.Object int java.lang.Object int int org.graalvm.compiler.hotspot.word.KlassPointer jdk.vm.ci.meta.JavaKind org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo java.lang.Object java.lang.Object java.lang.Object org.graalvm.compiler.hotspot.word.KlassPointer org.graalvm.compiler.hotspot.word.KlassPointer
StackMap stack:
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.nonZeroLengthDynamicCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
11: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.nonZeroLengthDynamicCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
12: StackMap locals:
StackMap stack:
aload 9
iload 1
aload 10
iload 3
iload 4
aload 5
aload 6
aload 7
aload 8
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILorg/graalvm/compiler/hotspot/word/KlassPointer;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Ljava/lang/Object;)V
13: return
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 src Ljava/lang/Object;
0 14 1 srcPos I
0 14 2 dest Ljava/lang/Object;
0 14 3 destPos I
0 14 4 length I
0 14 5 predictedKlass Lorg/graalvm/compiler/hotspot/word/KlassPointer;
0 14 6 elementKind Ljdk/vm/ci/meta/JavaKind;
0 14 7 slowPath Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
0 14 8 slowPathArgument Ljava/lang/Object;
1 14 9 nonNullSrc Ljava/lang/Object;
2 14 10 nonNullDest Ljava/lang/Object;
3 14 11 srcHub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
4 14 12 destHub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
4:
5:
6:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
7:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
8:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
predictedKlass
elementKind
slowPath
slowPathArgument
public static void arraycopyUnrolledIntrinsic(java.lang.Object, int, java.lang.Object, int, int, int, jdk.vm.ci.meta.JavaKind);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;IIILjdk/vm/ci/meta/JavaKind;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=9, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 1: aload 2
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 2: aload 7
iload 1
aload 8
iload 3
iload 4
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkLimits:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: iload 4
ifne 6
4: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.zeroLengthDynamicCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
5: goto 8
6: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.nonZeroLengthDynamicCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
7: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.nonZeroLengthDynamicCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
8: StackMap locals:
StackMap stack:
aload 7
iload 1
aload 8
iload 3
iload 4
iload 5
aload 6
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyUnrollNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IIILjdk/vm/ci/meta/JavaKind;)V
9: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 src Ljava/lang/Object;
0 10 1 srcPos I
0 10 2 dest Ljava/lang/Object;
0 10 3 destPos I
0 10 4 length I
0 10 5 unrolledLength I
0 10 6 elementKind Ljdk/vm/ci/meta/JavaKind;
1 10 7 nonNullSrc Ljava/lang/Object;
2 10 8 nonNullDest Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
4:
5:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
6:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
unrolledLength
elementKind
public static void checkcastArraycopyWork(java.lang.Object, int, java.lang.Object, int, int);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;II)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 4
ifle 18
1: aload 2
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadHub:(Ljava/lang/Object;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 5
start local 5 2: aload 0
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadHub:(Ljava/lang/Object;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 6
start local 6 3: ldc 0.010000000000000009
aload 6
aload 5
if_acmpne 4
iconst_1
goto 5
StackMap locals: java.lang.Object int java.lang.Object int int org.graalvm.compiler.hotspot.word.KlassPointer org.graalvm.compiler.hotspot.word.KlassPointer
StackMap stack: double
4: iconst_0
StackMap locals: java.lang.Object int java.lang.Object int int org.graalvm.compiler.hotspot.word.KlassPointer org.graalvm.compiler.hotspot.word.KlassPointer
StackMap stack: double int
5: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 10
6: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.objectCheckcastSameTypeCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
7: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.objectCheckcastSameTypeCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
8: aload 0
iload 1
aload 2
iload 3
iload 4
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.arraycopyObjectKillsAny:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: goto 18
10: StackMap locals:
StackMap stack:
aload 5
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayClassElementOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.OBJ_ARRAY_KLASS_ELEMENT_KLASS_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
invokevirtual org.graalvm.compiler.hotspot.word.KlassPointer.readKlassPointer:(ILorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 7
start local 7 11: aload 7
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.superCheckOffsetOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.KLASS_SUPER_CHECK_OFFSET_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
invokevirtual org.graalvm.compiler.hotspot.word.KlassPointer.readInt:(ILorg/graalvm/compiler/core/common/LocationIdentity;)I
invokestatic org.graalvm.compiler.word.Word.signed:(I)Lorg/graalvm/compiler/word/Word;
astore 8
start local 8 12: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.objectCheckcastCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
13: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.objectCheckcastCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
14: aload 0
iload 1
aload 2
iload 3
iload 4
aload 8
aload 7
iconst_0
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.CheckcastArrayCopyCallNode.checkcastArraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILorg/graalvm/compiler/word/Word;Ljava/lang/Object;Z)I
istore 9
start local 9 15: iload 9
ifeq 18
16: iload 9
iconst_m1
ixor
istore 9
17: aload 0
iload 1
iload 9
iadd
aload 2
iload 3
iload 9
iadd
iload 4
iload 9
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 9 end local 8 end local 7 end local 6 end local 5 18: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 nonNullSrc Ljava/lang/Object;
0 19 1 srcPos I
0 19 2 nonNullDest Ljava/lang/Object;
0 19 3 destPos I
0 19 4 length I
2 18 5 destKlass Lorg/graalvm/compiler/hotspot/word/KlassPointer;
3 18 6 srcKlass Lorg/graalvm/compiler/hotspot/word/KlassPointer;
11 18 7 destElemKlass Lorg/graalvm/compiler/hotspot/word/KlassPointer;
12 18 8 superCheckOffset Lorg/graalvm/compiler/word/Word;
15 18 9 copiedElements I
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
nonNullSrc
srcPos
nonNullDest
destPos
length
public static void arraycopyGeneric(java.lang.Object, int, java.lang.Object, int, int);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;II)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 1: aload 2
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 6
start local 6 2: aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadHub:(Ljava/lang/Object;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 7
start local 7 3: aload 6
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadHub:(Ljava/lang/Object;)Lorg/graalvm/compiler/hotspot/word/KlassPointer;
astore 8
start local 8 4: ldc 0.99
aload 7
aload 8
invokevirtual org.graalvm.compiler.hotspot.word.KlassPointer.equal:(Lorg/graalvm/compiler/hotspot/word/KlassPointer;)Z
invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 21
ldc 0.99
aload 5
aload 6
if_acmpeq 5
iconst_1
goto 6
StackMap locals: java.lang.Object int java.lang.Object int int java.lang.Object java.lang.Object org.graalvm.compiler.hotspot.word.KlassPointer org.graalvm.compiler.hotspot.word.KlassPointer
StackMap stack: double
5: iconst_0
StackMap locals: java.lang.Object int java.lang.Object int int java.lang.Object java.lang.Object org.graalvm.compiler.hotspot.word.KlassPointer org.graalvm.compiler.hotspot.word.KlassPointer
StackMap stack: double int
6: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 21
7: aload 7
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkArrayType:(Lorg/graalvm/compiler/hotspot/word/KlassPointer;)I
istore 9
start local 9 8: iload 9
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperElementTypePrimitiveInPlace:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
iand
ifne 9
iconst_1
goto 10
StackMap locals: int
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 10
start local 10 11: aload 5
iload 1
aload 6
iload 3
iload 4
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.checkLimits:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: ldc 0.99
iload 10
invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 17
13: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.genericObjectExactCallCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
14: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.genericObjectExactCallCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
15: aload 5
iload 1
aload 6
iload 3
iload 4
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjointArraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
16: goto 24
17: StackMap locals: int
StackMap stack:
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.genericPrimitiveCallCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
18: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.genericPrimitiveCallCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
19: aload 5
iload 1
aload 6
iload 3
iload 4
iload 9
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopyNode.arraycopyPrimitive:(Ljava/lang/Object;ILjava/lang/Object;III)V
end local 10 end local 9 20: goto 24
21: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.SystemArraycopyCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
22: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.SystemArraycopyCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
iload 4
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.add:(I)V
23: aload 5
iload 1
aload 6
iload 3
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
24: StackMap locals:
StackMap stack:
return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 src Ljava/lang/Object;
0 25 1 srcPos I
0 25 2 dest Ljava/lang/Object;
0 25 3 destPos I
0 25 4 length I
1 25 5 nonNullSrc Ljava/lang/Object;
2 25 6 nonNullDest Ljava/lang/Object;
3 25 7 srcHub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
4 25 8 destHub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
8 20 9 layoutHelper I
11 20 10 isObjectArray Z
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
static org.graalvm.compiler.core.common.LocationIdentity getArrayLocation(jdk.vm.ci.meta.JavaKind);
descriptor: (Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 kind Ljdk/vm/ci/meta/JavaKind;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
MethodParameters:
Name Flags
kind
public static void arraycopyUnrolledWork(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=15, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
istore 6
start local 6 1: aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
istore 7
start local 7 2: aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
astore 8
start local 8 3: aload 0
aload 2
if_acmpne 16
iload 1
iload 3
if_icmpge 16
4: iload 4
iconst_1
isub
i2l
iload 6
i2l
lmul
lstore 9
start local 9 5: lload 9
lstore 11
start local 11 6: invokestatic org.graalvm.compiler.replacements.nodes.ExplodeLoopNode.explodeLoop:()V
7: iconst_0
istore 13
start local 13 8: goto 14
9: StackMap locals: java.lang.Object int java.lang.Object int int jdk.vm.ci.meta.JavaKind int int org.graalvm.compiler.core.common.LocationIdentity long long int
StackMap stack:
lload 11
lconst_0
lcmp
iflt 13
10: aload 0
iload 7
i2l
lload 11
ladd
iload 1
i2l
iload 6
i2l
lmul
ladd
aload 5
aload 8
invokestatic org.graalvm.compiler.nodes.extended.UnsafeLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)Ljava/lang/Object;
astore 14
start local 14 11: aload 2
iload 7
lload 11
iload 3
i2l
iload 6
i2l
lmul
ladd
aload 14
aload 8
aload 5
invokestatic org.graalvm.compiler.replacements.nodes.DirectObjectStoreNode.storeObject:(Ljava/lang/Object;IJLjava/lang/Object;Lorg/graalvm/compiler/core/common/LocationIdentity;Ljdk/vm/ci/meta/JavaKind;)V
12: lload 11
iload 6
i2l
lsub
lstore 11
end local 14 13: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
14: iload 13
iload 4
if_icmplt 9
end local 13 end local 11 end local 9 15: goto 27
16: StackMap locals:
StackMap stack:
iload 4
i2l
iload 6
i2l
lmul
lstore 9
start local 9 17: lconst_0
lstore 11
start local 11 18: invokestatic org.graalvm.compiler.replacements.nodes.ExplodeLoopNode.explodeLoop:()V
19: iconst_0
istore 13
start local 13 20: goto 26
21: StackMap locals: long long int
StackMap stack:
lload 11
lload 9
lcmp
ifge 25
22: aload 0
iload 7
i2l
lload 11
ladd
iload 1
i2l
iload 6
i2l
lmul
ladd
aload 5
aload 8
invokestatic org.graalvm.compiler.nodes.extended.UnsafeLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)Ljava/lang/Object;
astore 14
start local 14 23: aload 2
iload 7
lload 11
iload 3
i2l
iload 6
i2l
lmul
ladd
aload 14
aload 8
aload 5
invokestatic org.graalvm.compiler.replacements.nodes.DirectObjectStoreNode.storeObject:(Ljava/lang/Object;IJLjava/lang/Object;Lorg/graalvm/compiler/core/common/LocationIdentity;Ljdk/vm/ci/meta/JavaKind;)V
24: lload 11
iload 6
i2l
ladd
lstore 11
end local 14 25: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
26: iload 13
iload 4
if_icmplt 21
end local 13 end local 11 end local 9 27: StackMap locals:
StackMap stack:
return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 nonNullSrc Ljava/lang/Object;
0 28 1 srcPos I
0 28 2 nonNullDest Ljava/lang/Object;
0 28 3 destPos I
0 28 4 length I
0 28 5 elementKind Ljdk/vm/ci/meta/JavaKind;
1 28 6 scale I
2 28 7 arrayBaseOffset I
3 28 8 arrayLocation Lorg/graalvm/compiler/core/common/LocationIdentity;
5 15 9 start J
6 15 11 i J
8 15 13 iteration I
11 13 14 a Ljava/lang/Object;
17 27 9 end J
18 27 11 i J
20 27 13 iteration I
23 25 14 a Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
4:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
5:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
nonNullSrc
srcPos
nonNullDest
destPos
length
elementKind
static void createArraycopyCounter(jdk.vm.ci.meta.JavaKind);
descriptor: (Ljdk/vm/ci/meta/JavaKind;)V
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=1, args_size=1
start local 0 0: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.arraycopyCallCounters:Ljava/util/EnumMap;
aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.counters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "[]{stub}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc "arraycopy call for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "[] arrays"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.arraycopyCounters:Ljava/util/EnumMap;
aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.counters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "[]{inline}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc "inline arraycopy for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "[] arrays"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.arraycopyCallCopiedCounters:Ljava/util/EnumMap;
aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.copiedCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "[]{stub}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc "arraycopy call for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "[] arrays"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.arraycopyCopiedCounters:Ljava/util/EnumMap;
aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.copiedCounters:Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "[]{inline}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc "inline arraycopy for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "[] arrays"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 kind Ljdk/vm/ci/meta/JavaKind;
MethodParameters:
Name Flags
kind
}
SourceFile: "ArrayCopySnippets.java"
NestMembers:
org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates
InnerClasses:
public abstract ConstantParameter = org.graalvm.compiler.api.replacements.Snippet$ConstantParameter of org.graalvm.compiler.api.replacements.Snippet
public Templates = org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates of org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets
public Group = org.graalvm.compiler.replacements.SnippetCounter$Group of org.graalvm.compiler.replacements.SnippetCounter
public abstract SnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate