public class com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy extends com.oracle.graal.pointsto.AnalysisPolicy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy
  super_class: com.oracle.graal.pointsto.AnalysisPolicy
{
  private com.oracle.graal.pointsto.flow.context.bytecode.BytecodeAnalysisContextPolicy contextPolicy;
    descriptor: Lcom/oracle/graal/pointsto/flow/context/bytecode/BytecodeAnalysisContextPolicy;
    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: .line 63
            ldc Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.options.OptionValues);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // org.graalvm.compiler.options.OptionValues options
         0: .line 68
            aload 0 /* this */
            aload 1 /* options */
            invokespecial com.oracle.graal.pointsto.AnalysisPolicy.<init>:(Lorg/graalvm/compiler/options/OptionValues;)V
         1: .line 69
            aload 0 /* this */
            new com.oracle.graal.pointsto.flow.context.bytecode.BytecodeAnalysisContextPolicy
            dup
            invokespecial com.oracle.graal.pointsto.flow.context.bytecode.BytecodeAnalysisContextPolicy.<init>:()V
            putfield com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.contextPolicy:Lcom/oracle/graal/pointsto/flow/context/bytecode/BytecodeAnalysisContextPolicy;
         2: .line 70
            return
        end local 1 // org.graalvm.compiler.options.OptionValues options
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    3     1  options  Lorg/graalvm/compiler/options/OptionValues;
    MethodParameters:
         Name  Flags
      options  

  public com.oracle.graal.pointsto.flow.context.bytecode.BytecodeAnalysisContextPolicy contextPolicy();
    descriptor: ()Lcom/oracle/graal/pointsto/flow/context/bytecode/BytecodeAnalysisContextPolicy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
         0: .line 74
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.contextPolicy:Lcom/oracle/graal/pointsto/flow/context/bytecode/BytecodeAnalysisContextPolicy;
            areturn
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;

  public boolean needsConstantCache();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
         0: .line 79
            iconst_1
            ireturn
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;

  public boolean isSummaryObject(com.oracle.graal.pointsto.flow.context.object.AnalysisObject);
    descriptor: (Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject object
         0: .line 85
            aload 1 /* object */
            invokevirtual com.oracle.graal.pointsto.flow.context.object.AnalysisObject.isContextInsensitiveObject:()Z
            ireturn
        end local 1 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject object
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    1     1  object  Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
    MethodParameters:
        Name  Flags
      object  

  public boolean isMergingEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
         0: .line 91
            iconst_1
            ireturn
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;

  public void noteMerge(com.oracle.graal.pointsto.BigBang, com.oracle.graal.pointsto.typestate.TypeState);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/typestate/TypeState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // com.oracle.graal.pointsto.BigBang bb
        start local 2 // com.oracle.graal.pointsto.typestate.TypeState t
         0: .line 96
            aload 2 /* t */
            aload 1 /* bb */
            invokevirtual com.oracle.graal.pointsto.typestate.TypeState.noteMerge:(Lcom/oracle/graal/pointsto/BigBang;)V
         1: .line 97
            return
        end local 2 // com.oracle.graal.pointsto.typestate.TypeState t
        end local 1 // com.oracle.graal.pointsto.BigBang bb
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    2     1    bb  Lcom/oracle/graal/pointsto/BigBang;
            0    2     2     t  Lcom/oracle/graal/pointsto/typestate/TypeState;
    MethodParameters:
      Name  Flags
      bb    
      t     

  public void noteMerge(com.oracle.graal.pointsto.BigBang, com.oracle.graal.pointsto.flow.context.object.AnalysisObject[]);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;[Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // com.oracle.graal.pointsto.BigBang bb
        start local 2 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject[] a
         0: .line 101
            aload 2 /* a */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 4
      StackMap locals: com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy com.oracle.graal.pointsto.BigBang com.oracle.graal.pointsto.flow.context.object.AnalysisObject[] top int int com.oracle.graal.pointsto.flow.context.object.AnalysisObject[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* o */
        start local 3 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject o
         2: .line 102
            aload 3 /* o */
            aload 1 /* bb */
            invokevirtual com.oracle.graal.pointsto.flow.context.object.AnalysisObject.noteMerge:(Lcom/oracle/graal/pointsto/BigBang;)V
        end local 3 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject o
         3: .line 101
            iinc 4 1
      StackMap locals:
      StackMap stack:
         4: iload 4
            iload 5
            if_icmplt 1
         5: .line 104
            return
        end local 2 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject[] a
        end local 1 // com.oracle.graal.pointsto.BigBang bb
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    6     1    bb  Lcom/oracle/graal/pointsto/BigBang;
            0    6     2     a  [Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
            2    3     3     o  Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
    MethodParameters:
      Name  Flags
      bb    
      a     

  public void noteMerge(com.oracle.graal.pointsto.BigBang, com.oracle.graal.pointsto.flow.context.object.AnalysisObject);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // com.oracle.graal.pointsto.BigBang bb
        start local 2 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject o
         0: .line 108
            aload 2 /* o */
            aload 1 /* bb */
            invokevirtual com.oracle.graal.pointsto.flow.context.object.AnalysisObject.noteMerge:(Lcom/oracle/graal/pointsto/BigBang;)V
         1: .line 109
            return
        end local 2 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject o
        end local 1 // com.oracle.graal.pointsto.BigBang bb
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    2     1    bb  Lcom/oracle/graal/pointsto/BigBang;
            0    2     2     o  Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
    MethodParameters:
      Name  Flags
      bb    
      o     

  public boolean isContextSensitiveAllocation(com.oracle.graal.pointsto.BigBang, com.oracle.graal.pointsto.meta.AnalysisType, com.oracle.graal.pointsto.flow.context.AnalysisContext);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/meta/AnalysisType;Lcom/oracle/graal/pointsto/flow/context/AnalysisContext;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // com.oracle.graal.pointsto.BigBang bb
        start local 2 // com.oracle.graal.pointsto.meta.AnalysisType type
        start local 3 // com.oracle.graal.pointsto.flow.context.AnalysisContext allocationContext
         0: .line 113
            aload 1 /* bb */
            aload 2 /* type */
            invokevirtual com.oracle.graal.pointsto.BigBang.trackConcreteAnalysisObjects:(Lcom/oracle/graal/pointsto/meta/AnalysisType;)Z
            ireturn
        end local 3 // com.oracle.graal.pointsto.flow.context.AnalysisContext allocationContext
        end local 2 // com.oracle.graal.pointsto.meta.AnalysisType type
        end local 1 // com.oracle.graal.pointsto.BigBang bb
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    1     1                 bb  Lcom/oracle/graal/pointsto/BigBang;
            0    1     2               type  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            0    1     3  allocationContext  Lcom/oracle/graal/pointsto/flow/context/AnalysisContext;
    MethodParameters:
                   Name  Flags
      bb                 
      type               
      allocationContext  

  public com.oracle.graal.pointsto.flow.context.object.AnalysisObject createHeapObject(com.oracle.graal.pointsto.BigBang, com.oracle.graal.pointsto.meta.AnalysisType, com.oracle.graal.pointsto.flow.context.BytecodeLocation, com.oracle.graal.pointsto.flow.context.AnalysisContext);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/meta/AnalysisType;Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;Lcom/oracle/graal/pointsto/flow/context/AnalysisContext;)Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // com.oracle.graal.pointsto.BigBang bb
        start local 2 // com.oracle.graal.pointsto.meta.AnalysisType type
        start local 3 // com.oracle.graal.pointsto.flow.context.BytecodeLocation allocationSite
        start local 4 // com.oracle.graal.pointsto.flow.context.AnalysisContext allocationContext
         0: .line 118
            getstatic com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.$assertionsDisabled:Z
            ifne 1
            getstatic com.oracle.graal.pointsto.api.PointstoOptions.AllocationSiteSensitiveHeap:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.options:Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bb */
            aload 2 /* type */
            aload 4 /* allocationContext */
            invokevirtual com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.isContextSensitiveAllocation:(Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/meta/AnalysisType;Lcom/oracle/graal/pointsto/flow/context/AnalysisContext;)Z
            ifeq 3
         2: .line 120
            new com.oracle.graal.pointsto.flow.context.object.AllocationContextSensitiveObject
            dup
            aload 1 /* bb */
            aload 2 /* type */
            aload 3 /* allocationSite */
            aload 4 /* allocationContext */
            invokespecial com.oracle.graal.pointsto.flow.context.object.AllocationContextSensitiveObject.<init>:(Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/meta/AnalysisType;Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;Lcom/oracle/graal/pointsto/flow/context/AnalysisContext;)V
            areturn
         3: .line 122
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getContextInsensitiveAnalysisObject:()Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
            areturn
        end local 4 // com.oracle.graal.pointsto.flow.context.AnalysisContext allocationContext
        end local 3 // com.oracle.graal.pointsto.flow.context.BytecodeLocation allocationSite
        end local 2 // com.oracle.graal.pointsto.meta.AnalysisType type
        end local 1 // com.oracle.graal.pointsto.BigBang bb
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    4     1                 bb  Lcom/oracle/graal/pointsto/BigBang;
            0    4     2               type  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            0    4     3     allocationSite  Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;
            0    4     4  allocationContext  Lcom/oracle/graal/pointsto/flow/context/AnalysisContext;
    MethodParameters:
                   Name  Flags
      bb                 
      type               
      allocationSite     
      allocationContext  

  public com.oracle.graal.pointsto.flow.context.object.AnalysisObject createConstantObject(com.oracle.graal.pointsto.BigBang, jdk.vm.ci.meta.JavaConstant, com.oracle.graal.pointsto.meta.AnalysisType);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisType;)Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // com.oracle.graal.pointsto.BigBang bb
        start local 2 // jdk.vm.ci.meta.JavaConstant constant
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisType exactType
         0: .line 129
            aload 1 /* bb */
            aload 3 /* exactType */
            invokevirtual com.oracle.graal.pointsto.BigBang.trackConcreteAnalysisObjects:(Lcom/oracle/graal/pointsto/meta/AnalysisType;)Z
            ifeq 2
         1: .line 130
            aload 3 /* exactType */
            aload 1 /* bb */
            aload 2 /* constant */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getCachedConstantObject:(Lcom/oracle/graal/pointsto/BigBang;Ljdk/vm/ci/meta/JavaConstant;)Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
            areturn
         2: .line 132
      StackMap locals:
      StackMap stack:
            aload 3 /* exactType */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getContextInsensitiveAnalysisObject:()Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
            areturn
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisType exactType
        end local 2 // jdk.vm.ci.meta.JavaConstant constant
        end local 1 // com.oracle.graal.pointsto.BigBang bb
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    3     1         bb  Lcom/oracle/graal/pointsto/BigBang;
            0    3     2   constant  Ljdk/vm/ci/meta/JavaConstant;
            0    3     3  exactType  Lcom/oracle/graal/pointsto/meta/AnalysisType;
    MethodParameters:
           Name  Flags
      bb         
      constant   
      exactType  

  public com.oracle.graal.pointsto.flow.context.BytecodeLocation createAllocationSite(com.oracle.graal.pointsto.BigBang, int, com.oracle.graal.pointsto.meta.AnalysisMethod);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;ILcom/oracle/graal/pointsto/meta/AnalysisMethod;)Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // com.oracle.graal.pointsto.BigBang bb
        start local 2 // int bci
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisMethod method
         0: .line 138
            iload 2 /* bci */
            aload 3 /* method */
            invokestatic com.oracle.graal.pointsto.flow.context.BytecodeLocation.create:(ILcom/oracle/graal/pointsto/meta/AnalysisMethod;)Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;
            areturn
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        end local 2 // int bci
        end local 1 // com.oracle.graal.pointsto.BigBang bb
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    1     1      bb  Lcom/oracle/graal/pointsto/BigBang;
            0    1     2     bci  I
            0    1     3  method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
    MethodParameters:
        Name  Flags
      bb      
      bci     
      method  

  public com.oracle.graal.pointsto.typestore.FieldTypeStore createFieldTypeStore(com.oracle.graal.pointsto.flow.context.object.AnalysisObject, com.oracle.graal.pointsto.meta.AnalysisField, com.oracle.graal.pointsto.meta.AnalysisUniverse);
    descriptor: (Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;Lcom/oracle/graal/pointsto/meta/AnalysisField;Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;)Lcom/oracle/graal/pointsto/typestore/FieldTypeStore;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject object
        start local 2 // com.oracle.graal.pointsto.meta.AnalysisField field
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisUniverse universe
         0: .line 143
            getstatic com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.$assertionsDisabled:Z
            ifne 1
            getstatic com.oracle.graal.pointsto.api.PointstoOptions.AllocationSiteSensitiveHeap:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.options:Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 144
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            invokevirtual com.oracle.graal.pointsto.flow.context.object.AnalysisObject.isContextInsensitiveObject:()Z
            ifeq 3
         2: .line 145
            new com.oracle.graal.pointsto.typestore.SplitFieldTypeStore
            dup
            aload 2 /* field */
            aload 1 /* object */
            invokespecial com.oracle.graal.pointsto.typestore.SplitFieldTypeStore.<init>:(Lcom/oracle/graal/pointsto/meta/AnalysisField;Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;)V
            areturn
         3: .line 147
      StackMap locals:
      StackMap stack:
            new com.oracle.graal.pointsto.typestore.UnifiedFieldTypeStore
            dup
            aload 2 /* field */
            aload 1 /* object */
            invokespecial com.oracle.graal.pointsto.typestore.UnifiedFieldTypeStore.<init>:(Lcom/oracle/graal/pointsto/meta/AnalysisField;Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;)V
            areturn
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisUniverse universe
        end local 2 // com.oracle.graal.pointsto.meta.AnalysisField field
        end local 1 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject object
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    4     1    object  Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
            0    4     2     field  Lcom/oracle/graal/pointsto/meta/AnalysisField;
            0    4     3  universe  Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
    MethodParameters:
          Name  Flags
      object    
      field     
      universe  

  public com.oracle.graal.pointsto.typestore.ArrayElementsTypeStore createArrayElementsTypeStore(com.oracle.graal.pointsto.flow.context.object.AnalysisObject, com.oracle.graal.pointsto.meta.AnalysisUniverse);
    descriptor: (Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;)Lcom/oracle/graal/pointsto/typestore/ArrayElementsTypeStore;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject object
        start local 2 // com.oracle.graal.pointsto.meta.AnalysisUniverse universe
         0: .line 153
            getstatic com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.$assertionsDisabled:Z
            ifne 1
            getstatic com.oracle.graal.pointsto.api.PointstoOptions.AllocationSiteSensitiveHeap:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.options:Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 154
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            invokevirtual com.oracle.graal.pointsto.flow.context.object.AnalysisObject.type:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isArray:()Z
            ifeq 7
         2: .line 155
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.aliasArrayTypeFlows:Z
            ifeq 6
         3: .line 157
            aload 1 /* object */
            invokevirtual com.oracle.graal.pointsto.flow.context.object.AnalysisObject.type:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getElementalType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isJavaLangObject:()Z
            ifeq 5
            aload 1 /* object */
            invokevirtual com.oracle.graal.pointsto.flow.context.object.AnalysisObject.isContextInsensitiveObject:()Z
            ifeq 5
         4: .line 159
            new com.oracle.graal.pointsto.typestore.UnifiedArrayElementsTypeStore
            dup
            aload 1 /* object */
            invokespecial com.oracle.graal.pointsto.typestore.UnifiedArrayElementsTypeStore.<init>:(Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;)V
            areturn
         5: .line 161
      StackMap locals:
      StackMap stack:
            aload 2 /* universe */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.objectType:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getArrayClass:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getContextInsensitiveAnalysisObject:()Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
            invokevirtual com.oracle.graal.pointsto.flow.context.object.AnalysisObject.getArrayElementsTypeStore:()Lcom/oracle/graal/pointsto/typestore/ArrayElementsTypeStore;
            areturn
         6: .line 163
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            invokestatic com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.getArrayElementsTypeStore:(Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;)Lcom/oracle/graal/pointsto/typestore/ArrayElementsTypeStore;
            areturn
         7: .line 165
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // com.oracle.graal.pointsto.meta.AnalysisUniverse universe
        end local 1 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject object
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    8     1    object  Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
            0    8     2  universe  Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
    MethodParameters:
          Name  Flags
      object    
      universe  

  private static com.oracle.graal.pointsto.typestore.ArrayElementsTypeStore getArrayElementsTypeStore(com.oracle.graal.pointsto.flow.context.object.AnalysisObject);
    descriptor: (Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;)Lcom/oracle/graal/pointsto/typestore/ArrayElementsTypeStore;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject object
         0: .line 170
            aload 0 /* object */
            invokevirtual com.oracle.graal.pointsto.flow.context.object.AnalysisObject.isContextInsensitiveObject:()Z
            ifeq 2
         1: .line 171
            new com.oracle.graal.pointsto.typestore.SplitArrayElementsTypeStore
            dup
            aload 0 /* object */
            invokespecial com.oracle.graal.pointsto.typestore.SplitArrayElementsTypeStore.<init>:(Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;)V
            areturn
         2: .line 173
      StackMap locals:
      StackMap stack:
            new com.oracle.graal.pointsto.typestore.UnifiedArrayElementsTypeStore
            dup
            aload 0 /* object */
            invokespecial com.oracle.graal.pointsto.typestore.UnifiedArrayElementsTypeStore.<init>:(Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;)V
            areturn
        end local 0 // com.oracle.graal.pointsto.flow.context.object.AnalysisObject object
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  object  Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
    MethodParameters:
        Name  Flags
      object  

  public com.oracle.graal.pointsto.flow.AbstractVirtualInvokeTypeFlow createVirtualInvokeTypeFlow(jdk.vm.ci.code.BytecodePosition, com.oracle.graal.pointsto.meta.AnalysisType, com.oracle.graal.pointsto.meta.AnalysisMethod, com.oracle.graal.pointsto.flow.TypeFlow<?>[], com.oracle.graal.pointsto.flow.ActualReturnTypeFlow, com.oracle.graal.pointsto.flow.context.BytecodeLocation);
    descriptor: (Ljdk/vm/ci/code/BytecodePosition;Lcom/oracle/graal/pointsto/meta/AnalysisType;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;[Lcom/oracle/graal/pointsto/flow/TypeFlow;Lcom/oracle/graal/pointsto/flow/ActualReturnTypeFlow;Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;)Lcom/oracle/graal/pointsto/flow/AbstractVirtualInvokeTypeFlow;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // jdk.vm.ci.code.BytecodePosition invokeLocation
        start local 2 // com.oracle.graal.pointsto.meta.AnalysisType receiverType
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisMethod targetMethod
        start local 4 // com.oracle.graal.pointsto.flow.TypeFlow[] actualParameters
        start local 5 // com.oracle.graal.pointsto.flow.ActualReturnTypeFlow actualReturn
        start local 6 // com.oracle.graal.pointsto.flow.context.BytecodeLocation location
         0: .line 180
            new com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy$BytecodeSensitiveVirtualInvokeTypeFlow
            dup
            aload 1 /* invokeLocation */
            aload 2 /* receiverType */
            aload 3 /* targetMethod */
            aload 4 /* actualParameters */
            aload 5 /* actualReturn */
            aload 6 /* location */
            invokespecial com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy$BytecodeSensitiveVirtualInvokeTypeFlow.<init>:(Ljdk/vm/ci/code/BytecodePosition;Lcom/oracle/graal/pointsto/meta/AnalysisType;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;[Lcom/oracle/graal/pointsto/flow/TypeFlow;Lcom/oracle/graal/pointsto/flow/ActualReturnTypeFlow;Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;)V
            areturn
        end local 6 // com.oracle.graal.pointsto.flow.context.BytecodeLocation location
        end local 5 // com.oracle.graal.pointsto.flow.ActualReturnTypeFlow actualReturn
        end local 4 // com.oracle.graal.pointsto.flow.TypeFlow[] actualParameters
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisMethod targetMethod
        end local 2 // com.oracle.graal.pointsto.meta.AnalysisType receiverType
        end local 1 // jdk.vm.ci.code.BytecodePosition invokeLocation
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    1     1    invokeLocation  Ljdk/vm/ci/code/BytecodePosition;
            0    1     2      receiverType  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            0    1     3      targetMethod  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0    1     4  actualParameters  [Lcom/oracle/graal/pointsto/flow/TypeFlow;
            0    1     5      actualReturn  Lcom/oracle/graal/pointsto/flow/ActualReturnTypeFlow;
            0    1     6          location  Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;
    Signature: (Ljdk/vm/ci/code/BytecodePosition;Lcom/oracle/graal/pointsto/meta/AnalysisType;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;[Lcom/oracle/graal/pointsto/flow/TypeFlow<*>;Lcom/oracle/graal/pointsto/flow/ActualReturnTypeFlow;Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;)Lcom/oracle/graal/pointsto/flow/AbstractVirtualInvokeTypeFlow;
    MethodParameters:
                  Name  Flags
      invokeLocation    
      receiverType      
      targetMethod      
      actualParameters  
      actualReturn      
      location          

  public com.oracle.graal.pointsto.flow.AbstractSpecialInvokeTypeFlow createSpecialInvokeTypeFlow(jdk.vm.ci.code.BytecodePosition, com.oracle.graal.pointsto.meta.AnalysisType, com.oracle.graal.pointsto.meta.AnalysisMethod, com.oracle.graal.pointsto.flow.TypeFlow<?>[], com.oracle.graal.pointsto.flow.ActualReturnTypeFlow, com.oracle.graal.pointsto.flow.context.BytecodeLocation);
    descriptor: (Ljdk/vm/ci/code/BytecodePosition;Lcom/oracle/graal/pointsto/meta/AnalysisType;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;[Lcom/oracle/graal/pointsto/flow/TypeFlow;Lcom/oracle/graal/pointsto/flow/ActualReturnTypeFlow;Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;)Lcom/oracle/graal/pointsto/flow/AbstractSpecialInvokeTypeFlow;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
        start local 1 // jdk.vm.ci.code.BytecodePosition invokeLocation
        start local 2 // com.oracle.graal.pointsto.meta.AnalysisType receiverType
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisMethod targetMethod
        start local 4 // com.oracle.graal.pointsto.flow.TypeFlow[] actualParameters
        start local 5 // com.oracle.graal.pointsto.flow.ActualReturnTypeFlow actualReturn
        start local 6 // com.oracle.graal.pointsto.flow.context.BytecodeLocation location
         0: .line 186
            new com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy$BytecodeSensitiveSpecialInvokeTypeFlow
            dup
            aload 1 /* invokeLocation */
            aload 2 /* receiverType */
            aload 3 /* targetMethod */
            aload 4 /* actualParameters */
            aload 5 /* actualReturn */
            aload 6 /* location */
            invokespecial com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy$BytecodeSensitiveSpecialInvokeTypeFlow.<init>:(Ljdk/vm/ci/code/BytecodePosition;Lcom/oracle/graal/pointsto/meta/AnalysisType;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;[Lcom/oracle/graal/pointsto/flow/TypeFlow;Lcom/oracle/graal/pointsto/flow/ActualReturnTypeFlow;Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;)V
            areturn
        end local 6 // com.oracle.graal.pointsto.flow.context.BytecodeLocation location
        end local 5 // com.oracle.graal.pointsto.flow.ActualReturnTypeFlow actualReturn
        end local 4 // com.oracle.graal.pointsto.flow.TypeFlow[] actualParameters
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisMethod targetMethod
        end local 2 // com.oracle.graal.pointsto.meta.AnalysisType receiverType
        end local 1 // jdk.vm.ci.code.BytecodePosition invokeLocation
        end local 0 // com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/oracle/graal/pointsto/BytecodeSensitiveAnalysisPolicy;
            0    1     1    invokeLocation  Ljdk/vm/ci/code/BytecodePosition;
            0    1     2      receiverType  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            0    1     3      targetMethod  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0    1     4  actualParameters  [Lcom/oracle/graal/pointsto/flow/TypeFlow;
            0    1     5      actualReturn  Lcom/oracle/graal/pointsto/flow/ActualReturnTypeFlow;
            0    1     6          location  Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;
    Signature: (Ljdk/vm/ci/code/BytecodePosition;Lcom/oracle/graal/pointsto/meta/AnalysisType;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;[Lcom/oracle/graal/pointsto/flow/TypeFlow<*>;Lcom/oracle/graal/pointsto/flow/ActualReturnTypeFlow;Lcom/oracle/graal/pointsto/flow/context/BytecodeLocation;)Lcom/oracle/graal/pointsto/flow/AbstractSpecialInvokeTypeFlow;
    MethodParameters:
                  Name  Flags
      invokeLocation    
      receiverType      
      targetMethod      
      actualParameters  
      actualReturn      
      location          

  public com.oracle.graal.pointsto.flow.context.AnalysisContextPolicy contextPolicy();
    descriptor: ()Lcom/oracle/graal/pointsto/flow/context/AnalysisContextPolicy;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy.contextPolicy:()Lcom/oracle/graal/pointsto/flow/context/bytecode/BytecodeAnalysisContextPolicy;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "BytecodeSensitiveAnalysisPolicy.java"
NestMembers:
  com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy$BytecodeSensitiveSpecialInvokeTypeFlow  com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy$BytecodeSensitiveVirtualInvokeTypeFlow
InnerClasses:
  private final BytecodeSensitiveSpecialInvokeTypeFlow = com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy$BytecodeSensitiveSpecialInvokeTypeFlow of com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy
  private BytecodeSensitiveVirtualInvokeTypeFlow = com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy$BytecodeSensitiveVirtualInvokeTypeFlow of com.oracle.graal.pointsto.BytecodeSensitiveAnalysisPolicy