class org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime$TraceTransferToInterpreterHelper
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime$TraceTransferToInterpreterHelper
super_class: java.lang.Object
{
private static final long THREAD_EETOP_OFFSET;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime.UNSAFE:Lsun/misc/Unsafe;
ldc Ljava/lang/Thread;
ldc "eetop"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime$TraceTransferToInterpreterHelper.THREAD_EETOP_OFFSET:J
1: goto 4
StackMap locals:
StackMap stack: java.lang.Exception
2: astore 0
start local 0 3: new java.lang.InternalError
dup
aload 0
invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 4: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
3 4 0 e Ljava/lang/Exception;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
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/truffle/runtime/hotspot/AbstractHotSpotTruffleRuntime$TraceTransferToInterpreterHelper;
static void traceTransferToInterpreter(org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime, org.graalvm.compiler.truffle.common.hotspot.HotSpotTruffleCompiler);
descriptor: (Lorg/graalvm/compiler/truffle/runtime/hotspot/AbstractHotSpotTruffleRuntime;Lorg/graalvm/compiler/truffle/common/hotspot/HotSpotTruffleCompiler;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime.getCurrentFrame:()Lcom/oracle/truffle/api/frame/FrameInstance;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: return
3: StackMap locals: com.oracle.truffle.api.frame.FrameInstance
StackMap stack:
aload 2
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
astore 3
start local 3 4: getstatic org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime.UNSAFE:Lsun/misc/Unsafe;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
getstatic org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime$TraceTransferToInterpreterHelper.THREAD_EETOP_OFFSET:J
invokevirtual sun.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
lstore 4
start local 4 5: lload 4
aload 1
aload 3
invokeinterface org.graalvm.compiler.truffle.common.hotspot.HotSpotTruffleCompiler.pendingTransferToInterpreterOffset:(Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;)I
i2l
ladd
lstore 6
start local 6 6: getstatic org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime.UNSAFE:Lsun/misc/Unsafe;
lload 6
invokevirtual sun.misc.Unsafe.getByte:(J)B
ifeq 7
iconst_1
goto 8
StackMap locals: org.graalvm.compiler.truffle.runtime.OptimizedCallTarget long long
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 8
start local 8 9: iload 8
ifeq 12
10: aload 0
aload 3
invokestatic org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime$TraceTransferToInterpreterHelper.logTransferToInterpreter:(Lorg/graalvm/compiler/truffle/runtime/hotspot/AbstractHotSpotTruffleRuntime;Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
11: getstatic org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime.UNSAFE:Lsun/misc/Unsafe;
lload 6
iconst_0
invokevirtual sun.misc.Unsafe.putByte:(JB)V
12: StackMap locals: int
StackMap stack:
return
end local 8 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 runtime Lorg/graalvm/compiler/truffle/runtime/hotspot/AbstractHotSpotTruffleRuntime;
0 13 1 compiler Lorg/graalvm/compiler/truffle/common/hotspot/HotSpotTruffleCompiler;
1 13 2 currentFrame Lcom/oracle/truffle/api/frame/FrameInstance;
4 13 3 callTarget Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
5 13 4 thread J
6 13 6 pendingTransferToInterpreterAddress J
9 13 8 deoptimized Z
MethodParameters:
Name Flags
runtime
compiler
private static java.lang.String formatStackFrame(com.oracle.truffle.api.frame.FrameInstance, com.oracle.truffle.api.CallTarget);
descriptor: (Lcom/oracle/truffle/api/frame/FrameInstance;Lcom/oracle/truffle/api/CallTarget;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 1: aload 1
instanceof com.oracle.truffle.api.RootCallTarget
ifeq 23
2: aload 1
checkcast com.oracle.truffle.api.RootCallTarget
invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 3
start local 3 3: aload 3
invokevirtual com.oracle.truffle.api.nodes.RootNode.getName:()Ljava/lang/String;
astore 4
start local 4 4: aload 4
ifnonnull 7
5: aload 2
ldc "unnamed-root"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: goto 8
7: StackMap locals: java.lang.StringBuilder com.oracle.truffle.api.nodes.RootNode java.lang.String
StackMap stack:
aload 2
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: StackMap locals:
StackMap stack:
aload 0
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 5
start local 5 9: aconst_null
astore 6
start local 6 10: aload 5
ifnull 12
11: aload 5
invokevirtual com.oracle.truffle.api.nodes.Node.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 6
12: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection
StackMap stack:
aload 6
ifnonnull 14
13: aload 3
invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 6
14: StackMap locals:
StackMap stack:
aload 6
ifnull 15
aload 6
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
ifnonnull 17
15: StackMap locals:
StackMap stack:
aload 2
ldc "(Unknown)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: goto 18
17: StackMap locals:
StackMap stack:
aload 2
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokestatic org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime$TraceTransferToInterpreterHelper.formatPath:(Lcom/oracle/truffle/api/source/SourceSection;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
ifeq 24
19: aload 1
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
astore 7
start local 7 20: aload 7
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getSourceCallTarget:()Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
ifnull 24
21: aload 2
new java.lang.StringBuilder
dup
ldc " <split-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.hashCode:()I
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 7 end local 6 end local 5 end local 4 end local 3 22: goto 24
23: StackMap locals: com.oracle.truffle.api.frame.FrameInstance com.oracle.truffle.api.CallTarget java.lang.StringBuilder
StackMap stack:
aload 2
aload 1
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
24: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 frameInstance Lcom/oracle/truffle/api/frame/FrameInstance;
0 25 1 target Lcom/oracle/truffle/api/CallTarget;
1 25 2 builder Ljava/lang/StringBuilder;
3 22 3 root Lcom/oracle/truffle/api/nodes/RootNode;
4 22 4 name Ljava/lang/String;
9 22 5 callNode Lcom/oracle/truffle/api/nodes/Node;
10 22 6 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
20 22 7 callTarget Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
MethodParameters:
Name Flags
frameInstance
target
private static java.lang.String formatPath(com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/source/SourceSection;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
invokevirtual com.oracle.truffle.api.source.Source.getPath:()Ljava/lang/String;
ifnull 6
1: invokestatic java.nio.file.FileSystems.getDefault:()Ljava/nio/file/FileSystem;
ldc "."
iconst_0
anewarray java.lang.String
invokevirtual java.nio.file.FileSystem.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
astore 1
start local 1 2: invokestatic java.nio.file.FileSystems.getDefault:()Ljava/nio/file/FileSystem;
aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
invokevirtual com.oracle.truffle.api.source.Source.getPath:()Ljava/lang/String;
iconst_0
anewarray java.lang.String
invokevirtual java.nio.file.FileSystem.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
astore 2
start local 2 3: aload 1
aload 2
invokeinterface java.nio.file.Path.relativize:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
4: areturn
5: StackMap locals: com.oracle.truffle.api.source.SourceSection java.nio.file.Path java.nio.file.Path
StackMap stack: java.lang.IllegalArgumentException
pop
end local 2 end local 1 6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
2 6 1 path Ljava/nio/file/Path;
3 6 2 filePath Ljava/nio/file/Path;
Exception table:
from to target type
3 4 5 Class java.lang.IllegalArgumentException
MethodParameters:
Name Flags
sourceSection
private static void logTransferToInterpreter(org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime, org.graalvm.compiler.truffle.runtime.OptimizedCallTarget);
descriptor: (Lorg/graalvm/compiler/truffle/runtime/hotspot/AbstractHotSpotTruffleRuntime;Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.TraceStackTraceLimit:Lorg/graalvm/options/OptionKey;
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getOptionValue:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 2
start local 2 1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 3
start local 3 2: aload 3
ldc "transferToInterpreter at\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 0
new org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime$TraceTransferToInterpreterHelper$1
dup
aload 3
iload 2
invokespecial org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime$TraceTransferToInterpreterHelper$1.<init>:(Ljava/lang/StringBuilder;I)V
invokevirtual org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime.iterateFrames:(Lcom/oracle/truffle/api/frame/FrameInstanceVisitor;)Ljava/lang/Object;
pop
4: new java.lang.Throwable
dup
invokespecial java.lang.Throwable.<init>:()V
invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
astore 4
start local 4 5: aload 4
arraylength
iconst_3
iload 2
iadd
if_icmple 6
ldc "\n ..."
goto 7
StackMap locals: int java.lang.StringBuilder java.lang.StackTraceElement[]
StackMap stack:
6: ldc ""
StackMap locals:
StackMap stack: java.lang.String
7: astore 5
start local 5 8: aload 3
aload 4
invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
ldc 3
invokeinterface java.util.stream.Stream.skip:(J)Ljava/util/stream/Stream;
iload 2
i2l
invokeinterface java.util.stream.Stream.limit:(J)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/StackTraceElement.toString()Ljava/lang/String; (5)
(Ljava/lang/StackTraceElement;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
ldc "\n "
ldc " "
aload 5
invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 0
aload 1
aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime.log:(Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/lang/String;)V
10: 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 11 0 runtime Lorg/graalvm/compiler/truffle/runtime/hotspot/AbstractHotSpotTruffleRuntime;
0 11 1 callTarget Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
1 11 2 limit I
2 11 3 messageBuilder Ljava/lang/StringBuilder;
5 11 4 stackTrace [Ljava/lang/StackTraceElement;
8 11 5 suffix Ljava/lang/String;
MethodParameters:
Name Flags
runtime
callTarget
}
SourceFile: "AbstractHotSpotTruffleRuntime.java"
NestHost: org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
private TraceTransferToInterpreterHelper = org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime$TraceTransferToInterpreterHelper of org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime
org.graalvm.compiler.truffle.runtime.hotspot.AbstractHotSpotTruffleRuntime$TraceTransferToInterpreterHelper$1