public class org.graalvm.compiler.phases.util.ValueMergeUtil
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.phases.util.ValueMergeUtil
super_class: java.lang.Object
{
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/phases/util/ValueMergeUtil;
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.phases.util.ValueMergeUtil.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/phases/util/ValueMergeUtil;
public static org.graalvm.compiler.nodes.ValueNode mergeReturns(org.graalvm.compiler.nodes.AbstractMergeNode, java.util.List<? extends org.graalvm.compiler.nodes.ReturnNode>);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/graalvm/compiler/phases/util/ValueMergeUtil.lambda$0(Lorg/graalvm/compiler/nodes/ReturnNode;)Lorg/graalvm/compiler/nodes/ValueNode; (6)
(Lorg/graalvm/compiler/nodes/ReturnNode;)Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.phases.util.ValueMergeUtil.mergeValueProducers:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List;Ljava/util/function/Function;Ljava/util/function/Function;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
0 1 1 returnNodes Ljava/util/List<+Lorg/graalvm/compiler/nodes/ReturnNode;>;
Signature: (Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List<+Lorg/graalvm/compiler/nodes/ReturnNode;>;)Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
merge
returnNodes
public static <T> org.graalvm.compiler.nodes.ValueNode mergeValueProducers(org.graalvm.compiler.nodes.AbstractMergeNode, java.util.List<? extends T>, java.util.function.Function<T, org.graalvm.compiler.nodes.FixedWithNextNode>, java.util.function.Function<T, org.graalvm.compiler.nodes.ValueNode>);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List;Ljava/util/function/Function;Ljava/util/function/Function;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: aconst_null
astore 5
start local 5 2: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 27
StackMap locals: org.graalvm.compiler.nodes.AbstractMergeNode java.util.List java.util.function.Function java.util.function.Function org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.PhiNode top java.util.Iterator
StackMap stack:
3: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Object
astore 6
start local 6 4: aload 3
aload 6
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 8
start local 8 5: aload 8
ifnull 19
6: aload 5
ifnonnull 9
aload 4
ifnull 7
aload 4
aload 8
if_acmpne 9
7: StackMap locals: org.graalvm.compiler.nodes.AbstractMergeNode java.util.List java.util.function.Function java.util.function.Function org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.PhiNode java.lang.Object java.util.Iterator org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 8
astore 4
8: goto 19
StackMap locals:
StackMap stack:
9: aload 5
ifnonnull 18
10: aload 0
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.ValuePhiNode
dup
aload 8
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.unrestricted:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 0
invokespecial org.graalvm.compiler.nodes.ValuePhiNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addWithoutUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 5
11: iconst_0
istore 9
start local 9 12: goto 15
13: StackMap locals: int
StackMap stack:
aload 5
aload 4
invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
14: iinc 9 1
StackMap locals:
StackMap stack:
15: iload 9
aload 0
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndCount:()I
if_icmplt 13
end local 9 16: aload 5
aload 8
invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
17: goto 19
18: StackMap locals:
StackMap stack:
aload 5
aload 8
invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
19: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.EndNode
dup
invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.EndNode
astore 9
start local 9 20: aload 0
aload 9
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
21: aload 2
ifnonnull 25
22: getstatic org.graalvm.compiler.phases.util.ValueMergeUtil.$assertionsDisabled:Z
ifne 23
aload 6
instanceof org.graalvm.compiler.nodes.ReturnNode
ifne 23
aload 6
instanceof org.graalvm.compiler.nodes.UnwindNode
ifne 23
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: StackMap locals: org.graalvm.compiler.nodes.EndNode
StackMap stack:
aload 6
checkcast org.graalvm.compiler.nodes.ControlSinkNode
aload 9
invokevirtual org.graalvm.compiler.nodes.ControlSinkNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
24: goto 27
25: StackMap locals:
StackMap stack:
aload 2
aload 6
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
astore 10
start local 10 26: aload 10
aload 9
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 10 end local 9 end local 8 end local 6 27: StackMap locals: org.graalvm.compiler.nodes.AbstractMergeNode java.util.List java.util.function.Function java.util.function.Function org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.PhiNode top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
28: aload 5
ifnull 32
29: getstatic org.graalvm.compiler.phases.util.ValueMergeUtil.$assertionsDisabled:Z
ifne 30
aload 5
invokevirtual org.graalvm.compiler.nodes.PhiNode.verify:()Z
ifne 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals: org.graalvm.compiler.nodes.AbstractMergeNode java.util.List java.util.function.Function java.util.function.Function org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.PhiNode
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.nodes.PhiNode.inferStamp:()Z
pop
31: aload 5
areturn
32: StackMap locals:
StackMap stack:
aload 4
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 33 0 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
0 33 1 valueProducers Ljava/util/List<+TT;>;
0 33 2 lastInstrFunction Ljava/util/function/Function<TT;Lorg/graalvm/compiler/nodes/FixedWithNextNode;>;
0 33 3 valueFunction Ljava/util/function/Function<TT;Lorg/graalvm/compiler/nodes/ValueNode;>;
1 33 4 singleResult Lorg/graalvm/compiler/nodes/ValueNode;
2 33 5 phiResult Lorg/graalvm/compiler/nodes/PhiNode;
4 27 6 valueProducer TT;
5 27 8 result Lorg/graalvm/compiler/nodes/ValueNode;
12 16 9 i I
20 27 9 endNode Lorg/graalvm/compiler/nodes/EndNode;
26 27 10 lastInstr Lorg/graalvm/compiler/nodes/FixedWithNextNode;
Signature: <T:Ljava/lang/Object;>(Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List<+TT;>;Ljava/util/function/Function<TT;Lorg/graalvm/compiler/nodes/FixedWithNextNode;>;Ljava/util/function/Function<TT;Lorg/graalvm/compiler/nodes/ValueNode;>;)Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
merge
valueProducers
lastInstrFunction
valueFunction
private static org.graalvm.compiler.nodes.ValueNode lambda$0(org.graalvm.compiler.nodes.ReturnNode);
descriptor: (Lorg/graalvm/compiler/nodes/ReturnNode;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 returnNode Lorg/graalvm/compiler/nodes/ReturnNode;
}
SourceFile: "ValueMergeUtil.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles