public class org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode extends org.graalvm.compiler.truffle.test.nodes.AbstractTestNode
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode
super_class: org.graalvm.compiler.truffle.test.nodes.AbstractTestNode
{
private final com.oracle.truffle.api.Assumption assumption;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int counter;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private com.oracle.truffle.api.nodes.Node childNode;
descriptor: Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
public void <init>(com.oracle.truffle.api.Assumption);
descriptor: (Lcom/oracle/truffle/api/Assumption;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode this
start local 1 // com.oracle.truffle.api.Assumption assumption
0: .line 40
aload 0 /* this */
invokespecial org.graalvm.compiler.truffle.test.nodes.AbstractTestNode.<init>:()V
1: .line 41
aload 0 /* this */
aload 1 /* assumption */
putfield org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.assumption:Lcom/oracle/truffle/api/Assumption;
2: .line 42
aload 0 /* this */
iconst_0
putfield org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.counter:I
3: .line 43
return
end local 1 // com.oracle.truffle.api.Assumption assumption
end local 0 // org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/truffle/test/nodes/AssumptionCutsBranchTestNode;
0 4 1 assumption Lcom/oracle/truffle/api/Assumption;
MethodParameters:
Name Flags
assumption
public int execute(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=2
start local 0 // org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode this
start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
0: .line 47
iconst_0
istore 2 /* returnVal */
start local 2 // int returnVal
1: .line 48
aload 0 /* this */
getfield org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.assumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 25
2: .line 50
ldc "this branch should be cut off"
invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
3: .line 53
dconst_0
dstore 3 /* sum */
start local 3 // double sum
4: .line 55
invokestatic java.lang.Math.random:()D
ldc 0.5
dcmpg
ifge 21
5: .line 56
iconst_0
istore 5 /* iSum */
start local 5 // int iSum
6: .line 57
iconst_0
istore 6 /* i */
start local 6 // int i
7: goto 14
8: .line 58
StackMap locals: org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode com.oracle.truffle.api.frame.VirtualFrame int double int int
StackMap stack:
invokestatic java.lang.Math.random:()D
ldc 0.5
dcmpl
ifle 11
9: .line 59
dload 3 /* sum */
invokestatic java.lang.Math.random:()D
invokestatic java.lang.Math.cos:(D)D
dadd
dstore 3 /* sum */
10: .line 60
goto 12
11: .line 61
StackMap locals:
StackMap stack:
dload 3 /* sum */
invokestatic java.lang.Math.random:()D
invokestatic java.lang.Math.sin:(D)D
dadd
dstore 3 /* sum */
12: .line 63
StackMap locals:
StackMap stack:
iload 5 /* iSum */
iload 6 /* i */
iconst_2
imul
iadd
istore 5 /* iSum */
13: .line 57
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
14: iload 6 /* i */
bipush 100
if_icmplt 8
end local 6 // int i
15: .line 65
new org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode
dup
aload 0 /* this */
getfield org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.assumption:Lcom/oracle/truffle/api/Assumption;
invokespecial org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.<init>:(Lcom/oracle/truffle/api/Assumption;)V
astore 6 /* node2 */
start local 6 // org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode node2
16: .line 66
aload 6 /* node2 */
invokevirtual org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.adoptChildren:()V
17: .line 67
aload 0 /* this */
aload 6 /* node2 */
invokevirtual org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.copy:()Lcom/oracle/truffle/api/nodes/Node;
putfield org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.childNode:Lcom/oracle/truffle/api/nodes/Node;
18: .line 69
iload 5 /* iSum */
iconst_2
irem
ifeq 22
19: .line 71
aload 0 /* this */
getfield org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.assumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
end local 6 // org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode node2
end local 5 // int iSum
20: .line 73
goto 22
21: .line 74
StackMap locals:
StackMap stack:
invokestatic java.lang.Math.random:()D
dstore 3 /* sum */
22: .line 77
StackMap locals:
StackMap stack:
dload 3 /* sum */
invokestatic java.lang.Math.round:(D)J
ldc 100
lrem
lconst_0
lcmp
ifne 23
aload 0 /* this */
getfield org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.childNode:Lcom/oracle/truffle/api/nodes/Node;
invokevirtual com.oracle.truffle.api.nodes.Node.toString:()Ljava/lang/String;
ldc "a"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 23
sipush 666
goto 24
StackMap locals:
StackMap stack:
23: sipush 777
StackMap locals:
StackMap stack: int
24: ireturn
end local 3 // double sum
25: .line 78
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.counter:I
iconst_2
irem
ifne 27
26: .line 79
iinc 2 /* returnVal */ 1
27: .line 81
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
getfield org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.counter:I
iconst_1
iadd
putfield org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.counter:I
28: .line 82
iload 2 /* returnVal */
iconst_2
irem
ifne 29
iload 2 /* returnVal */
goto 30
StackMap locals:
StackMap stack:
29: iconst_0
StackMap locals:
StackMap stack: int
30: ireturn
end local 2 // int returnVal
end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
end local 0 // org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode this
LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/graalvm/compiler/truffle/test/nodes/AssumptionCutsBranchTestNode;
0 31 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 31 2 returnVal I
4 25 3 sum D
6 20 5 iSum I
7 15 6 i I
16 20 6 node2 Lorg/graalvm/compiler/truffle/test/nodes/AssumptionCutsBranchTestNode;
MethodParameters:
Name Flags
frame
public com.oracle.truffle.api.nodes.Node getChildNode();
descriptor: ()Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode this
0: .line 86
aload 0 /* this */
getfield org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode.childNode:Lcom/oracle/truffle/api/nodes/Node;
areturn
end local 0 // org.graalvm.compiler.truffle.test.nodes.AssumptionCutsBranchTestNode this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/truffle/test/nodes/AssumptionCutsBranchTestNode;
}
SourceFile: "AssumptionCutsBranchTestNode.java"
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.NodeInfo()