public class org.graalvm.compiler.phases.graph.InferStamps
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.phases.graph.InferStamps
  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: .line 31
            ldc Lorg/graalvm/compiler/phases/graph/InferStamps;
            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.graph.InferStamps.$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 // org.graalvm.compiler.phases.graph.InferStamps this
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.phases.graph.InferStamps this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/phases/graph/InferStamps;

  public static void inferStamps(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 50
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 2
            goto 7
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 1 /* n */
        start local 1 // org.graalvm.compiler.graph.Node n
         2: .line 51
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.ValuePhiNode
            ifeq 7
         3: .line 52
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 3 /* node */
        start local 3 // org.graalvm.compiler.nodes.ValueNode node
         4: .line 53
            aload 3 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.core.common.type.ObjectStamp
            ifeq 7
         5: .line 54
            getstatic org.graalvm.compiler.phases.graph.InferStamps.$assertionsDisabled:Z
            ifne 6
            aload 3 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.hasValues:()Z
            ifne 6
            new java.lang.AssertionError
            dup
            ldc "We assume all Phi and Proxy stamps are legal before the analysis"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 55
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 3 /* node */
            aload 3 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.empty:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.setStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)V
        end local 3 // org.graalvm.compiler.nodes.ValueNode node
        end local 1 // org.graalvm.compiler.graph.Node n
         7: .line 50
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         8: .line 62
            iconst_0
            istore 2 /* z */
        start local 2 // int z
         9: .line 64
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph top int
      StackMap stack:
            iconst_0
            istore 1 /* stampChanged */
        start local 1 // boolean stampChanged
        10: .line 71
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int int top java.util.Iterator
      StackMap stack:
        11: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 3 /* n */
        start local 3 // org.graalvm.compiler.graph.Node n
        12: .line 72
            aload 3 /* n */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 16
        13: .line 73
            aload 3 /* n */
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 5 /* node */
        start local 5 // org.graalvm.compiler.nodes.ValueNode node
        14: .line 74
            aload 5 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.core.common.type.ObjectStamp
            ifeq 16
        15: .line 75
            iload 1 /* stampChanged */
            aload 5 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.inferStamp:()Z
            ior
            istore 1 /* stampChanged */
        end local 5 // org.graalvm.compiler.nodes.ValueNode node
        end local 3 // org.graalvm.compiler.graph.Node n
        16: .line 71
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        17: .line 79
            iinc 2 /* z */ 1
        18: .line 80
            iload 1 /* stampChanged */
            ifeq 20
            iload 2 /* z */
            sipush 10000
        19: .line 63
            if_icmplt 9
        20: .line 86
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int int
      StackMap stack:
            getstatic org.graalvm.compiler.phases.graph.InferStamps.$assertionsDisabled:Z
            ifne 21
            aload 0 /* graph */
            invokestatic org.graalvm.compiler.phases.graph.InferStamps.checkNoEmptyStamp:(Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
            ifne 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 87
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int z
        end local 1 // boolean stampChanged
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0         graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    7     1             n  Lorg/graalvm/compiler/graph/Node;
            4    7     3          node  Lorg/graalvm/compiler/nodes/ValueNode;
           10   22     1  stampChanged  Z
            9   22     2             z  I
           12   16     3             n  Lorg/graalvm/compiler/graph/Node;
           14   16     5          node  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      graph  

  private static boolean checkNoEmptyStamp(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 90
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 2
            goto 5
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 1 /* n */
        start local 1 // org.graalvm.compiler.graph.Node n
         2: .line 91
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.ValuePhiNode
            ifeq 5
         3: .line 92
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 3 /* node */
        start local 3 // org.graalvm.compiler.nodes.ValueNode node
         4: .line 93
            getstatic org.graalvm.compiler.phases.graph.InferStamps.$assertionsDisabled:Z
            ifne 5
            aload 3 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.hasValues:()Z
            ifne 5
            new java.lang.AssertionError
            dup
            ldc "Stamp is empty after analysis. This is not necessarily an error, but a condition that we want to investigate (and then maybe relax or remove the assertion)."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // org.graalvm.compiler.nodes.ValueNode node
        end local 1 // org.graalvm.compiler.graph.Node n
         5: .line 90
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         6: .line 96
            iconst_1
            ireturn
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    5     1      n  Lorg/graalvm/compiler/graph/Node;
            4    5     3   node  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      graph  
}
SourceFile: "InferStamps.java"