public final class org.graalvm.compiler.java.BciBlockMapping implements org.graalvm.compiler.debug.JavaMethodContext
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.java.BciBlockMapping
super_class: java.lang.Object
{
private static final int UNASSIGNED_ID;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private org.graalvm.compiler.java.BciBlockMapping$BciBlock[] blocks;
descriptor: [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
flags: (0x0002) ACC_PRIVATE
public final org.graalvm.compiler.bytecode.Bytecode code;
descriptor: Lorg/graalvm/compiler/bytecode/Bytecode;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public boolean hasJsrBytecodes;
descriptor: Z
flags: (0x0001) ACC_PUBLIC
private final jdk.vm.ci.meta.ExceptionHandler[] exceptionHandlers;
descriptor: [Ljdk/vm/ci/meta/ExceptionHandler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.graalvm.compiler.java.BciBlockMapping$BciBlock startBlock;
descriptor: Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.compiler.java.BciBlockMapping$BciBlock[] ;
descriptor: [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
flags: (0x0002) ACC_PRIVATE
private static final int ;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 64
private static final int ;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private int blocksNotYetAssignedId;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final org.graalvm.compiler.debug.DebugContext debug;
descriptor: Lorg/graalvm/compiler/debug/DebugContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int postJsrBlockCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int newDuplicateBlocks;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int duplicateBlocks;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.util.ArrayList<org.graalvm.compiler.java.BciBlockMapping$BciBlock> jsrVisited;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;>;
private int nextLoop;
descriptor: I
flags: (0x0002) ACC_PRIVATE
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 Lorg/graalvm/compiler/java/BciBlockMapping;
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 org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(org.graalvm.compiler.bytecode.Bytecode, org.graalvm.compiler.debug.DebugContext);
descriptor: (Lorg/graalvm/compiler/bytecode/Bytecode;Lorg/graalvm/compiler/debug/DebugContext;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.graalvm.compiler.java.BciBlockMapping.jsrVisited:Ljava/util/ArrayList;
2: aload 0
aload 1
putfield org.graalvm.compiler.java.BciBlockMapping.code:Lorg/graalvm/compiler/bytecode/Bytecode;
3: aload 0
aload 2
putfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
4: aload 0
aload 1
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getExceptionHandlers:()[Ljdk/vm/ci/meta/ExceptionHandler;
putfield org.graalvm.compiler.java.BciBlockMapping.exceptionHandlers:[Ljdk/vm/ci/meta/ExceptionHandler;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 6 1 code Lorg/graalvm/compiler/bytecode/Bytecode;
0 6 2 debug Lorg/graalvm/compiler/debug/DebugContext;
MethodParameters:
Name Flags
code
debug
public org.graalvm.compiler.java.BciBlockMapping$BciBlock[] getBlocks();
descriptor: ()[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
public void build(org.graalvm.compiler.bytecode.BytecodeStream, org.graalvm.compiler.options.OptionValues);
descriptor: (Lorg/graalvm/compiler/bytecode/BytecodeStream;Lorg/graalvm/compiler/options/OptionValues;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.code:Lorg/graalvm/compiler/bytecode/Bytecode;
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getCodeSize:()I
istore 3
start local 3 1: iload 3
anewarray org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 4
start local 4 2: aload 0
aload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping.makeExceptionEntries:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
3: aload 0
aload 4
aload 1
invokevirtual org.graalvm.compiler.java.BciBlockMapping.iterateOverBytecodes:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Lorg/graalvm/compiler/bytecode/BytecodeStream;)V
4: aload 0
aload 4
iconst_0
aaload
putfield org.graalvm.compiler.java.BciBlockMapping.startBlock:Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
5: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_2
invokevirtual org.graalvm.compiler.debug.DebugContext.isDumpEnabled:(I)Z
ifeq 7
6: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_2
aload 0
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.code:Lorg/graalvm/compiler/bytecode/Bytecode;
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
ldc "After iterateOverBytecodes %f %R %H.%n(%P)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
7: StackMap locals: int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.hasJsrBytecodes:Z
ifeq 13
8: getstatic org.graalvm.compiler.core.common.GraalOptions.SupportJsrBytecodes:Lorg/graalvm/compiler/options/OptionKey;
aload 2
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 10
9: new org.graalvm.compiler.java.JsrNotSupportedBailout
dup
ldc "jsr/ret parsing disabled"
invokespecial org.graalvm.compiler.java.JsrNotSupportedBailout.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.startBlock:Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
invokevirtual org.graalvm.compiler.java.BciBlockMapping.createJsrAlternatives:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
11: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_2
invokevirtual org.graalvm.compiler.debug.DebugContext.isDumpEnabled:(I)Z
ifeq 13
12: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_2
aload 0
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.code:Lorg/graalvm/compiler/bytecode/Bytecode;
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
ldc "After createJsrAlternatives %f %R %H.%n(%P)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
13: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
putfield org.graalvm.compiler.java.BciBlockMapping.postJsrBlockCount:I
14: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
ifeq 16
15: aload 0
aload 4
ldc "Before BlockOrder"
invokevirtual org.graalvm.compiler.java.BciBlockMapping.log:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Ljava/lang/String;)V
16: StackMap locals:
StackMap stack:
aload 0
aload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping.computeBlockOrder:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
17: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_2
invokevirtual org.graalvm.compiler.debug.DebugContext.isDumpEnabled:(I)Z
ifeq 19
18: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_2
aload 0
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.code:Lorg/graalvm/compiler/bytecode/Bytecode;
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
ldc "After computeBlockOrder %f %R %H.%n(%P)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
19: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 20
aload 0
invokevirtual org.graalvm.compiler.java.BciBlockMapping.verify:()Z
ifne 20
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
20: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
ifeq 22
21: aload 0
aload 4
ldc "Before LivenessAnalysis"
invokevirtual org.graalvm.compiler.java.BciBlockMapping.log:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Ljava/lang/String;)V
22: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 23 1 stream Lorg/graalvm/compiler/bytecode/BytecodeStream;
0 23 2 options Lorg/graalvm/compiler/options/OptionValues;
1 23 3 codeSize I
2 23 4 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
MethodParameters:
Name Flags
stream
options
private boolean verify();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 11
StackMap locals: org.graalvm.compiler.java.BciBlockMapping top int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 3
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
aload 1
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getId:()I
aaload
aload 1
if_acmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
iconst_0
istore 5
start local 5 4: goto 9
5: StackMap locals: int
StackMap stack:
aload 1
iload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessor:(I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
astore 6
start local 6 6: aload 6
instanceof org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock
ifeq 8
7: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 8
iload 5
aload 1
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessorCount:()I
iconst_1
isub
if_icmpeq 8
new java.lang.AssertionError
dup
ldc "Only one exception handler allowed, and it must be last in successors list"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 6 8: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
aload 1
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessorCount:()I
if_icmplt 5
end local 5 end local 1 10: iinc 2 1
StackMap locals: org.graalvm.compiler.java.BciBlockMapping top int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
11: iload 2
iload 3
if_icmplt 1
12: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
2 10 1 block Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
4 10 5 i I
6 8 6 sux Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
private void makeExceptionEntries(org.graalvm.compiler.java.BciBlockMapping$BciBlock[]);
descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.exceptionHandlers:[Ljdk/vm/ci/meta/ExceptionHandler;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock[] top int int jdk.vm.ci.meta.ExceptionHandler[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 0
aload 1
aload 2
invokevirtual jdk.vm.ci.meta.ExceptionHandler.getHandlerBCI:()I
invokevirtual org.graalvm.compiler.java.BciBlockMapping.makeBlock:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
astore 6
start local 6 3: aload 6
iconst_1
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isExceptionEntry:Z
end local 6 end local 2 4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 7 1 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
2 4 2 h Ljdk/vm/ci/meta/ExceptionHandler;
3 4 6 xhandler Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
MethodParameters:
Name Flags
blockMap
private void iterateOverBytecodes(org.graalvm.compiler.java.BciBlockMapping$BciBlock[], org.graalvm.compiler.bytecode.BytecodeStream);
descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Lorg/graalvm/compiler/bytecode/BytecodeStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 2
iconst_0
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.setBCI:(I)V
2: goto 60
3: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBCI:()I
istore 4
start local 4 4: aload 3
ifnull 5
aload 1
iload 4
aaload
ifnull 9
5: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping.makeBlock:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
astore 5
start local 5 6: aload 3
ifnull 8
7: aload 1
aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.endBci:I
aload 5
invokestatic org.graalvm.compiler.java.BciBlockMapping.addSuccessor:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
8: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock
StackMap stack:
aload 5
astore 3
end local 5 9: StackMap locals:
StackMap stack:
aload 1
iload 4
aload 3
aastore
10: aload 3
iload 4
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.endBci:I
11: aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBC:()I
tableswitch { // 0 - 202
0: 57
1: 57
2: 57
3: 57
4: 57
5: 57
6: 57
7: 57
8: 57
9: 57
10: 57
11: 57
12: 57
13: 57
14: 57
15: 57
16: 57
17: 57
18: 51
19: 51
20: 51
21: 57
22: 57
23: 57
24: 57
25: 57
26: 57
27: 57
28: 57
29: 57
30: 57
31: 57
32: 57
33: 57
34: 57
35: 57
36: 57
37: 57
38: 57
39: 57
40: 57
41: 57
42: 57
43: 57
44: 57
45: 57
46: 51
47: 51
48: 51
49: 51
50: 51
51: 51
52: 51
53: 51
54: 57
55: 57
56: 57
57: 57
58: 57
59: 57
60: 57
61: 57
62: 57
63: 57
64: 57
65: 57
66: 57
67: 57
68: 57
69: 57
70: 57
71: 57
72: 57
73: 57
74: 57
75: 57
76: 57
77: 57
78: 57
79: 51
80: 51
81: 51
82: 51
83: 51
84: 51
85: 51
86: 51
87: 57
88: 57
89: 57
90: 57
91: 57
92: 57
93: 57
94: 57
95: 57
96: 57
97: 57
98: 57
99: 57
100: 57
101: 57
102: 57
103: 57
104: 57
105: 57
106: 57
107: 57
108: 51
109: 51
110: 57
111: 57
112: 51
113: 51
114: 57
115: 57
116: 57
117: 57
118: 57
119: 57
120: 57
121: 57
122: 57
123: 57
124: 57
125: 57
126: 57
127: 57
128: 57
129: 57
130: 57
131: 57
132: 57
133: 57
134: 57
135: 57
136: 57
137: 57
138: 57
139: 57
140: 57
141: 57
142: 57
143: 57
144: 57
145: 57
146: 57
147: 57
148: 57
149: 57
150: 57
151: 57
152: 57
153: 19
154: 19
155: 19
156: 19
157: 19
158: 19
159: 19
160: 19
161: 19
162: 19
163: 19
164: 19
165: 19
166: 19
167: 23
168: 32
169: 42
170: 26
171: 29
172: 12
173: 12
174: 12
175: 12
176: 12
177: 12
178: 51
179: 51
180: 51
181: 51
182: 45
183: 45
184: 45
185: 45
186: 45
187: 51
188: 51
189: 51
190: 51
191: 14
192: 51
193: 51
194: 51
195: 57
196: 58
197: 51
198: 19
199: 19
200: 23
201: 32
202: 58
default: 58
}
12: StackMap locals:
StackMap stack:
aconst_null
astore 3
13: goto 59
14: StackMap locals:
StackMap stack:
aconst_null
astore 3
15: aload 0
aload 1
iload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping.handleExceptions:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$ExceptionDispatchBlock;
astore 5
start local 5 16: aload 5
ifnull 59
17: aload 1
iload 4
aload 5
invokestatic org.graalvm.compiler.java.BciBlockMapping.addSuccessor:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
18: goto 59
end local 5 19: StackMap locals:
StackMap stack:
aconst_null
astore 3
20: aload 1
iload 4
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readBranchDest:()I
invokevirtual org.graalvm.compiler.java.BciBlockMapping.makeBlock:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
invokestatic org.graalvm.compiler.java.BciBlockMapping.addSuccessor:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
21: aload 1
iload 4
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.nextBCI:()I
invokevirtual org.graalvm.compiler.java.BciBlockMapping.makeBlock:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
invokestatic org.graalvm.compiler.java.BciBlockMapping.addSuccessor:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
22: goto 59
23: StackMap locals:
StackMap stack:
aconst_null
astore 3
24: aload 1
iload 4
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readBranchDest:()I
invokevirtual org.graalvm.compiler.java.BciBlockMapping.makeBlock:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
invokestatic org.graalvm.compiler.java.BciBlockMapping.addSuccessor:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
25: goto 59
26: StackMap locals:
StackMap stack:
aconst_null
astore 3
27: aload 0
aload 1
iload 4
new org.graalvm.compiler.bytecode.BytecodeTableSwitch
dup
aload 2
iload 4
invokespecial org.graalvm.compiler.bytecode.BytecodeTableSwitch.<init>:(Lorg/graalvm/compiler/bytecode/BytecodeStream;I)V
invokevirtual org.graalvm.compiler.java.BciBlockMapping.addSwitchSuccessors:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/bytecode/BytecodeSwitch;)V
28: goto 59
29: StackMap locals:
StackMap stack:
aconst_null
astore 3
30: aload 0
aload 1
iload 4
new org.graalvm.compiler.bytecode.BytecodeLookupSwitch
dup
aload 2
iload 4
invokespecial org.graalvm.compiler.bytecode.BytecodeLookupSwitch.<init>:(Lorg/graalvm/compiler/bytecode/BytecodeStream;I)V
invokevirtual org.graalvm.compiler.java.BciBlockMapping.addSwitchSuccessors:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/bytecode/BytecodeSwitch;)V
31: goto 59
32: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.graalvm.compiler.java.BciBlockMapping.hasJsrBytecodes:Z
33: aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readBranchDest:()I
istore 5
start local 5 34: iload 5
ifne 36
35: new org.graalvm.compiler.java.JsrNotSupportedBailout
dup
ldc "jsr target bci 0 not allowed"
invokespecial org.graalvm.compiler.java.JsrNotSupportedBailout.<init>:(Ljava/lang/String;)V
athrow
36: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping.makeBlock:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
astore 6
start local 6 37: aload 3
aload 6
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.setJsrSuccessor:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
38: aload 3
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.nextBCI:()I
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.setJsrReturnBci:(I)V
39: aconst_null
astore 3
40: aload 1
iload 4
aload 6
invokestatic org.graalvm.compiler.java.BciBlockMapping.addSuccessor:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
41: goto 59
end local 6 end local 5 42: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.setEndsWithRet:()V
43: aconst_null
astore 3
44: goto 59
45: StackMap locals:
StackMap stack:
aconst_null
astore 3
46: aload 1
iload 4
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.nextBCI:()I
invokevirtual org.graalvm.compiler.java.BciBlockMapping.makeBlock:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
invokestatic org.graalvm.compiler.java.BciBlockMapping.addSuccessor:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
47: aload 0
aload 1
iload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping.handleExceptions:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$ExceptionDispatchBlock;
astore 5
start local 5 48: aload 5
ifnull 59
49: aload 1
iload 4
aload 5
invokestatic org.graalvm.compiler.java.BciBlockMapping.addSuccessor:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
50: goto 59
end local 5 51: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping.handleExceptions:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$ExceptionDispatchBlock;
astore 5
start local 5 52: aload 5
ifnull 59
53: aconst_null
astore 3
54: aload 1
iload 4
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.nextBCI:()I
invokevirtual org.graalvm.compiler.java.BciBlockMapping.makeBlock:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
invokestatic org.graalvm.compiler.java.BciBlockMapping.addSuccessor:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
55: aload 1
iload 4
aload 5
invokestatic org.graalvm.compiler.java.BciBlockMapping.addSuccessor:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
56: goto 59
end local 5 57: StackMap locals:
StackMap stack:
goto 59
58: StackMap locals:
StackMap stack:
new org.graalvm.compiler.debug.GraalError
dup
ldc "Unhandled bytecode"
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
59: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.next:()V
end local 4 60: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBC:()I
sipush 256
if_icmpne 3
61: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 62 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 62 1 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 62 2 stream Lorg/graalvm/compiler/bytecode/BytecodeStream;
1 62 3 current Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
4 60 4 bci I
6 9 5 b Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
16 19 5 handler Lorg/graalvm/compiler/java/BciBlockMapping$ExceptionDispatchBlock;
34 42 5 target I
37 42 6 b1 Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
48 51 5 handler Lorg/graalvm/compiler/java/BciBlockMapping$ExceptionDispatchBlock;
52 57 5 handler Lorg/graalvm/compiler/java/BciBlockMapping$ExceptionDispatchBlock;
MethodParameters:
Name Flags
blockMap
stream
private org.graalvm.compiler.java.BciBlockMapping$BciBlock makeBlock(org.graalvm.compiler.java.BciBlockMapping$BciBlock[], int);
descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iload 2
aaload
astore 3
start local 3 1: aload 3
ifnonnull 6
2: new org.graalvm.compiler.java.BciBlockMapping$BciBlock
dup
iload 2
invokespecial org.graalvm.compiler.java.BciBlockMapping$BciBlock.<init>:(I)V
astore 4
start local 4 3: aload 0
dup
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
iconst_1
iadd
putfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
4: aload 1
iload 2
aload 4
aastore
5: aload 4
areturn
end local 4 6: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock
StackMap stack:
aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.startBci:I
iload 2
if_icmpeq 23
7: new org.graalvm.compiler.java.BciBlockMapping$BciBlock
dup
iload 2
invokespecial org.graalvm.compiler.java.BciBlockMapping$BciBlock.<init>:(I)V
astore 4
start local 4 8: aload 0
dup
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
iconst_1
iadd
putfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
9: aload 4
aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.endBci:I
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.endBci:I
10: aload 3
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessors:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 13
StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock[] int org.graalvm.compiler.java.BciBlockMapping$BciBlock org.graalvm.compiler.java.BciBlockMapping$BciBlock top java.util.Iterator
StackMap stack:
11: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 5
start local 5 12: aload 4
aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.addSuccessor:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
end local 5 13: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
14: aload 3
iload 2
iconst_1
isub
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.endBci:I
15: aload 3
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.clearSucccessors:()V
16: aload 3
aload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.addSuccessor:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
17: iload 2
istore 5
start local 5 18: goto 21
19: StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock[] int org.graalvm.compiler.java.BciBlockMapping$BciBlock org.graalvm.compiler.java.BciBlockMapping$BciBlock int
StackMap stack:
aload 1
iload 5
aload 4
aastore
20: iinc 5 1
StackMap locals:
StackMap stack:
21: iload 5
aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.endBci:I
if_icmple 19
end local 5 22: aload 4
areturn
end local 4 23: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 24 1 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 24 2 startBci I
1 24 3 oldBlock Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
3 6 4 newBlock Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
8 23 4 newBlock Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
12 13 5 oldSuccessor Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
18 22 5 i I
MethodParameters:
Name Flags
blockMap
startBci
private void addSwitchSuccessors(org.graalvm.compiler.java.BciBlockMapping$BciBlock[], int, org.graalvm.compiler.bytecode.BytecodeSwitch);
descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/bytecode/BytecodeSwitch;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
astore 4
start local 4 1: iconst_0
istore 5
start local 5 2: goto 5
3: StackMap locals: java.util.Collection int
StackMap stack:
aload 4
aload 3
iload 5
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.targetAt:(I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
4: iinc 5 1
StackMap locals:
StackMap stack:
5: iload 5
aload 3
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.numberOfCases:()I
if_icmplt 3
end local 5 6: aload 4
aload 3
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.defaultTarget:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
7: aload 4
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 10
StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock[] int org.graalvm.compiler.bytecode.BytecodeSwitch java.util.Collection top java.util.Iterator
StackMap stack:
8: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 5
start local 5 9: aload 1
iload 2
aload 0
aload 1
iload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping.makeBlock:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
invokestatic org.graalvm.compiler.java.BciBlockMapping.addSuccessor:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
end local 5 10: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
11: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 12 1 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 12 2 predBci I
0 12 3 bswitch Lorg/graalvm/compiler/bytecode/BytecodeSwitch;
1 12 4 targets Ljava/util/Collection<Ljava/lang/Integer;>;
2 6 5 i I
9 10 5 targetBci I
MethodParameters:
Name Flags
blockMap
predBci
bswitch
private static void addSuccessor(org.graalvm.compiler.java.BciBlockMapping$BciBlock[], int, org.graalvm.compiler.java.BciBlockMapping$BciBlock);
descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aaload
astore 3
start local 3 1: aload 2
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isExceptionEntry:Z
ifeq 3
2: new org.graalvm.compiler.core.common.PermanentBailoutException
dup
ldc "Exception handler can be reached by both normal and exceptional control flow"
invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock
StackMap stack:
aload 3
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.addSuccessor:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 5 1 predBci I
0 5 2 sux Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
1 5 3 predecessor Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
MethodParameters:
Name Flags
blockMap
predBci
sux
private void createJsrAlternatives(org.graalvm.compiler.java.BciBlockMapping$BciBlock[], org.graalvm.compiler.java.BciBlockMapping$BciBlock);
descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.jsrVisited:Ljava/util/ArrayList;
aload 2
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
1: aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrScope:()Lorg/graalvm/compiler/java/JsrScope;
astore 3
start local 3 2: aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.endsWithRet:()Z
ifeq 6
3: aload 2
aload 1
aload 3
invokevirtual org.graalvm.compiler.java.JsrScope.nextReturnAddress:()I
aaload
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.setRetSuccessor:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
4: aload 2
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getRetSuccessor:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.addSuccessor:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
5: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 6
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getRetSuccessor:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrSuccessor:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
if_acmpne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: org.graalvm.compiler.java.JsrScope
StackMap stack:
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "JSR alternatives block %s sux %s jsrSux %s retSux %s jsrScope %s"
aload 2
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessors:()Ljava/util/List;
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrSuccessor:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getRetSuccessor:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrScope:()Lorg/graalvm/compiler/java/JsrScope;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrSuccessor:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
ifnonnull 8
aload 3
invokevirtual org.graalvm.compiler.java.JsrScope.isEmpty:()Z
ifne 34
8: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 9: goto 33
10: StackMap locals: int
StackMap stack:
aload 2
iload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessor:(I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
astore 5
start local 5 11: aload 3
astore 6
start local 6 12: aload 5
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrSuccessor:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
if_acmpne 14
13: aload 3
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrReturnBci:()I
aload 5
invokevirtual org.graalvm.compiler.java.JsrScope.push:(ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)Lorg/graalvm/compiler/java/JsrScope;
astore 6
14: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock org.graalvm.compiler.java.JsrScope
StackMap stack:
aload 5
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getRetSuccessor:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
if_acmpne 16
15: aload 3
invokevirtual org.graalvm.compiler.java.JsrScope.pop:()Lorg/graalvm/compiler/java/JsrScope;
astore 6
16: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrScope:()Lorg/graalvm/compiler/java/JsrScope;
aload 6
invokevirtual org.graalvm.compiler.java.JsrScope.isPrefixOf:(Lorg/graalvm/compiler/java/JsrScope;)Z
ifne 18
17: new org.graalvm.compiler.java.JsrNotSupportedBailout
dup
new java.lang.StringBuilder
dup
ldc "unstructured control flow ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrScope:()Lorg/graalvm/compiler/java/JsrScope;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.graalvm.compiler.java.JsrNotSupportedBailout.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.java.JsrScope.isEmpty:()Z
ifne 32
19: aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrAlternatives:()Ljdk/internal/vm/compiler/collections/EconomicMap;
ifnull 22
aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrAlternatives:()Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 6
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.containsKey:(Ljava/lang/Object;)Z
ifeq 22
20: aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrAlternatives:()Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 6
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 7
start local 7 21: goto 27
end local 7 22: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.initJsrAlternatives:()V
23: aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.copy:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
astore 7
start local 7 24: aload 0
dup
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
iconst_1
iadd
putfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
25: aload 7
aload 6
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.setJsrScope:(Lorg/graalvm/compiler/java/JsrScope;)V
26: aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrAlternatives:()Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 6
aload 7
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
27: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessors:()Ljava/util/List;
iload 4
aload 7
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
28: aload 5
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getJsrSuccessor:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
if_acmpne 30
29: aload 2
aload 7
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.setJsrSuccessor:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
30: StackMap locals:
StackMap stack:
aload 5
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getRetSuccessor:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
if_acmpne 32
31: aload 2
aload 7
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.setRetSuccessor:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
end local 7 end local 6 end local 5 32: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
33: iload 4
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessorCount:()I
if_icmplt 10
end local 4 34: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessors:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 38
StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock org.graalvm.compiler.java.JsrScope top java.util.Iterator
StackMap stack:
35: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 4
start local 4 36: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.jsrVisited:Ljava/util/ArrayList;
aload 4
invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
ifne 38
aload 4
aload 3
invokestatic org.graalvm.compiler.java.BciBlockMapping.shouldFollowEdge:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Lorg/graalvm/compiler/java/JsrScope;)Z
ifeq 38
37: aload 0
aload 1
aload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping.createJsrAlternatives:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
end local 4 38: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 35
39: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 40 1 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 40 2 block Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
2 40 3 scope Lorg/graalvm/compiler/java/JsrScope;
9 34 4 i I
11 32 5 successor Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
12 32 6 nextScope Lorg/graalvm/compiler/java/JsrScope;
21 22 7 clone Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
24 32 7 clone Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
36 38 4 successor Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
MethodParameters:
Name Flags
blockMap
block
private static boolean shouldFollowEdge(org.graalvm.compiler.java.BciBlockMapping$BciBlock, org.graalvm.compiler.java.JsrScope);
descriptor: (Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Lorg/graalvm/compiler/java/JsrScope;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
instanceof org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock
ifeq 5
aload 1
invokevirtual org.graalvm.compiler.java.JsrScope.getJsrEntryBlock:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
ifnull 5
1: aload 0
checkcast org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock
astore 2
start local 2 2: aload 1
invokevirtual org.graalvm.compiler.java.JsrScope.getJsrEntryBlock:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.startBci:I
istore 3
start local 3 3: aload 2
getfield org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock.handler:Ljdk/vm/ci/meta/ExceptionHandler;
invokevirtual jdk.vm.ci.meta.ExceptionHandler.getStartBCI:()I
iload 3
if_icmpge 5
iload 3
aload 2
getfield org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock.handler:Ljdk/vm/ci/meta/ExceptionHandler;
invokevirtual jdk.vm.ci.meta.ExceptionHandler.getEndBCI:()I
if_icmpge 5
4: iconst_0
ireturn
end local 3 end local 2 5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 successor Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 6 1 scope Lorg/graalvm/compiler/java/JsrScope;
2 5 2 exceptionDispatchBlock Lorg/graalvm/compiler/java/BciBlockMapping$ExceptionDispatchBlock;
3 5 3 bci I
MethodParameters:
Name Flags
successor
scope
private org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock handleExceptions(org.graalvm.compiler.java.BciBlockMapping$BciBlock[], int);
descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Lorg/graalvm/compiler/java/BciBlockMapping$ExceptionDispatchBlock;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.exceptionHandlers:[Ljdk/vm/ci/meta/ExceptionHandler;
arraylength
iconst_1
isub
istore 5
start local 5 3: goto 16
4: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock int int
StackMap stack:
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.exceptionHandlers:[Ljdk/vm/ci/meta/ExceptionHandler;
iload 5
aaload
astore 6
start local 6 5: aload 6
invokevirtual jdk.vm.ci.meta.ExceptionHandler.getStartBCI:()I
iload 2
if_icmpgt 15
iload 2
aload 6
invokevirtual jdk.vm.ci.meta.ExceptionHandler.getEndBCI:()I
if_icmpge 15
6: aload 6
invokevirtual jdk.vm.ci.meta.ExceptionHandler.isCatchAll:()Z
ifeq 9
7: iconst_0
istore 4
8: aconst_null
astore 3
9: StackMap locals: jdk.vm.ci.meta.ExceptionHandler
StackMap stack:
new org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock
dup
aload 6
iload 2
invokespecial org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock.<init>:(Ljdk/vm/ci/meta/ExceptionHandler;I)V
astore 7
start local 7 10: iinc 4 1
11: aload 7
aload 1
aload 6
invokevirtual jdk.vm.ci.meta.ExceptionHandler.getHandlerBCI:()I
aaload
invokevirtual org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock.addSuccessor:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
12: aload 3
ifnull 14
13: aload 7
aload 3
invokevirtual org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock.addSuccessor:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
14: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock
StackMap stack:
aload 7
astore 3
end local 7 end local 6 15: StackMap locals:
StackMap stack:
iinc 5 -1
StackMap locals:
StackMap stack:
16: iload 5
ifge 4
end local 5 17: aload 0
dup
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
iload 4
iadd
putfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
18: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 19 1 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 19 2 bci I
1 19 3 lastHandler Lorg/graalvm/compiler/java/BciBlockMapping$ExceptionDispatchBlock;
2 19 4 dispatchBlocks I
3 17 5 i I
5 15 6 h Ljdk/vm/ci/meta/ExceptionHandler;
10 15 7 curHandler Lorg/graalvm/compiler/java/BciBlockMapping$ExceptionDispatchBlock;
MethodParameters:
Name Flags
blockMap
bci
private void computeBlockOrder(org.graalvm.compiler.java.BciBlockMapping$BciBlock[]);
descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
istore 2
start local 2 1: aload 0
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
anewarray org.graalvm.compiler.java.BciBlockMapping$BciBlock
putfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
2: aload 0
aload 1
iconst_0
aaload
invokevirtual org.graalvm.compiler.java.BciBlockMapping.computeBlockOrder:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
3: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.newDuplicateBlocks:I
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.duplicateBlocks:I
iadd
istore 3
start local 3 4: iload 3
ifle 6
5: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_2
ldc "Duplicated %d blocks. Original block count: %d"
iload 3
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.postJsrBlockCount:I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;II)V
6: StackMap locals: int int
StackMap stack:
iload 2
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
isub
iconst_1
iadd
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.duplicateBlocks:I
iadd
istore 4
start local 4 7: iload 4
anewarray org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 5
start local 5 8: iconst_0
istore 6
start local 6 9: iconst_0
istore 7
start local 7 10: goto 18
11: StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock[] int int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[] int int
StackMap stack:
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 7
aaload
astore 8
start local 8 12: aload 8
ifnull 17
13: aload 8
iload 6
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.setId:(I)V
14: aload 5
iload 6
iinc 6 1
aload 8
aastore
15: aload 8
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 17
16: aload 0
aload 5
iload 6
iload 7
aload 8
invokevirtual org.graalvm.compiler.java.BciBlockMapping.handleLoopHeader:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;IILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)I
istore 6
end local 8 17: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
18: iload 7
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
arraylength
if_icmplt 11
end local 7 19: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 20
iload 6
aload 5
arraylength
iconst_1
isub
if_icmpeq 20
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
20: StackMap locals:
StackMap stack:
new org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock
dup
bipush -4
invokespecial org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock.<init>:(I)V
astore 7
start local 7 21: aload 7
aload 5
arraylength
iconst_1
isub
invokevirtual org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock.setId:(I)V
22: aload 5
aload 5
arraylength
iconst_1
isub
aload 7
aastore
23: aload 0
aload 5
putfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
24: 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 25 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 25 1 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
1 25 2 maxBlocks I
4 25 3 duplicatedBlocks I
7 25 4 blockCount I
8 25 5 newBlocks [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
9 25 6 next I
10 19 7 i I
12 17 8 b Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
21 25 7 unwindBlock Lorg/graalvm/compiler/java/BciBlockMapping$ExceptionDispatchBlock;
MethodParameters:
Name Flags
blockMap
private int handleLoopHeader(org.graalvm.compiler.java.BciBlockMapping$BciBlock[], int, int, org.graalvm.compiler.java.BciBlockMapping$BciBlock);
descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;IILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
istore 5
start local 5 1: iload 3
iconst_1
iadd
istore 6
start local 6 2: goto 11
3: StackMap locals: int int
StackMap stack:
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 6
aaload
astore 7
start local 7 4: aload 7
ifnull 10
aload 7
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lconst_1
aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopId:I
lshl
land
lconst_0
lcmp
ifeq 10
5: aload 7
iload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.setId:(I)V
6: aload 1
iload 5
iinc 5 1
aload 7
aastore
7: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 6
aconst_null
aastore
8: aload 7
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 10
9: aload 0
aload 1
iload 5
iload 6
aload 7
invokevirtual org.graalvm.compiler.java.BciBlockMapping.handleLoopHeader:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;IILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)I
istore 5
end local 7 10: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
11: iload 6
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
arraylength
if_icmplt 3
end local 6 12: 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 13 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 13 1 newBlocks [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 13 2 nextStart I
0 13 3 i I
0 13 4 loopHeader Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
1 13 5 next I
2 12 6 j I
4 10 7 other Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
MethodParameters:
Name Flags
newBlocks
nextStart
i
loopHeader
public void log(org.graalvm.compiler.java.BciBlockMapping$BciBlock[], java.lang.String);
descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
ifeq 2
1: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "%sBlockMap %s: %n%s"
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokevirtual org.graalvm.compiler.debug.DebugContext.getCurrentScopeName:()Ljava/lang/String;
aload 2
aload 1
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
invokestatic org.graalvm.compiler.java.BciBlockMapping.toString:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 3 1 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 3 2 name Ljava/lang/String;
MethodParameters:
Name Flags
blockMap
name
public static java.lang.String toString(org.graalvm.compiler.java.BciBlockMapping$BciBlock[], org.graalvm.compiler.java.BciBlockMapping$BciBlock[]);
descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=13, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: ldc "no blockmap"
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 3: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 3
start local 3 4: iconst_1
newarray 10
dup
iconst_0
bipush -2
iastore
astore 4
start local 4 5: aload 3
aload 4
invokedynamic applyAsInt(Ljava/util/Map;[I)Ljava/util/function/ToIntFunction;
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;)I
org/graalvm/compiler/java/BciBlockMapping.lambda$0(Ljava/util/Map;[ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)I (6)
(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)I
astore 5
start local 5 6: aload 0
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 38
StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder java.util.Map int[] java.util.function.ToIntFunction top int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
7: aload 9
iload 7
aaload
astore 6
start local 6 8: aload 6
ifnonnull 10
9: goto 37
10: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder java.util.Map int[] java.util.function.ToIntFunction org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
aload 2
ldc "B"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
aload 6
invokeinterface java.util.function.ToIntFunction.applyAsInt:(Ljava/lang/Object;)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.startBci:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ".."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.endBci:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 6
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 13
12: aload 2
ldc " LoopHeader"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: StackMap locals:
StackMap stack:
aload 6
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isExceptionEntry:Z
ifeq 15
14: aload 2
ldc " ExceptionEntry"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: StackMap locals:
StackMap stack:
aload 6
instanceof org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock
ifeq 17
16: aload 2
ldc " ExceptionDispatch"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: StackMap locals:
StackMap stack:
aload 6
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.successors:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 26
18: aload 2
ldc " Successors=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: aload 6
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessors:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 24
StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder java.util.Map int[] java.util.function.ToIntFunction org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[] top java.util.Iterator
StackMap stack:
20: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 10
start local 10 21: aload 2
aload 2
invokevirtual java.lang.StringBuilder.length:()I
iconst_1
isub
invokevirtual java.lang.StringBuilder.charAt:(I)C
bipush 91
if_icmpeq 23
22: aload 2
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
23: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder java.util.Map int[] java.util.function.ToIntFunction org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock java.util.Iterator
StackMap stack:
aload 2
ldc "B"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
aload 10
invokeinterface java.util.function.ToIntFunction.applyAsInt:(Ljava/lang/Object;)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
end local 10 24: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder java.util.Map int[] java.util.function.ToIntFunction org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[] top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
25: aload 2
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
26: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder java.util.Map int[] java.util.function.ToIntFunction org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
aload 6
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lconst_0
lcmp
ifeq 36
aload 1
ifnull 36
27: aload 2
ldc " Loops=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: aload 6
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lstore 10
start local 10 29: StackMap locals: long
StackMap stack:
lload 10
invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
istore 12
start local 12 30: aload 2
aload 2
invokevirtual java.lang.StringBuilder.length:()I
iconst_1
isub
invokevirtual java.lang.StringBuilder.charAt:(I)C
bipush 91
if_icmpeq 32
31: aload 2
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
32: StackMap locals: int
StackMap stack:
aload 2
ldc "B"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
aload 1
iload 12
aaload
invokeinterface java.util.function.ToIntFunction.applyAsInt:(Ljava/lang/Object;)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
33: lload 10
lload 10
lload 10
lneg
land
lxor
lstore 10
end local 12 34: lload 10
lconst_0
lcmp
ifne 29
35: aload 2
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 10 36: StackMap locals:
StackMap stack:
aload 2
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 6 37: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder java.util.Map int[] java.util.function.ToIntFunction top int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
38: iload 7
iload 8
if_icmplt 7
39: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
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 40 0 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 40 1 loopHeadersMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
3 40 2 sb Ljava/lang/StringBuilder;
4 40 3 debugIds Ljava/util/Map<Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Ljava/lang/Integer;>;
5 40 4 nextDebugId [I
6 40 5 getId Ljava/util/function/ToIntFunction<Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;>;
8 37 6 b Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
21 24 10 s Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
29 36 10 loops J
30 34 12 pos I
MethodParameters:
Name Flags
blockMap
loopHeadersMap
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
invokestatic org.graalvm.compiler.java.BciBlockMapping.toString:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
public org.graalvm.compiler.java.BciBlockMapping$BciBlock (int);
descriptor: (I)Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 1
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 1 1 index I
MethodParameters:
Name Flags
index
private void (org.graalvm.compiler.java.BciBlockMapping$BciBlock);
descriptor: (Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 1
aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
iconst_1
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
2: aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isExceptionEntry:Z
ifeq 4
3: new org.graalvm.compiler.core.common.PermanentBailoutException
dup
ldc "Loop formed by an exception handler"
invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.nextLoop:I
bipush 64
if_icmplt 6
5: new org.graalvm.compiler.core.common.PermanentBailoutException
dup
ldc "Too many loops in method"
invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 1
dup
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lconst_1
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.nextLoop:I
lshl
lor
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
7: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "makeLoopHeader(%s) -> %x"
aload 1
aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
8: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
ifnonnull 11
9: aload 0
iconst_4
anewarray org.graalvm.compiler.java.BciBlockMapping$BciBlock
putfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
10: goto 13
StackMap locals:
StackMap stack:
11: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.nextLoop:I
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
arraylength
if_icmplt 13
12: aload 0
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
bipush 64
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
putfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
13: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.nextLoop:I
aload 1
aastore
14: aload 1
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.nextLoop:I
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopId:I
15: aload 0
dup
getfield org.graalvm.compiler.java.BciBlockMapping.nextLoop:I
iconst_1
iadd
putfield org.graalvm.compiler.java.BciBlockMapping.nextLoop:I
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 17 1 block Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
MethodParameters:
Name Flags
block
private void propagateLoopBits(org.graalvm.compiler.java.BciBlockMapping$TraversalStep, long);
descriptor: (Lorg/graalvm/compiler/java/BciBlockMapping$TraversalStep;J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
astore 4
start local 4 1: goto 9
2: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$TraversalStep
StackMap stack:
aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.block:Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
dup
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lload 2
lor
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
3: aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.block:Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopIdChain:Ljava/util/List;
ifnull 8
4: aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.block:Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopIdChain:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 7
StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$TraversalStep long org.graalvm.compiler.java.BciBlockMapping$TraversalStep top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.java.BciBlockMapping$TraversalStep
astore 5
start local 5 6: aload 0
aload 5
lload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping.propagateLoopBits:(Lorg/graalvm/compiler/java/BciBlockMapping$TraversalStep;J)V
end local 5 7: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$TraversalStep long org.graalvm.compiler.java.BciBlockMapping$TraversalStep
StackMap stack:
aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.pred:Lorg/graalvm/compiler/java/BciBlockMapping$TraversalStep;
astore 4
9: StackMap locals:
StackMap stack:
aload 4
ifnull 10
aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.block:Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lload 2
land
lload 2
lcmp
ifne 2
10: StackMap locals:
StackMap stack:
return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 11 1 step Lorg/graalvm/compiler/java/BciBlockMapping$TraversalStep;
0 11 2 loopBits J
1 11 4 s Lorg/graalvm/compiler/java/BciBlockMapping$TraversalStep;
6 7 5 chain Lorg/graalvm/compiler/java/BciBlockMapping$TraversalStep;
MethodParameters:
Name Flags
step
loopBits
private void computeBlockOrder(org.graalvm.compiler.java.BciBlockMapping$BciBlock);
descriptor: (Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=14, args_size=2
start local 0 start local 1 0: new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
astore 2
start local 2 1: aload 2
new org.graalvm.compiler.java.BciBlockMapping$TraversalStep
dup
aload 1
invokespecial org.graalvm.compiler.java.BciBlockMapping$TraversalStep.<init>:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
invokevirtual java.util.ArrayDeque.push:(Ljava/lang/Object;)V
2: goto 97
3: StackMap locals: java.util.ArrayDeque
StackMap stack:
aload 2
invokevirtual java.util.ArrayDeque.peek:()Ljava/lang/Object;
checkcast org.graalvm.compiler.java.BciBlockMapping$TraversalStep
astore 3
start local 3 4: aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.block:Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
astore 4
start local 4 5: aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.currentSuccessorIndex:I
ifne 8
6: aload 4
iconst_1
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.visited:Z
7: aload 4
iconst_1
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.active:Z
8: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$TraversalStep org.graalvm.compiler.java.BciBlockMapping$BciBlock
StackMap stack:
aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.currentSuccessorIndex:I
aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.successors:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmpge 73
9: aload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessors:()Ljava/util/List;
aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.currentSuccessorIndex:I
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 5
start local 5 10: aload 3
instanceof org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep
ifeq 26
11: aload 3
checkcast org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep
astore 6
start local 6 12: aload 6
getfield org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep.loopHeader:Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
astore 7
start local 7 13: aload 5
aload 7
if_acmpeq 23
aload 5
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
iconst_1
aload 7
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopId:I
ishl
i2l
land
lconst_0
lcmp
ifeq 23
14: aload 6
getfield org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep.duplicationMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 5
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 8
start local 8 15: aload 8
ifnonnull 19
16: aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.duplicate:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
astore 8
17: aload 0
dup
getfield org.graalvm.compiler.java.BciBlockMapping.newDuplicateBlocks:I
iconst_1
iadd
putfield org.graalvm.compiler.java.BciBlockMapping.newDuplicateBlocks:I
18: aload 6
getfield org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep.duplicationMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 5
aload 8
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock java.util.ArrayDeque org.graalvm.compiler.java.BciBlockMapping$TraversalStep org.graalvm.compiler.java.BciBlockMapping$BciBlock org.graalvm.compiler.java.BciBlockMapping$BciBlock org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep org.graalvm.compiler.java.BciBlockMapping$BciBlock org.graalvm.compiler.java.BciBlockMapping$BciBlock
StackMap stack:
aload 8
astore 5
20: aload 5
dup
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.predecessorCount:I
iconst_1
iadd
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.predecessorCount:I
21: aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.successors:Ljava/util/List;
aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.currentSuccessorIndex:I
aload 5
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
end local 8 22: goto 26
23: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_4
aload 0
ldc "Exiting duplication @ %s"
aload 5
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
24: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Exiting duplication @ %s"
aload 5
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
25: aload 5
dup
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.predecessorCount:I
iconst_1
iadd
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.predecessorCount:I
end local 7 end local 6 26: StackMap locals:
StackMap stack:
aload 5
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.visited:Z
ifeq 67
27: iconst_0
istore 8
start local 8 28: aload 5
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.active:Z
ifeq 33
29: aload 5
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifne 31
30: aload 0
aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping.makeLoopHeader:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
31: StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock java.util.ArrayDeque org.graalvm.compiler.java.BciBlockMapping$TraversalStep org.graalvm.compiler.java.BciBlockMapping$BciBlock org.graalvm.compiler.java.BciBlockMapping$BciBlock top top int
StackMap stack:
aload 5
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lstore 6
start local 6 32: goto 60
end local 6 33: StackMap locals:
StackMap stack:
aload 5
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lstore 6
start local 6 34: aload 5
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 36
35: lload 6
lconst_1
aload 5
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopId:I
lshl
ldc -1
lxor
land
lstore 6
36: StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock java.util.ArrayDeque org.graalvm.compiler.java.BciBlockMapping$TraversalStep org.graalvm.compiler.java.BciBlockMapping$BciBlock org.graalvm.compiler.java.BciBlockMapping$BciBlock long int
StackMap stack:
lload 6
lstore 9
start local 9 37: iconst_m1
istore 11
start local 11 38: goto 46
39: StackMap locals: long int
StackMap stack:
lload 9
invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
istore 12
start local 12 40: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 12
aaload
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.active:Z
ifne 45
41: getstatic org.graalvm.compiler.java.BciBlockMapping$Options.DuplicateIrreducibleLoops:Lorg/graalvm/compiler/options/OptionKey;
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokevirtual org.graalvm.compiler.debug.DebugContext.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 43
42: new org.graalvm.compiler.core.common.PermanentBailoutException
dup
ldc "Irreducible"
invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;)V
athrow
43: StackMap locals: int
StackMap stack:
iload 11
iconst_m1
if_icmpeq 44
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 12
aaload
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lconst_1
iload 11
lshl
land
lconst_0
lcmp
ifne 45
44: StackMap locals:
StackMap stack:
iload 12
istore 11
45: StackMap locals:
StackMap stack:
lload 9
lconst_1
iload 12
lshl
ldc -1
lxor
land
lstore 9
end local 12 46: StackMap locals:
StackMap stack:
lload 9
lconst_0
lcmp
ifne 39
47: iload 11
iconst_m1
if_icmpeq 60
48: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 49
aload 3
instanceof org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep
ifeq 49
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
49: StackMap locals:
StackMap stack:
aload 5
dup
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.predecessorCount:I
iconst_1
isub
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.predecessorCount:I
50: aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.duplicate:()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
astore 12
start local 12 51: aload 12
dup
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.predecessorCount:I
iconst_1
iadd
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.predecessorCount:I
52: aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.successors:Ljava/util/List;
aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.currentSuccessorIndex:I
aload 12
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
53: new org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep
dup
aload 3
aload 12
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 11
aaload
invokespecial org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep.<init>:(Lorg/graalvm/compiler/java/BciBlockMapping$TraversalStep;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
astore 13
start local 13 54: aload 2
aload 13
invokevirtual java.util.ArrayDeque.push:(Ljava/lang/Object;)V
55: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Starting duplication @ %s"
aload 12
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
56: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_4
aload 0
ldc "Starting duplication @ %s"
aload 12
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
57: aload 13
getfield org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep.duplicationMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 5
aload 12
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
58: aload 0
dup
getfield org.graalvm.compiler.java.BciBlockMapping.newDuplicateBlocks:I
iconst_1
iadd
putfield org.graalvm.compiler.java.BciBlockMapping.newDuplicateBlocks:I
59: iconst_1
istore 8
end local 13 end local 12 end local 11 end local 9 60: StackMap locals:
StackMap stack:
iload 8
ifne 71
61: aload 0
aload 3
lload 6
invokevirtual org.graalvm.compiler.java.BciBlockMapping.propagateLoopBits:(Lorg/graalvm/compiler/java/BciBlockMapping$TraversalStep;J)V
62: aload 5
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopIdChain:Ljava/util/List;
ifnonnull 64
63: aload 5
new java.util.ArrayList
dup
iconst_2
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopIdChain:Ljava/util/List;
64: StackMap locals:
StackMap stack:
aload 5
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopIdChain:Ljava/util/List;
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
65: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_4
aload 0
ldc "After re-reaching %s"
aload 5
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
end local 8 end local 6 66: goto 71
StackMap locals:
StackMap stack:
67: aload 3
instanceof org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep
ifeq 70
68: aload 2
new org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep
dup
aload 3
checkcast org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep
aload 5
invokespecial org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep.<init>:(Lorg/graalvm/compiler/java/BciBlockMapping$DuplicationTraversalStep;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
invokevirtual java.util.ArrayDeque.push:(Ljava/lang/Object;)V
69: goto 71
70: StackMap locals:
StackMap stack:
aload 2
new org.graalvm.compiler.java.BciBlockMapping$TraversalStep
dup
aload 3
aload 5
invokespecial org.graalvm.compiler.java.BciBlockMapping$TraversalStep.<init>:(Lorg/graalvm/compiler/java/BciBlockMapping$TraversalStep;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
invokevirtual java.util.ArrayDeque.push:(Ljava/lang/Object;)V
71: StackMap locals:
StackMap stack:
aload 3
dup
getfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.currentSuccessorIndex:I
iconst_1
iadd
putfield org.graalvm.compiler.java.BciBlockMapping$TraversalStep.currentSuccessorIndex:I
end local 5 72: goto 97
73: StackMap locals:
StackMap stack:
aload 4
iconst_0
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.active:Z
74: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 75
aload 0
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
aload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping.checkBlocks:(ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)Z
ifne 75
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
75: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
iconst_1
isub
putfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
76: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
ifge 93
77: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 78
getstatic org.graalvm.compiler.java.BciBlockMapping$Options.DuplicateIrreducibleLoops:Lorg/graalvm/compiler/options/OptionKey;
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokevirtual org.graalvm.compiler.debug.DebugContext.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 78
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
78: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.graalvm.compiler.java.BciBlockMapping.duplicateBlocks:I
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.newDuplicateBlocks:I
iadd
putfield org.graalvm.compiler.java.BciBlockMapping.duplicateBlocks:I
79: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.duplicateBlocks:I
i2d
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.postJsrBlockCount:I
i2d
getstatic org.graalvm.compiler.java.BciBlockMapping$Options.MaxDuplicationFactor:Lorg/graalvm/compiler/options/OptionKey;
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokevirtual org.graalvm.compiler.debug.DebugContext.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
dmul
dcmpl
ifle 81
80: new org.graalvm.compiler.core.common.PermanentBailoutException
dup
ldc "Non-reducible loop requires too much duplication"
invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;)V
athrow
81: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_2
ldc "Re-numbering blocks to make room for duplicates (old length: %d; new blocks: %d)"
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
arraylength
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.newDuplicateBlocks:I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;II)V
82: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
arraylength
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.newDuplicateBlocks:I
iadd
anewarray org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 5
start local 5 83: iconst_0
istore 6
start local 6 84: goto 88
85: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] int
StackMap stack:
aload 5
iload 6
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.newDuplicateBlocks:I
iadd
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 6
aaload
aastore
86: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 87
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 6
aaload
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.id:I
iconst_m1
if_icmpeq 87
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
87: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
88: iload 6
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
arraylength
if_icmplt 85
end local 6 89: aload 0
dup
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.newDuplicateBlocks:I
iadd
putfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
90: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 91
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
ifge 91
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
91: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.graalvm.compiler.java.BciBlockMapping.newDuplicateBlocks:I
92: aload 0
aload 5
putfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
end local 5 93: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
aload 4
aastore
94: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "computeBlockOrder(%s) -> %x"
aload 4
aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
95: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_4
aload 0
ldc "After adding %s"
aload 4
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
96: aload 2
invokevirtual java.util.ArrayDeque.pop:()Ljava/lang/Object;
pop
end local 4 end local 3 97: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.util.ArrayDeque.isEmpty:()Z
ifeq 3
98: aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lstore 3
start local 3 99: aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 101
100: lload 3
lconst_1
aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopId:I
lshl
ldc -1
lxor
land
lstore 3
101: StackMap locals: long
StackMap stack:
lload 3
lconst_0
lcmp
ifne 102
iconst_1
goto 103
StackMap locals:
StackMap stack:
102: iconst_0
StackMap locals:
StackMap stack: int
103: ldc "Irreducible loops should already have been detected to duplicated"
invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;)V
104: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 105 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 105 1 initialBlock Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
1 105 2 workStack Ljava/util/ArrayDeque<Lorg/graalvm/compiler/java/BciBlockMapping$TraversalStep;>;
4 97 3 step Lorg/graalvm/compiler/java/BciBlockMapping$TraversalStep;
5 97 4 block Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
10 72 5 successor Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
12 26 6 duplicationStep Lorg/graalvm/compiler/java/BciBlockMapping$DuplicationTraversalStep;
13 26 7 targetHeader Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
15 22 8 duplicate Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
32 33 6 loopBits J
34 66 6 loopBits J
28 66 8 duplicationStarted Z
37 60 9 checkBits J
38 60 11 outermostInactiveLoopId I
40 46 12 id I
51 60 12 duplicate Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
54 60 13 duplicationStep Lorg/graalvm/compiler/java/BciBlockMapping$DuplicationTraversalStep;
83 93 5 newBlocks [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
84 89 6 i I
99 105 3 loops J
MethodParameters:
Name Flags
initialBlock
private boolean checkBlocks(int, org.graalvm.compiler.java.BciBlockMapping$BciBlock);
descriptor: (ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 4
2: StackMap locals: int
StackMap stack:
getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 3
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 3
aaload
ifnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
iload 1
if_icmplt 2
end local 3 5: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
arraylength
iload 1
isub
invokestatic jdk.internal.vm.compiler.collections.EconomicSet.create:(I)Ljdk/internal/vm/compiler/collections/EconomicSet;
astore 3
start local 3 6: iload 1
istore 4
start local 4 7: goto 11
8: StackMap locals: org.graalvm.compiler.java.BciBlockMapping int org.graalvm.compiler.java.BciBlockMapping$BciBlock jdk.internal.vm.compiler.collections.EconomicSet int
StackMap stack:
getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 9
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 4
aaload
ifnonnull 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 10
aload 3
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 4
aaload
invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.add:(Ljava/lang/Object;)Z
ifne 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
11: iload 4
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
arraylength
if_icmplt 8
end local 4 12: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 13
aload 3
aload 2
invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
ifeq 13
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Trying to add "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " again"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
13: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 14 1 start I
0 14 2 inserting Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
1 5 3 i I
6 14 3 seen Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;>;
7 12 4 i I
MethodParameters:
Name Flags
start
inserting
public static org.graalvm.compiler.java.BciBlockMapping create(org.graalvm.compiler.bytecode.BytecodeStream, org.graalvm.compiler.bytecode.Bytecode, org.graalvm.compiler.options.OptionValues, org.graalvm.compiler.debug.DebugContext);
descriptor: (Lorg/graalvm/compiler/bytecode/BytecodeStream;Lorg/graalvm/compiler/bytecode/Bytecode;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;)Lorg/graalvm/compiler/java/BciBlockMapping;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.graalvm.compiler.java.BciBlockMapping
dup
aload 1
aload 3
invokespecial org.graalvm.compiler.java.BciBlockMapping.<init>:(Lorg/graalvm/compiler/bytecode/Bytecode;Lorg/graalvm/compiler/debug/DebugContext;)V
astore 4
start local 4 1: aconst_null
astore 5
aconst_null
astore 6
2: aload 3
ldc "BciBlockMapping"
aload 4
invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 7
start local 7 3: aload 4
aload 0
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping.build:(Lorg/graalvm/compiler/bytecode/BytecodeStream;Lorg/graalvm/compiler/options/OptionValues;)V
4: aload 3
iconst_2
invokevirtual org.graalvm.compiler.debug.DebugContext.isDumpEnabled:(I)Z
ifeq 6
5: aload 3
iconst_2
aload 4
aload 1
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
ldc "After block building %f %R %H.%n(%P)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
6: StackMap locals: org.graalvm.compiler.bytecode.BytecodeStream org.graalvm.compiler.bytecode.Bytecode org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.java.BciBlockMapping java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack:
aload 7
ifnull 14
aload 7
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 5
aload 7
ifnull 8
aload 7
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 7 StackMap locals:
StackMap stack:
8: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 6
aload 5
ifnonnull 10
aload 6
astore 5
goto 11
StackMap locals:
StackMap stack:
10: aload 5
aload 6
if_acmpeq 11
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
11: aload 5
athrow
StackMap locals: org.graalvm.compiler.bytecode.BytecodeStream org.graalvm.compiler.bytecode.Bytecode org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.java.BciBlockMapping
StackMap stack: java.lang.Throwable
12: astore 5
start local 5 13: aload 3
aload 5
invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 5 14: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 stream Lorg/graalvm/compiler/bytecode/BytecodeStream;
0 15 1 code Lorg/graalvm/compiler/bytecode/Bytecode;
0 15 2 options Lorg/graalvm/compiler/options/OptionValues;
0 15 3 debug Lorg/graalvm/compiler/debug/DebugContext;
1 15 4 map Lorg/graalvm/compiler/java/BciBlockMapping;
3 8 7 scope Lorg/graalvm/compiler/debug/DebugContext$Scope;
13 14 5 t Ljava/lang/Throwable;
Exception table:
from to target type
3 6 7 any
2 9 9 any
1 12 12 Class java.lang.Throwable
MethodParameters:
Name Flags
stream
code
options
debug
public org.graalvm.compiler.java.BciBlockMapping$BciBlock[] ();
descriptor: ()[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
public org.graalvm.compiler.java.BciBlockMapping$BciBlock getStartBlock();
descriptor: ()Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.startBlock:Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
public org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock getUnwindBlock();
descriptor: ()Lorg/graalvm/compiler/java/BciBlockMapping$ExceptionDispatchBlock;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
arraylength
iconst_1
isub
aaload
checkcast org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
public int getLoopCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.nextLoop:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
public int getBlockCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
public jdk.vm.ci.meta.JavaMethod asJavaMethod();
descriptor: ()Ljdk/vm/ci/meta/JavaMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.code:Lorg/graalvm/compiler/bytecode/Bytecode;
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
private static int lambda$0(java.util.Map, int[], org.graalvm.compiler.java.BciBlockMapping$BciBlock);
descriptor: (Ljava/util/Map;[ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=3
start local 2 0: aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getId:()I
istore 3
start local 3 1: iload 3
ifge 3
2: aload 0
aload 2
aload 1
invokedynamic apply([I)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;
org/graalvm/compiler/java/BciBlockMapping.lambda$1([ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)Ljava/lang/Integer; (6)
(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)Ljava/lang/Integer;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 3
3: StackMap locals: int
StackMap stack:
iload 3
ireturn
end local 3 end local 2 LocalVariableTable:
Start End Slot Name Signature
0 4 2 b Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
1 4 3 id I
private static java.lang.Integer lambda$1(int[], org.graalvm.compiler.java.BciBlockMapping$BciBlock);
descriptor: ([ILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)Ljava/lang/Integer;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=2, args_size=2
start local 1 0: aload 0
iconst_0
dup2
iaload
dup_x2
iconst_1
isub
iastore
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 bb Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
}
SourceFile: "BciBlockMapping.java"
NestMembers:
org.graalvm.compiler.java.BciBlockMapping$BciBlock org.graalvm.compiler.java.BciBlockMapping$BciBlock$JSRData org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock org.graalvm.compiler.java.BciBlockMapping$Options org.graalvm.compiler.java.BciBlockMapping$TraversalStep
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
public BciBlock = org.graalvm.compiler.java.BciBlockMapping$BciBlock of org.graalvm.compiler.java.BciBlockMapping
private final DuplicationTraversalStep = org.graalvm.compiler.java.BciBlockMapping$DuplicationTraversalStep of org.graalvm.compiler.java.BciBlockMapping
public ExceptionDispatchBlock = org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock of org.graalvm.compiler.java.BciBlockMapping
public Options = org.graalvm.compiler.java.BciBlockMapping$Options of org.graalvm.compiler.java.BciBlockMapping
private TraversalStep = org.graalvm.compiler.java.BciBlockMapping$TraversalStep of org.graalvm.compiler.java.BciBlockMapping