public class org.graalvm.compiler.replacements.test.StringCompareToTest extends org.graalvm.compiler.replacements.test.StringSubstitutionTestBase
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.replacements.test.StringCompareToTest
super_class: org.graalvm.compiler.replacements.test.StringSubstitutionTestBase
{
private static final int EXPECT_NODE_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final java.lang.String DISABLE_COMPACTSTRINGS_FLAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "-XX:-CompactStrings"
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.<init>:()V
1: aload 0
2: aload 0
ldc Ljava/lang/String;
ldc "compareTo"
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
invokevirtual org.graalvm.compiler.replacements.test.StringCompareToTest.getResolvedJavaMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
3: aload 0
ldc "stringCompareTo"
invokevirtual org.graalvm.compiler.replacements.test.StringCompareToTest.getResolvedJavaMethod:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
4: ldc Lorg/graalvm/compiler/replacements/nodes/ArrayCompareToNode;
5: invokevirtual org.graalvm.compiler.replacements.test.StringCompareToTest.initSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Class;)V
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/replacements/test/StringCompareToTest;
private int countNode(jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Class<?>, org.graalvm.compiler.options.OptionValues);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Class;Lorg/graalvm/compiler/options/OptionValues;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 3
invokevirtual org.graalvm.compiler.replacements.test.StringCompareToTest.parseForCompile:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 4
start local 4 1: aload 0
aload 4
invokevirtual org.graalvm.compiler.replacements.test.StringCompareToTest.applyFrontEnd:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
2: iconst_0
istore 5
start local 5 3: aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 7
goto 7
StackMap locals: org.graalvm.compiler.replacements.test.StringCompareToTest jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Class org.graalvm.compiler.options.OptionValues org.graalvm.compiler.nodes.StructuredGraph int top java.util.Iterator
StackMap stack:
4: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 6
start local 6 5: aload 2
aload 6
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 7
6: iinc 5 1
end local 6 7: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: iload 5
ireturn
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 this Lorg/graalvm/compiler/replacements/test/StringCompareToTest;
0 9 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 9 2 expectedNode Ljava/lang/Class<*>;
0 9 3 options Lorg/graalvm/compiler/options/OptionValues;
1 9 4 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
3 9 5 c I
5 7 6 node Lorg/graalvm/compiler/graph/Node;
Signature: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Class<*>;Lorg/graalvm/compiler/options/OptionValues;)I
MethodParameters:
Name Flags
method
expectedNode
options
protected void initSubstitution(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Class<?>);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Class;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.graalvm.compiler.replacements.test.StringCompareToTest.getTarget:()Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
instanceof jdk.vm.ci.amd64.AMD64
ifne 1
aload 0
invokevirtual org.graalvm.compiler.replacements.test.StringCompareToTest.getTarget:()Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
instanceof jdk.vm.ci.aarch64.AArch64
ifne 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: invokestatic org.junit.Assume.assumeTrue:(Z)V
3: aload 0
aload 1
putfield org.graalvm.compiler.replacements.test.StringCompareToTest.realMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
4: aload 0
aload 2
putfield org.graalvm.compiler.replacements.test.StringCompareToTest.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
5: aload 0
aload 0
getfield org.graalvm.compiler.replacements.test.StringCompareToTest.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
invokevirtual org.graalvm.compiler.replacements.test.StringCompareToTest.testGraph:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 4
start local 4 6: aload 0
invokevirtual org.graalvm.compiler.replacements.test.StringCompareToTest.getReplacements:()Lorg/graalvm/compiler/nodes/spi/Replacements;
aload 0
getfield org.graalvm.compiler.replacements.test.StringCompareToTest.realMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
iconst_0
getstatic org.graalvm.compiler.nodes.Invoke$InlineControl.Normal:Lorg/graalvm/compiler/nodes/Invoke$InlineControl;
iconst_0
aconst_null
aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.allowAssumptions:()Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;
aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
invokeinterface org.graalvm.compiler.nodes.spi.Replacements.getInlineSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/nodes/Invoke$InlineControl;ZLorg/graalvm/compiler/graph/NodeSourcePosition;Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 5
start local 5 7: aload 5
ifnonnull 9
8: aload 4
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 3
aastore
invokestatic org.graalvm.compiler.replacements.test.StringCompareToTest.assertInGraph:(Lorg/graalvm/compiler/nodes/StructuredGraph;[Ljava/lang/Class;)Lorg/graalvm/compiler/nodes/StructuredGraph;
pop
9: StackMap locals: org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.StructuredGraph
StackMap stack:
iconst_1
istore 7
start local 7 10: getstatic org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC:I
bipush 8
if_icmpgt 13
11: iconst_0
istore 7
12: goto 22
13: StackMap locals: org.graalvm.compiler.replacements.test.StringCompareToTest jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Class org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.StructuredGraph top int
StackMap stack:
invokestatic org.graalvm.compiler.serviceprovider.GraalServices.getInputArguments:()Ljava/util/List;
astore 8
start local 8 14: aload 8
ifnull 15
iconst_1
goto 16
StackMap locals: java.util.List
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: invokestatic org.junit.Assume.assumeTrue:(Z)V
17: aload 8
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 21
StackMap locals: org.graalvm.compiler.replacements.test.StringCompareToTest jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Class org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.StructuredGraph top int java.util.List top java.util.Iterator
StackMap stack:
18: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 19: aload 9
ldc "-XX:-CompactStrings"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 21
20: iconst_0
istore 7
end local 9 21: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
end local 8 22: StackMap locals: org.graalvm.compiler.replacements.test.StringCompareToTest jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Class org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.StructuredGraph top int
StackMap stack:
iload 7
ifeq 26
23: new org.graalvm.compiler.options.OptionValues
dup
invokestatic org.graalvm.compiler.replacements.test.StringCompareToTest.getInitialOptions:()Lorg/graalvm/compiler/options/OptionValues;
getstatic org.graalvm.compiler.core.common.GraalOptions.RemoveNeverExecutedCode:Lorg/graalvm/compiler/options/OptionKey;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Object
invokespecial org.graalvm.compiler.options.OptionValues.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/Object;[Ljava/lang/Object;)V
astore 6
start local 6 24: ldc 4
aload 0
aload 0
getfield org.graalvm.compiler.replacements.test.StringCompareToTest.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
aload 3
aload 6
invokevirtual org.graalvm.compiler.replacements.test.StringCompareToTest.countNode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Class;Lorg/graalvm/compiler/options/OptionValues;)I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
25: goto 27
end local 6 26: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.replacements.test.StringCompareToTest.getInitialOptions:()Lorg/graalvm/compiler/options/OptionValues;
astore 6
start local 6 27: StackMap locals: org.graalvm.compiler.replacements.test.StringCompareToTest jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Class org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.options.OptionValues int
StackMap stack:
aload 0
aload 0
aload 0
getfield org.graalvm.compiler.replacements.test.StringCompareToTest.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
aload 6
invokevirtual org.graalvm.compiler.replacements.test.StringCompareToTest.getCode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/options/OptionValues;)Ljdk/vm/ci/code/InstalledCode;
putfield org.graalvm.compiler.replacements.test.StringCompareToTest.testCode:Ljdk/vm/ci/code/InstalledCode;
28: aload 0
getfield org.graalvm.compiler.replacements.test.StringCompareToTest.testCode:Ljdk/vm/ci/code/InstalledCode;
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
29: 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 30 0 this Lorg/graalvm/compiler/replacements/test/StringCompareToTest;
0 30 1 theRealMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 30 2 theTestMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 30 3 expectedNode Ljava/lang/Class<*>;
6 30 4 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
7 30 5 replacement Lorg/graalvm/compiler/nodes/StructuredGraph;
24 26 6 options Lorg/graalvm/compiler/options/OptionValues;
27 30 6 options Lorg/graalvm/compiler/options/OptionValues;
10 30 7 needCheckNode Z
14 22 8 vmArgs Ljava/util/List<Ljava/lang/String;>;
19 21 9 vmArg Ljava/lang/String;
Signature: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
theRealMethod
theTestMethod
expectedNode
public static int stringCompareTo(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a Ljava/lang/String;
0 1 1 b Ljava/lang/String;
MethodParameters:
Name Flags
a
b
public void testEqualString();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.testEqualString:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/test/StringCompareToTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testDifferentString();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.testDifferentString:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/test/StringCompareToTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testAllStrings();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.replacements.test.StringSubstitutionTestBase.testAllStrings:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/test/StringCompareToTest;
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "StringCompareToTest.java"
InnerClasses:
public final InlineControl = org.graalvm.compiler.nodes.Invoke$InlineControl of org.graalvm.compiler.nodes.Invoke
public final AllowAssumptions = org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions of org.graalvm.compiler.nodes.StructuredGraph