public final class com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter
super_class: java.lang.Object
{
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
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 Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter;
public static void print(com.oracle.graal.pointsto.BigBang, com.oracle.graal.pointsto.meta.AnalysisMethod);
descriptor: (Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokestatic com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter.print:(Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/io/PrintStream;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 bb Lcom/oracle/graal/pointsto/BigBang;
0 2 1 target Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
MethodParameters:
Name Flags
bb
target
public static void print(com.oracle.graal.pointsto.BigBang, com.oracle.graal.pointsto.meta.AnalysisMethod, java.io.PrintStream);
descriptor: (Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/io/PrintStream;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=12, args_size=3
start local 0 start local 1 start local 2 0: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 3
start local 3 1: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 4
start local 4 2: aload 0
invokevirtual com.oracle.graal.pointsto.BigBang.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.getMethods:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 7
StackMap locals: com.oracle.graal.pointsto.BigBang com.oracle.graal.pointsto.meta.AnalysisMethod java.io.PrintStream java.util.Deque java.util.Map top java.util.Iterator
StackMap stack:
3: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
astore 5
start local 5 4: aload 5
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.isEntryPoint:()Z
ifeq 7
5: aload 3
aload 5
invokeinterface java.util.Deque.addLast:(Ljava/lang/Object;)V
6: aload 4
aload 5
new com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element
dup
aload 5
aconst_null
aconst_null
invokespecial com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element.<init>:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter$Element;Lcom/oracle/graal/pointsto/flow/InvokeTypeFlow;)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 7: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: goto 26
9: StackMap locals: com.oracle.graal.pointsto.BigBang com.oracle.graal.pointsto.meta.AnalysisMethod java.io.PrintStream java.util.Deque java.util.Map
StackMap stack:
aload 3
invokeinterface java.util.Deque.removeFirst:()Ljava/lang/Object;
checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
astore 5
start local 5 10: aload 4
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element
astore 6
start local 6 11: getstatic com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter.$assertionsDisabled:Z
ifne 12
aload 6
ifnonnull 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals: com.oracle.graal.pointsto.meta.AnalysisMethod com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element
StackMap stack:
aload 5
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.getTypeFlow:()Lcom/oracle/graal/pointsto/flow/MethodTypeFlow;
invokevirtual com.oracle.graal.pointsto.flow.MethodTypeFlow.getInvokes:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 8
goto 25
StackMap locals: com.oracle.graal.pointsto.BigBang com.oracle.graal.pointsto.meta.AnalysisMethod java.io.PrintStream java.util.Deque java.util.Map com.oracle.graal.pointsto.meta.AnalysisMethod com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element top java.util.Iterator
StackMap stack:
13: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.graal.pointsto.flow.InvokeTypeFlow
astore 7
start local 7 14: aload 7
invokevirtual com.oracle.graal.pointsto.flow.InvokeTypeFlow.getCallees:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 10
goto 24
StackMap locals: com.oracle.graal.pointsto.BigBang com.oracle.graal.pointsto.meta.AnalysisMethod java.io.PrintStream java.util.Deque java.util.Map com.oracle.graal.pointsto.meta.AnalysisMethod com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element com.oracle.graal.pointsto.flow.InvokeTypeFlow java.util.Iterator top java.util.Iterator
StackMap stack:
15: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
astore 9
start local 9 16: aload 4
aload 9
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 18
17: goto 24
18: StackMap locals: com.oracle.graal.pointsto.BigBang com.oracle.graal.pointsto.meta.AnalysisMethod java.io.PrintStream java.util.Deque java.util.Map com.oracle.graal.pointsto.meta.AnalysisMethod com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element com.oracle.graal.pointsto.flow.InvokeTypeFlow java.util.Iterator com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Iterator
StackMap stack:
new com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element
dup
aload 9
aload 6
aload 7
invokespecial com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element.<init>:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter$Element;Lcom/oracle/graal/pointsto/flow/InvokeTypeFlow;)V
astore 11
start local 11 19: aload 4
aload 9
aload 11
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: aload 9
aload 1
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.equals:(Ljava/lang/Object;)Z
ifeq 23
21: aload 11
aload 2
invokestatic com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter.printPath:(Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter$Element;Ljava/io/PrintStream;)V
22: return
23: StackMap locals: com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element
StackMap stack:
aload 3
aload 9
invokeinterface java.util.Deque.addLast:(Ljava/lang/Object;)V
end local 11 end local 9 24: StackMap locals: com.oracle.graal.pointsto.BigBang com.oracle.graal.pointsto.meta.AnalysisMethod java.io.PrintStream java.util.Deque java.util.Map com.oracle.graal.pointsto.meta.AnalysisMethod com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element com.oracle.graal.pointsto.flow.InvokeTypeFlow java.util.Iterator top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
end local 7 25: StackMap locals: com.oracle.graal.pointsto.BigBang com.oracle.graal.pointsto.meta.AnalysisMethod java.io.PrintStream java.util.Deque java.util.Map com.oracle.graal.pointsto.meta.AnalysisMethod com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
end local 6 end local 5 26: StackMap locals: com.oracle.graal.pointsto.BigBang com.oracle.graal.pointsto.meta.AnalysisMethod java.io.PrintStream java.util.Deque java.util.Map
StackMap stack:
aload 3
invokeinterface java.util.Deque.size:()I
ifgt 9
27: aload 2
invokestatic com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter.printNoPath:(Ljava/io/PrintStream;)V
28: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 bb Lcom/oracle/graal/pointsto/BigBang;
0 29 1 target Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
0 29 2 out Ljava/io/PrintStream;
1 29 3 workList Ljava/util/Deque<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
2 29 4 visited Ljava/util/Map<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter$Element;>;
4 7 5 m Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
10 26 5 method Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
11 26 6 methodElement Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter$Element;
14 25 7 invoke Lcom/oracle/graal/pointsto/flow/InvokeTypeFlow;
16 24 9 callee Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
19 24 11 calleeElement Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter$Element;
MethodParameters:
Name Flags
bb
target
out
private static void printPath(com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element, java.io.PrintStream);
descriptor: (Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter$Element;Ljava/io/PrintStream;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
astore 2
start local 2 1: aload 1
new java.lang.StringBuilder
dup
ldc "\tat "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
getfield com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element.method:Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
iconst_0
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.asStackTraceElement:(I)Ljava/lang/StackTraceElement;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
2: goto 6
3: StackMap locals: com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element
StackMap stack:
aload 2
getfield com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element.invoke:Lcom/oracle/graal/pointsto/flow/InvokeTypeFlow;
invokevirtual com.oracle.graal.pointsto.flow.InvokeTypeFlow.getSource:()Ljava/lang/Object;
checkcast jdk.vm.ci.code.BytecodePosition
astore 3
start local 3 4: aload 1
new java.lang.StringBuilder
dup
ldc "\n\tat "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual jdk.vm.ci.code.BytecodePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
aload 3
invokevirtual jdk.vm.ci.code.BytecodePosition.getBCI:()I
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.asStackTraceElement:(I)Ljava/lang/StackTraceElement;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
5: aload 2
getfield com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element.parent:Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter$Element;
astore 2
end local 3 6: StackMap locals:
StackMap stack:
aload 2
getfield com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element.parent:Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter$Element;
ifnonnull 3
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 start Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter$Element;
0 8 1 out Ljava/io/PrintStream;
1 8 2 cur Lcom/oracle/graal/pointsto/constraints/ShortestInvokeChainPrinter$Element;
4 6 3 source Ljdk/vm/ci/code/BytecodePosition;
MethodParameters:
Name Flags
start
out
private static void printNoPath(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "\tno path found from entry point to target method"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 out Ljava/io/PrintStream;
MethodParameters:
Name Flags
out
}
SourceFile: "ShortestInvokeChainPrinter.java"
NestMembers:
com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element
InnerClasses:
Element = com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter$Element of com.oracle.graal.pointsto.constraints.ShortestInvokeChainPrinter