public final class org.graalvm.compiler.java.BciBlockMapping
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 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 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 boolean loopChanges;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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=4, 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
getfield org.graalvm.compiler.java.BciBlockMapping.hasJsrBytecodes:Z
ifeq 8
5: 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 7
6: new org.graalvm.compiler.java.JsrNotSupportedBailout
dup
ldc "jsr/ret parsing disabled"
invokespecial org.graalvm.compiler.java.JsrNotSupportedBailout.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
aload 0
aload 4
aload 4
iconst_0
aaload
invokevirtual org.graalvm.compiler.java.BciBlockMapping.createJsrAlternatives:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
8: 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 10
9: aload 0
aload 4
ldc "Before BlockOrder"
invokevirtual org.graalvm.compiler.java.BciBlockMapping.log:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Ljava/lang/String;)V
10: StackMap locals:
StackMap stack:
aload 0
aload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping.computeBlockOrder:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
11: aload 0
aload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping.fixLoopBits:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
12: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 13
aload 0
invokevirtual org.graalvm.compiler.java.BciBlockMapping.verify:()Z
ifne 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
13: StackMap locals:
StackMap stack:
aload 0
aload 4
iconst_0
aaload
putfield org.graalvm.compiler.java.BciBlockMapping.startBlock:Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
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 LivenessAnalysis"
invokevirtual org.graalvm.compiler.java.BciBlockMapping.log:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Ljava/lang/String;)V
16: 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 17 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 17 1 stream Lorg/graalvm/compiler/bytecode/BytecodeStream;
0 17 2 options Lorg/graalvm/compiler/options/OptionValues;
1 17 3 codeSize I
2 17 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 57
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
lookupswitch { // 61
46: 51
47: 51
48: 51
49: 51
50: 51
51: 51
52: 51
53: 51
79: 51
80: 51
81: 51
82: 51
83: 51
84: 51
85: 51
86: 51
108: 51
109: 51
112: 51
113: 51
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
190: 51
191: 14
192: 51
198: 19
199: 19
200: 23
201: 32
default: 56
}
12: StackMap locals:
StackMap stack:
aconst_null
astore 3
13: goto 56
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 56
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 56
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 56
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 56
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 56
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 56
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 56
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 56
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 56
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 56
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 56
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
end local 5 56: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.next:()V
end local 4 57: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBC:()I
sipush 256
if_icmpne 3
58: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 59 1 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 59 2 stream Lorg/graalvm/compiler/bytecode/BytecodeStream;
1 59 3 current Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
4 57 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 56 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
invokevirtual org.graalvm.compiler.java.JsrScope.push:(I)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
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 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 fixLoopBits(org.graalvm.compiler.java.BciBlockMapping$BciBlock[]);
descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=6, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.graalvm.compiler.java.BciBlockMapping.loopChanges:Z
1: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
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 org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 2
iconst_0
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.visited:Z
end local 2 4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 2
6: aload 0
aload 1
aload 1
iconst_0
aaload
invokevirtual org.graalvm.compiler.java.BciBlockMapping.fixLoopBits:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)J
lstore 2
start local 2 7: lload 2
lconst_0
lcmp
ifeq 9
8: new org.graalvm.compiler.core.common.PermanentBailoutException
dup
ldc "Non-reducible loop: %016x"
iconst_1
anewarray java.lang.Object
dup
iconst_0
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
end local 2 9: StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopChanges:Z
ifne 0
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 11 1 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
3 4 2 b Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
7 9 2 loop J
MethodParameters:
Name Flags
blockMap
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=10, 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;)J
lstore 3
start local 3 3: lload 3
lconst_0
lcmp
ifeq 5
4: new org.graalvm.compiler.core.common.PermanentBailoutException
dup
ldc "Non-reducible loop"
invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: int long
StackMap stack:
iload 2
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
isub
iconst_1
iadd
istore 5
start local 5 6: iload 5
anewarray org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 6
start local 6 7: iconst_0
istore 7
start local 7 8: iconst_0
istore 8
start local 8 9: goto 17
10: StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock[] int long 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 8
aaload
astore 9
start local 9 11: aload 9
ifnull 16
12: aload 9
iload 7
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.setId:(I)V
13: aload 6
iload 7
iinc 7 1
aload 9
aastore
14: aload 9
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 16
15: aload 0
aload 6
iload 7
iload 8
aload 9
invokevirtual org.graalvm.compiler.java.BciBlockMapping.handleLoopHeader:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;IILorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)I
istore 7
end local 9 16: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
17: iload 8
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
arraylength
if_icmplt 10
end local 8 18: getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 19
iload 7
aload 6
arraylength
iconst_1
isub
if_icmpeq 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
19: StackMap locals:
StackMap stack:
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;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isSynchronized:()Z
ifeq 20
iconst_m1
goto 21
StackMap locals:
StackMap stack:
20: bipush -4
StackMap locals:
StackMap stack: int
21: istore 8
start local 8 22: new org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock
dup
iload 8
invokespecial org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock.<init>:(I)V
astore 9
start local 9 23: aload 9
aload 6
arraylength
iconst_1
isub
invokevirtual org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock.setId:(I)V
24: aload 6
aload 6
arraylength
iconst_1
isub
aload 9
aastore
25: aload 0
aload 6
putfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
26: return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 27 1 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
1 27 2 maxBlocks I
3 27 3 loop J
6 27 5 blockCount I
7 27 6 newBlocks [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
8 27 7 next I
9 18 8 i I
11 16 9 b Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
22 27 8 deoptBci I
23 27 9 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=9, 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 2
iconst_1
isub
istore 6
start local 6 2: iload 3
iconst_1
iadd
istore 7
start local 7 3: goto 13
4: StackMap locals: int 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 5: aload 8
ifnull 12
aload 8
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 12
6: aload 8
iload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.setId:(I)V
7: iload 5
istore 6
8: aload 1
iload 5
iinc 5 1
aload 8
aastore
9: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
iload 7
aconst_null
aastore
10: aload 8
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 12
11: aload 0
aload 1
iload 5
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 5
end local 8 12: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
13: iload 7
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
arraylength
if_icmplt 4
end local 7 14: aload 4
iload 6
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopEnd:I
15: iload 5
ireturn
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 16 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 16 1 newBlocks [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 16 2 nextStart I
0 16 3 i I
0 16 4 loopHeader Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
1 16 5 next I
2 16 6 endOfLoop I
3 14 7 j I
5 12 8 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=4, locals=9, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 1: aload 0
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 32
StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder top int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 3
ifnonnull 5
4: goto 31
5: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder 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 3
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getId:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
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 3
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
6: aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 8
7: aload 2
ldc " LoopHeader"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: StackMap locals:
StackMap stack:
aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isExceptionEntry:Z
ifeq 10
9: aload 2
ldc " ExceptionEntry"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: StackMap locals:
StackMap stack:
aload 3
instanceof org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock
ifeq 12
11: aload 2
ldc " ExceptionDispatch"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: StackMap locals:
StackMap stack:
aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.successors:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 21
13: aload 2
ldc " Successors=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: aload 3
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessors:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 19
StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[] top java.util.Iterator
StackMap stack:
15: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 7
start local 7 16: aload 2
aload 2
invokevirtual java.lang.StringBuilder.length:()I
iconst_1
isub
invokevirtual java.lang.StringBuilder.charAt:(I)C
bipush 91
if_icmpeq 18
17: aload 2
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder 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 7
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getId:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
end local 7 19: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[] top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
20: aload 2
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
aload 3
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lconst_0
lcmp
ifeq 30
22: aload 2
ldc " Loops=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
23: aload 3
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopIdIterable:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 8
goto 28
StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[] top java.util.Iterator
StackMap stack:
24: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 7
start local 7 25: aload 2
aload 2
invokevirtual java.lang.StringBuilder.length:()I
iconst_1
isub
invokevirtual java.lang.StringBuilder.charAt:(I)C
bipush 91
if_icmpne 27
26: aload 2
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
27: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[] int java.util.Iterator
StackMap stack:
aload 2
ldc "B"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
iload 7
aaload
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getId:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
end local 7 28: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[] top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
29: aload 2
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
30: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder org.graalvm.compiler.java.BciBlockMapping$BciBlock int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
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 3 31: StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock[] java.lang.StringBuilder top int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
32: iload 4
iload 5
if_icmplt 2
33: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 34 1 loopHeadersMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
1 34 2 sb Ljava/lang/StringBuilder;
3 31 3 b Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
16 19 7 s Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
25 28 7 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=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifne 17
1: 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:
getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 7
aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lconst_0
lcmp
ifeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 1
lconst_1
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.nextLoop:I
lshl
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
8: 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
9: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
ifnonnull 12
10: aload 0
iconst_4
anewarray org.graalvm.compiler.java.BciBlockMapping$BciBlock
putfield org.graalvm.compiler.java.BciBlockMapping.loopHeaders:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
11: goto 14
StackMap locals:
StackMap stack:
12: 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 14
13: 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;
14: 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
15: aload 1
aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.nextLoop:I
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopId:I
16: aload 0
dup
getfield org.graalvm.compiler.java.BciBlockMapping.nextLoop:I
iconst_1
iadd
putfield org.graalvm.compiler.java.BciBlockMapping.nextLoop:I
17: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.java.BciBlockMapping.$assertionsDisabled:Z
ifne 18
aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
invokestatic java.lang.Long.bitCount:(J)I
iconst_1
if_icmpeq 18
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 19 1 block Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
MethodParameters:
Name Flags
block
private long computeBlockOrder(org.graalvm.compiler.java.BciBlockMapping$BciBlock);
descriptor: (Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.visited:Z
ifeq 7
1: aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.active:Z
ifeq 4
2: aload 0
aload 1
invokevirtual org.graalvm.compiler.java.BciBlockMapping.makeLoopHeader:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
3: aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lreturn
4: StackMap locals:
StackMap stack:
aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 6
5: aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lconst_1
aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopId:I
lshl
ldc -1
lxor
land
lreturn
6: StackMap locals:
StackMap stack:
aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lreturn
7: StackMap locals:
StackMap stack:
aload 1
iconst_1
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.visited:Z
8: aload 1
iconst_1
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.active:Z
9: lconst_0
lstore 2
start local 2 10: aload 1
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessors:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 15
StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock long top java.util.Iterator
StackMap stack:
11: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 4
start local 4 12: lload 2
aload 0
aload 4
invokevirtual org.graalvm.compiler.java.BciBlockMapping.computeBlockOrder:(Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)J
lor
lstore 2
13: aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.active:Z
ifeq 15
14: lload 2
lconst_1
aload 4
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopId:I
lshl
lor
lstore 2
end local 4 15: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
16: aload 1
lload 2
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
17: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "computeBlockOrder(%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
18: aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 20
19: lload 2
lconst_1
aload 1
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopId:I
lshl
ldc -1
lxor
land
lstore 2
20: StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock long
StackMap stack:
aload 1
iconst_0
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.active:Z
21: aload 0
dup
getfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
iconst_1
isub
putfield org.graalvm.compiler.java.BciBlockMapping.blocksNotYetAssignedId:I
22: 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 1
aastore
23: lload 2
lreturn
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 block Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
10 24 2 loops J
12 15 4 successor Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
MethodParameters:
Name Flags
block
private long fixLoopBits(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;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.visited:Z
ifeq 4
1: aload 2
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 3
2: aload 2
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lconst_1
aload 2
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopId:I
lshl
ldc -1
lxor
land
lreturn
3: StackMap locals:
StackMap stack:
aload 2
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lreturn
4: StackMap locals:
StackMap stack:
aload 2
iconst_1
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.visited:Z
5: aload 2
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lstore 3
start local 3 6: aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessors:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 9
StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock long top java.util.Iterator
StackMap stack:
7: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.java.BciBlockMapping$BciBlock
astore 5
start local 5 8: lload 3
aload 0
aload 1
aload 5
invokevirtual org.graalvm.compiler.java.BciBlockMapping.fixLoopBits:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)J
lor
lstore 3
end local 5 9: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: aload 2
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
lload 3
lcmp
ifeq 14
11: aload 0
iconst_1
putfield org.graalvm.compiler.java.BciBlockMapping.loopChanges:Z
12: aload 2
lload 3
putfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loops:J
13: aload 0
getfield org.graalvm.compiler.java.BciBlockMapping.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "fixLoopBits0(%s) -> %x"
aload 2
aload 2
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
14: StackMap locals: org.graalvm.compiler.java.BciBlockMapping org.graalvm.compiler.java.BciBlockMapping$BciBlock[] org.graalvm.compiler.java.BciBlockMapping$BciBlock long
StackMap stack:
aload 2
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.isLoopHeader:Z
ifeq 16
15: lload 3
lconst_1
aload 2
getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.loopId:I
lshl
ldc -1
lxor
land
lstore 3
16: StackMap locals:
StackMap stack:
lload 3
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/graalvm/compiler/java/BciBlockMapping;
0 17 1 blockMap [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
0 17 2 block Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
6 17 3 loops J
8 9 5 successor Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
MethodParameters:
Name Flags
blockMap
block
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=5, 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: aload 4
aload 0
aload 2
invokevirtual org.graalvm.compiler.java.BciBlockMapping.build:(Lorg/graalvm/compiler/bytecode/BytecodeStream;Lorg/graalvm/compiler/options/OptionValues;)V
2: aload 3
iconst_2
invokevirtual org.graalvm.compiler.debug.DebugContext.isDumpEnabled:(I)Z
ifeq 4
3: 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
4: StackMap locals: org.graalvm.compiler.java.BciBlockMapping
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 5 0 stream Lorg/graalvm/compiler/bytecode/BytecodeStream;
0 5 1 code Lorg/graalvm/compiler/bytecode/Bytecode;
0 5 2 options Lorg/graalvm/compiler/options/OptionValues;
0 5 3 debug Lorg/graalvm/compiler/debug/DebugContext;
1 5 4 map Lorg/graalvm/compiler/java/BciBlockMapping;
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;
}
SourceFile: "BciBlockMapping.java"
NestMembers:
org.graalvm.compiler.java.BciBlockMapping$BciBlock org.graalvm.compiler.java.BciBlockMapping$BciBlock$1 org.graalvm.compiler.java.BciBlockMapping$BciBlock$2 org.graalvm.compiler.java.BciBlockMapping$BciBlock$JSRData org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock
InnerClasses:
public BciBlock = org.graalvm.compiler.java.BciBlockMapping$BciBlock of org.graalvm.compiler.java.BciBlockMapping
public ExceptionDispatchBlock = org.graalvm.compiler.java.BciBlockMapping$ExceptionDispatchBlock of org.graalvm.compiler.java.BciBlockMapping