final class org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen extends com.oracle.truffle.api.nodes.Node
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen
super_class: com.oracle.truffle.api.nodes.Node
{
private org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData cached;
descriptor: Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen this
0: .line 81
aload 0 /* this */
invokespecial com.oracle.truffle.api.nodes.Node.<init>:()V
return
end local 0 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen;
public java.lang.Object execute(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen this
start local 1 // java.lang.Object arg0Value
0: .line 87
aload 1 /* arg0Value */
instanceof org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType
ifeq 8
1: .line 88
aload 1 /* arg0Value */
checkcast org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType
astore 2 /* arg0Value0 */
start local 2 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType arg0Value0
2: .line 89
aload 0 /* this */
getfield org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen.cached:Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData;
astore 3 /* s1 */
start local 3 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData s1
3: .line 90
goto 7
4: .line 91
StackMap locals: org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData
StackMap stack:
aload 2 /* arg0Value0 */
aload 3 /* s1 */
getfield org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData.cachedOperand:Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$AbstractType;
if_acmpne 6
5: .line 92
aload 3 /* s1 */
getfield org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData.cachedOperand:Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$AbstractType;
invokevirtual org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType.someMethod:()Ljava/lang/Object;
areturn
6: .line 94
StackMap locals:
StackMap stack:
aload 3 /* s1 */
getfield org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData.next:Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData;
astore 3 /* s1 */
7: .line 90
StackMap locals:
StackMap stack:
aload 3 /* s1 */
ifnonnull 4
end local 3 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData s1
end local 2 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType arg0Value0
8: .line 97
StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
9: .line 98
aload 0 /* this */
aload 1 /* arg0Value */
invokevirtual org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen.executeAndSpecialize:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 // java.lang.Object arg0Value
end local 0 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen;
0 10 1 arg0Value Ljava/lang/Object;
2 8 2 arg0Value0 Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$AbstractType;
3 8 3 s1 Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop(kind = com.oracle.truffle.api.nodes.ExplodeLoop$LoopExplosionKind.FULL_EXPLODE_UNTIL_RETURN:Lcom/oracle/truffle/api/nodes/ExplodeLoop$LoopExplosionKind;)
MethodParameters:
Name Flags
arg0Value
private synchronized java.lang.Object executeAndSpecialize(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=5, locals=5, args_size=2
start local 0 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen this
start local 1 // java.lang.Object arg0Value
0: .line 102
aload 1 /* arg0Value */
instanceof org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType
ifeq 7
1: .line 103
aload 1 /* arg0Value */
checkcast org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType
astore 2 /* arg0Value0 */
start local 2 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType arg0Value0
2: .line 104
aload 0 /* this */
getfield org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen.cached:Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData;
astore 3 /* s1 */
start local 3 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData s1
3: .line 105
aload 2 /* arg0Value0 */
astore 4 /* cachedOperand */
start local 4 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType cachedOperand
4: .line 106
new org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData
dup
aload 0 /* this */
getfield org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen.cached:Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData;
aload 4 /* cachedOperand */
invokespecial org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData.<init>:(Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData;Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$AbstractType;)V
astore 3 /* s1 */
5: .line 107
aload 0 /* this */
aload 3 /* s1 */
putfield org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen.cached:Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData;
6: .line 108
aload 3 /* s1 */
getfield org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData.cachedOperand:Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$AbstractType;
invokevirtual org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType.someMethod:()Ljava/lang/Object;
areturn
end local 4 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType cachedOperand
end local 3 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData s1
end local 2 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType arg0Value0
7: .line 110
StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
8: .line 111
new com.oracle.truffle.api.dsl.UnsupportedSpecializationException
dup
aload 0 /* this */
iconst_0
anewarray com.oracle.truffle.api.nodes.Node
iconst_0
anewarray java.lang.Object
invokespecial com.oracle.truffle.api.dsl.UnsupportedSpecializationException.<init>:(Lcom/oracle/truffle/api/nodes/Node;[Lcom/oracle/truffle/api/nodes/Node;[Ljava/lang/Object;)V
athrow
end local 1 // java.lang.Object arg0Value
end local 0 // org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen;
0 9 1 arg0Value Ljava/lang/Object;
2 7 2 arg0Value0 Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$AbstractType;
3 7 3 s1 Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData;
4 7 4 cachedOperand Lorg/graalvm/compiler/truffle/test/ExplodeLoopBlockDuplicationTest$AbstractType;
MethodParameters:
Name Flags
arg0Value
}
SourceFile: "ExplodeLoopBlockDuplicationTest.java"
NestHost: org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public final LoopExplosionKind = com.oracle.truffle.api.nodes.ExplodeLoop$LoopExplosionKind of com.oracle.truffle.api.nodes.ExplodeLoop
private abstract AbstractType = org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$AbstractType of org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest
private final ObjectCacheTestNodeGen = org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen of org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest
private final CachedData = org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen$CachedData of org.graalvm.compiler.truffle.test.ExplodeLoopBlockDuplicationTest$ObjectCacheTestNodeGen