public class org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters
super_class: java.lang.Object
{
public final org.graalvm.compiler.replacements.SnippetCounter checkSuccessCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.replacements.SnippetCounter checkAIOOBECounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.replacements.SnippetCounter zeroLengthStaticCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.replacements.SnippetIntegerHistogram lengthHistogram;
descriptor: Lorg/graalvm/compiler/replacements/SnippetIntegerHistogram;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.replacements.SnippetCounter systemArraycopyCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.replacements.SnippetCounter systemArraycopyCopiedCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.replacements.SnippetCounter genericArraycopyDifferentTypeCopiedCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.replacements.SnippetCounter genericArraycopyDifferentTypeCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.replacements.SnippetCounter objectCheckcastSameTypeCopiedCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.replacements.SnippetCounter objectCheckcastSameTypeCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.replacements.SnippetCounter objectCheckcastDifferentTypeCopiedCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.replacements.SnippetCounter objectCheckcastDifferentTypeCounter;
descriptor: Lorg/graalvm/compiler/replacements/SnippetCounter;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final java.util.EnumMap<jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.replacements.SnippetCounter> arraycopyCallCounters;
descriptor: Ljava/util/EnumMap;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Signature: Ljava/util/EnumMap<Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter;>;
public final java.util.EnumMap<jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.replacements.SnippetCounter> arraycopyCallCopiedCounters;
descriptor: Ljava/util/EnumMap;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Signature: Ljava/util/EnumMap<Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter;>;
void <init>(org.graalvm.compiler.replacements.SnippetCounter$Group$Factory);
descriptor: (Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;)V
flags: (0x0000)
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.EnumMap
dup
ldc Ljdk/vm/ci/meta/JavaKind;
invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.arraycopyCallCounters:Ljava/util/EnumMap;
2: aload 0
new java.util.EnumMap
dup
ldc Ljdk/vm/ci/meta/JavaKind;
invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.arraycopyCallCopiedCounters:Ljava/util/EnumMap;
3: aload 1
ldc "System.arraycopy checkInputs"
invokeinterface org.graalvm.compiler.replacements.SnippetCounter$Group$Factory.createSnippetCounterGroup:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
astore 2
start local 2 4: aload 1
ldc "System.arraycopy calls"
invokeinterface org.graalvm.compiler.replacements.SnippetCounter$Group$Factory.createSnippetCounterGroup:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
astore 3
start local 3 5: aload 1
ldc "System.arraycopy copied elements"
invokeinterface org.graalvm.compiler.replacements.SnippetCounter$Group$Factory.createSnippetCounterGroup:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
astore 4
start local 4 6: aload 1
ldc "System.arraycopy with 0-length"
invokeinterface org.graalvm.compiler.replacements.SnippetCounter$Group$Factory.createSnippetCounterGroup:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
astore 5
start local 5 7: aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 2
ldc "checkSuccess"
ldc "checkSuccess"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.checkSuccessCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
8: aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 2
ldc "checkAIOOBE"
ldc "checkAIOOBE"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.checkAIOOBECounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
9: aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 5
ldc "0-length copy static"
ldc "calls 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
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.zeroLengthStaticCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
10: aload 0
new org.graalvm.compiler.replacements.SnippetIntegerHistogram
dup
aload 5
iconst_2
ldc "length"
ldc "length"
invokespecial org.graalvm.compiler.replacements.SnippetIntegerHistogram.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;ILjava/lang/String;Ljava/lang/String;)V
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.lengthHistogram:Lorg/graalvm/compiler/replacements/SnippetIntegerHistogram;
11: aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 3
ldc "native System.arraycopy"
ldc "JNI-based System.arraycopy call"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.systemArraycopyCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
12: aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 4
ldc "native System.arraycopy"
ldc "JNI-based System.arraycopy call"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.systemArraycopyCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
13: aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 3
ldc "generic[] stub"
ldc "generic arraycopy stub"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.genericArraycopyDifferentTypeCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
14: aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 4
ldc "generic[] stub"
ldc "generic arraycopy stub"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.genericArraycopyDifferentTypeCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
15: aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 3
ldc "checkcast object[] (same-type)"
ldc "checkcast object[] stub but 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
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.objectCheckcastSameTypeCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
16: aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 4
ldc "checkcast object[] (same-type)"
ldc "checkcast object[] stub but 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
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.objectCheckcastSameTypeCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
17: aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 3
ldc "checkcast object[] (store-check)"
ldc "checkcast object[] stub with store check"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.objectCheckcastDifferentTypeCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
18: aload 0
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 4
ldc "checkcast object[] (store-check)"
ldc "checkcast object[] stub with store check"
invokespecial org.graalvm.compiler.replacements.SnippetCounter.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Ljava/lang/String;Ljava/lang/String;)V
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.objectCheckcastDifferentTypeCopiedCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
19: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
aload 3
aload 4
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;)V
20: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
aload 3
aload 4
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;)V
21: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
aload 3
aload 4
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;)V
22: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
aload 3
aload 4
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;)V
23: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
aload 3
aload 4
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;)V
24: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
aload 3
aload 4
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;)V
25: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
aload 3
aload 4
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;)V
26: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
aload 3
aload 4
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;)V
27: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
aload 3
aload 4
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.createArraycopyCounter:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;)V
28: return
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 29 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Counters;
0 29 1 factory Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;
4 29 2 checkCounters Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
5 29 3 callCounters Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
6 29 4 copiedElementsCounters Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
7 29 5 lengthCounters Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
MethodParameters:
Name Flags
factory
void createArraycopyCounter(jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.replacements.SnippetCounter$Group, org.graalvm.compiler.replacements.SnippetCounter$Group);
descriptor: (Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;Lorg/graalvm/compiler/replacements/SnippetCounter$Group;)V
flags: (0x0000)
Code:
stack=9, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.arraycopyCallCounters:Ljava/util/EnumMap;
aload 1
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 2
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
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 1
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: aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.arraycopyCallCopiedCounters:Ljava/util/EnumMap;
aload 1
new org.graalvm.compiler.replacements.SnippetCounter
dup
aload 3
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
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 1
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: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Counters;
0 3 1 kind Ljdk/vm/ci/meta/JavaKind;
0 3 2 counters Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
0 3 3 copiedCounters Lorg/graalvm/compiler/replacements/SnippetCounter$Group;
MethodParameters:
Name Flags
kind
counters
copiedCounters
}
SourceFile: "ArrayCopySnippets.java"
NestHost: org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets
InnerClasses:
public Group = org.graalvm.compiler.replacements.SnippetCounter$Group of org.graalvm.compiler.replacements.SnippetCounter
public abstract Factory = org.graalvm.compiler.replacements.SnippetCounter$Group$Factory of org.graalvm.compiler.replacements.SnippetCounter$Group
protected Counters = org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters of org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets