public final class org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler implements java.io.Closeable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler
  super_class: java.lang.Object
{
  private static final java.lang.ThreadLocal<org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler> instance;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Lorg/graalvm/compiler/truffle/compiler/PerformanceInformationHandler;>;

  private final org.graalvm.options.OptionValues options;
    descriptor: Lorg/graalvm/options/OptionValues;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Set<org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind> warningKinds;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;>;

  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=2, locals=0, args_size=0
         0: .line 57
            ldc Lorg/graalvm/compiler/truffle/compiler/PerformanceInformationHandler;
            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.truffle.compiler.PerformanceInformationHandler.$assertionsDisabled:Z
         3: .line 59
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putstatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.instance:Ljava/lang/ThreadLocal;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(org.graalvm.options.OptionValues);
    descriptor: (Lorg/graalvm/options/OptionValues;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler this
        start local 1 // org.graalvm.options.OptionValues options
         0: .line 63
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 61
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;
            invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
            putfield org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.warningKinds:Ljava/util/Set;
         2: .line 64
            aload 0 /* this */
            aload 1 /* options */
            putfield org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.options:Lorg/graalvm/options/OptionValues;
         3: .line 65
            return
        end local 1 // org.graalvm.options.OptionValues options
        end local 0 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/graalvm/compiler/truffle/compiler/PerformanceInformationHandler;
            0    4     1  options  Lorg/graalvm/options/OptionValues;
    MethodParameters:
         Name  Flags
      options  

  private void addWarning(org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind);
    descriptor: (Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler this
        start local 1 // org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind warningKind
         0: .line 68
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.warningKinds:Ljava/util/Set;
            aload 1 /* warningKind */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 69
            return
        end local 1 // org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind warningKind
        end local 0 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/graalvm/compiler/truffle/compiler/PerformanceInformationHandler;
            0    2     1  warningKind  Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;
    MethodParameters:
             Name  Flags
      warningKind  

  private java.util.Set<org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind> getWarnings();
    descriptor: ()Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler this
         0: .line 72
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.warningKinds:Ljava/util/Set;
            areturn
        end local 0 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/truffle/compiler/PerformanceInformationHandler;
    Signature: ()Ljava/util/Set<Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;>;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler this
         0: .line 77
            getstatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.$assertionsDisabled:Z
            ifne 1
            getstatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.instance:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            ldc "No PerformanceInformationHandler installed"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 78
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.instance:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
         2: .line 79
            return
        end local 0 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/truffle/compiler/PerformanceInformationHandler;

  static org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler install(org.graalvm.options.OptionValues);
    descriptor: (Lorg/graalvm/options/OptionValues;)Lorg/graalvm/compiler/truffle/compiler/PerformanceInformationHandler;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.graalvm.options.OptionValues options
         0: .line 82
            getstatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.$assertionsDisabled:Z
            ifne 1
            getstatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.instance:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            ifnull 1
            new java.lang.AssertionError
            dup
            ldc "PerformanceInformationHandler already installed"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 83
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler
            dup
            aload 0 /* options */
            invokespecial org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.<init>:(Lorg/graalvm/options/OptionValues;)V
            astore 1 /* handler */
        start local 1 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler handler
         2: .line 84
            getstatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.instance:Ljava/lang/ThreadLocal;
            aload 1 /* handler */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         3: .line 85
            aload 1 /* handler */
            areturn
        end local 1 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler handler
        end local 0 // org.graalvm.options.OptionValues options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  options  Lorg/graalvm/options/OptionValues;
            2    4     1  handler  Lorg/graalvm/compiler/truffle/compiler/PerformanceInformationHandler;
    MethodParameters:
         Name  Flags
      options  

  public static boolean isWarningEnabled(org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind);
    descriptor: (Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind warningKind
         0: .line 89
            getstatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.instance:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler
            astore 1 /* handler */
        start local 1 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler handler
         1: .line 90
            aload 1 /* handler */
            getfield org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.options:Lorg/graalvm/options/OptionValues;
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.TracePerformanceWarnings:Lorg/graalvm/options/OptionKey;
            invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.util.Set
            aload 0 /* warningKind */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 5
         2: .line 91
            aload 1 /* handler */
            getfield org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.options:Lorg/graalvm/options/OptionValues;
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.PerformanceWarningsAreFatal:Lorg/graalvm/options/OptionKey;
            invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.util.Set
            aload 0 /* warningKind */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 5
         3: .line 92
            aload 1 /* handler */
            getfield org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.options:Lorg/graalvm/options/OptionValues;
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.TreatPerformanceWarningsAsErrors:Lorg/graalvm/options/OptionKey;
            invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.util.Set
            aload 0 /* warningKind */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 90
            iconst_0
            ireturn
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler
      StackMap stack:
         5: iconst_1
            ireturn
        end local 1 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler handler
        end local 0 // org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind warningKind
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0  warningKind  Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;
            1    6     1      handler  Lorg/graalvm/compiler/truffle/compiler/PerformanceInformationHandler;
    MethodParameters:
             Name  Flags
      warningKind  

  public static void logPerformanceWarning(org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind, org.graalvm.compiler.truffle.common.CompilableTruffleAST, java.util.List<? extends org.graalvm.compiler.graph.Node>, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/util/List;Ljava/lang/String;Ljava/util/Map;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind warningKind
        start local 1 // org.graalvm.compiler.truffle.common.CompilableTruffleAST compilable
        start local 2 // java.util.List locations
        start local 3 // java.lang.String details
        start local 4 // java.util.Map properties
         0: .line 97
            getstatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.instance:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler
            astore 5 /* handler */
        start local 5 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler handler
         1: .line 98
            aload 5 /* handler */
            aload 0 /* warningKind */
            invokevirtual org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.addWarning:(Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;)V
         2: .line 99
            aload 1 /* compilable */
            ldc "perf warn"
            aload 3 /* details */
            aload 4 /* properties */
            aload 5 /* handler */
            aload 2 /* locations */
            invokevirtual org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.getPerformanceStackTrace:(Ljava/util/List;)Ljava/lang/String;
            invokestatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.logPerformanceWarningImpl:(Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V
         3: .line 100
            return
        end local 5 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler handler
        end local 4 // java.util.Map properties
        end local 3 // java.lang.String details
        end local 2 // java.util.List locations
        end local 1 // org.graalvm.compiler.truffle.common.CompilableTruffleAST compilable
        end local 0 // org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind warningKind
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0  warningKind  Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;
            0    4     1   compilable  Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;
            0    4     2    locations  Ljava/util/List<+Lorg/graalvm/compiler/graph/Node;>;
            0    4     3      details  Ljava/lang/String;
            0    4     4   properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            1    4     5      handler  Lorg/graalvm/compiler/truffle/compiler/PerformanceInformationHandler;
    Signature: (Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/util/List<+Lorg/graalvm/compiler/graph/Node;>;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
    MethodParameters:
             Name  Flags
      warningKind  
      compilable   
      locations    
      details      
      properties   

  private static void logPerformanceInfo(org.graalvm.compiler.truffle.common.CompilableTruffleAST, java.util.List<? extends org.graalvm.compiler.graph.Node>, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/util/List;Ljava/lang/String;Ljava/util/Map;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.truffle.common.CompilableTruffleAST compilable
        start local 1 // java.util.List locations
        start local 2 // java.lang.String details
        start local 3 // java.util.Map properties
         0: .line 103
            aload 0 /* compilable */
            ldc "perf info"
            aload 2 /* details */
            aload 3 /* properties */
            getstatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.instance:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler
            aload 1 /* locations */
            invokevirtual org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.getPerformanceStackTrace:(Ljava/util/List;)Ljava/lang/String;
            invokestatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.logPerformanceWarningImpl:(Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V
         1: .line 104
            return
        end local 3 // java.util.Map properties
        end local 2 // java.lang.String details
        end local 1 // java.util.List locations
        end local 0 // org.graalvm.compiler.truffle.common.CompilableTruffleAST compilable
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  compilable  Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;
            0    2     1   locations  Ljava/util/List<+Lorg/graalvm/compiler/graph/Node;>;
            0    2     2     details  Ljava/lang/String;
            0    2     3  properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/util/List<+Lorg/graalvm/compiler/graph/Node;>;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
    MethodParameters:
            Name  Flags
      compilable  
      locations   
      details     
      properties  

  private static void logPerformanceWarningImpl(org.graalvm.compiler.truffle.common.CompilableTruffleAST, java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>, java.lang.String);
    descriptor: (Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.truffle.common.CompilableTruffleAST compilable
        start local 1 // java.lang.String event
        start local 2 // java.lang.String details
        start local 3 // java.util.Map properties
        start local 4 // java.lang.String message
         0: .line 107
            invokestatic org.graalvm.compiler.truffle.common.TruffleCompilerRuntime.getRuntime:()Lorg/graalvm/compiler/truffle/common/TruffleCompilerRuntime;
            astore 5 /* runtime */
        start local 5 // org.graalvm.compiler.truffle.common.TruffleCompilerRuntime runtime
         1: .line 108
            aload 5 /* runtime */
            aload 0 /* compilable */
            iconst_0
            aload 1 /* event */
            ldc "%-60s|%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* compilable */
            invokeinterface org.graalvm.compiler.truffle.common.CompilableTruffleAST.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* details */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 3 /* properties */
            aload 4 /* message */
            invokeinterface org.graalvm.compiler.truffle.common.TruffleCompilerRuntime.logEvent:(Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;ILjava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V
         2: .line 109
            return
        end local 5 // org.graalvm.compiler.truffle.common.TruffleCompilerRuntime runtime
        end local 4 // java.lang.String message
        end local 3 // java.util.Map properties
        end local 2 // java.lang.String details
        end local 1 // java.lang.String event
        end local 0 // org.graalvm.compiler.truffle.common.CompilableTruffleAST compilable
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  compilable  Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;
            0    3     1       event  Ljava/lang/String;
            0    3     2     details  Ljava/lang/String;
            0    3     3  properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0    3     4     message  Ljava/lang/String;
            1    3     5     runtime  Lorg/graalvm/compiler/truffle/common/TruffleCompilerRuntime;
    Signature: (Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Ljava/lang/String;)V
    MethodParameters:
            Name  Flags
      compilable  
      event       
      details     
      properties  
      message     

  private java.lang.String getPerformanceStackTrace(java.util.List<? extends org.graalvm.compiler.graph.Node>);
    descriptor: (Ljava/util/List;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler this
        start local 1 // java.util.List locations
         0: .line 112
            aload 1 /* locations */
            ifnull 1
            aload 1 /* locations */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
         1: .line 113
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.options:Lorg/graalvm/options/OptionValues;
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.TraceStackTraceLimit:Lorg/graalvm/options/OptionKey;
            invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 2 /* limit */
        start local 2 // int limit
         3: .line 116
            iload 2 /* limit */
            ifgt 5
         4: .line 117
            aconst_null
            areturn
         5: .line 120
      StackMap locals: int
      StackMap stack:
            getstatic org.graalvm.collections.Equivalence.DEFAULT:Lorg/graalvm/collections/Equivalence;
            invokestatic org.graalvm.collections.EconomicMap.create:(Lorg/graalvm/collections/Equivalence;)Lorg/graalvm/collections/EconomicMap;
            astore 3 /* groupedByStackTrace */
        start local 3 // org.graalvm.collections.EconomicMap groupedByStackTrace
         6: .line 121
            aload 1 /* locations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 24
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler java.util.List int org.graalvm.collections.EconomicMap top java.util.Iterator
      StackMap stack:
         7: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 4 /* location */
        start local 4 // org.graalvm.compiler.graph.Node location
         8: .line 122
            aload 4 /* location */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.approxSourceStackTraceElement:(Lorg/graalvm/compiler/graph/Node;)[Ljava/lang/StackTraceElement;
            astore 6 /* stackTrace */
        start local 6 // java.lang.StackTraceElement[] stackTrace
         9: .line 123
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 7 /* sb */
        start local 7 // java.lang.StringBuilder sb
        10: .line 124
            ldc "    "
            astore 8 /* indent */
        start local 8 // java.lang.String indent
        11: .line 125
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        12: goto 17
        13: .line 126
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler java.util.List int org.graalvm.collections.EconomicMap org.graalvm.compiler.graph.Node java.util.Iterator java.lang.StackTraceElement[] java.lang.StringBuilder java.lang.String int
      StackMap stack:
            iload 9 /* i */
            ifeq 15
        14: .line 127
            aload 7 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 129
      StackMap locals:
      StackMap stack:
            aload 7 /* sb */
            aload 8 /* indent */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "at "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* stackTrace */
            iload 9 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        16: .line 125
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 9 /* i */
            aload 6 /* stackTrace */
            arraylength
            if_icmpge 18
            iload 9 /* i */
            iload 2 /* limit */
            if_icmplt 13
        end local 9 // int i
        18: .line 131
      StackMap locals:
      StackMap stack:
            aload 6 /* stackTrace */
            arraylength
            iload 2 /* limit */
            if_icmple 20
        19: .line 132
            aload 7 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 8 /* indent */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 134
      StackMap locals:
      StackMap stack:
            aload 7 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* stackTraceAsString */
        start local 9 // java.lang.String stackTraceAsString
        21: .line 135
            aload 3 /* groupedByStackTrace */
            aload 9 /* stackTraceAsString */
            invokeinterface org.graalvm.collections.EconomicMap.containsKey:(Ljava/lang/Object;)Z
            ifne 23
        22: .line 136
            aload 3 /* groupedByStackTrace */
            aload 9 /* stackTraceAsString */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 138
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* groupedByStackTrace */
            aload 9 /* stackTraceAsString */
            invokeinterface org.graalvm.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            aload 4 /* location */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.lang.String stackTraceAsString
        end local 8 // java.lang.String indent
        end local 7 // java.lang.StringBuilder sb
        end local 6 // java.lang.StackTraceElement[] stackTrace
        end local 4 // org.graalvm.compiler.graph.Node location
        24: .line 121
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler java.util.List int org.graalvm.collections.EconomicMap top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        25: .line 140
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* builder */
        start local 4 // java.lang.StringBuilder builder
        26: .line 141
            aload 3 /* groupedByStackTrace */
            invokeinterface org.graalvm.collections.EconomicMap.getEntries:()Lorg/graalvm/collections/MapCursor;
            astore 5 /* entry */
        start local 5 // org.graalvm.collections.MapCursor entry
        27: .line 142
            goto 37
        28: .line 143
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler java.util.List int org.graalvm.collections.EconomicMap java.lang.StringBuilder org.graalvm.collections.MapCursor
      StackMap stack:
            aload 5 /* entry */
            invokeinterface org.graalvm.collections.MapCursor.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* stackTrace */
        start local 6 // java.lang.String stackTrace
        29: .line 144
            aload 5 /* entry */
            invokeinterface org.graalvm.collections.MapCursor.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            astore 7 /* locationGroup */
        start local 7 // java.util.List locationGroup
        30: .line 145
            aload 4 /* builder */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 32
        31: .line 146
            aload 4 /* builder */
            ldc "%n"
            iconst_0
            anewarray java.lang.Object
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        32: .line 148
      StackMap locals: java.lang.String java.util.List
      StackMap stack:
            aload 6 /* stackTrace */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 35
        33: .line 149
            aload 4 /* builder */
            ldc "  No stack trace available for %s."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* locationGroup */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        34: .line 150
            goto 37
        35: .line 151
      StackMap locals:
      StackMap stack:
            aload 4 /* builder */
            ldc "  Approximated stack trace for %s:"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* locationGroup */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        36: .line 152
            aload 4 /* builder */
            aload 6 /* stackTrace */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 7 // java.util.List locationGroup
        end local 6 // java.lang.String stackTrace
        37: .line 142
      StackMap locals:
      StackMap stack:
            aload 5 /* entry */
            invokeinterface org.graalvm.collections.MapCursor.advance:()Z
            ifne 28
        38: .line 155
            aload 4 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // org.graalvm.collections.MapCursor entry
        end local 4 // java.lang.StringBuilder builder
        end local 3 // org.graalvm.collections.EconomicMap groupedByStackTrace
        end local 2 // int limit
        end local 1 // java.util.List locations
        end local 0 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   39     0                 this  Lorg/graalvm/compiler/truffle/compiler/PerformanceInformationHandler;
            0   39     1            locations  Ljava/util/List<+Lorg/graalvm/compiler/graph/Node;>;
            3   39     2                limit  I
            6   39     3  groupedByStackTrace  Lorg/graalvm/collections/EconomicMap<Ljava/lang/String;Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;>;
            8   24     4             location  Lorg/graalvm/compiler/graph/Node;
            9   24     6           stackTrace  [Ljava/lang/StackTraceElement;
           10   24     7                   sb  Ljava/lang/StringBuilder;
           11   24     8               indent  Ljava/lang/String;
           12   18     9                    i  I
           21   24     9   stackTraceAsString  Ljava/lang/String;
           26   39     4              builder  Ljava/lang/StringBuilder;
           27   39     5                entry  Lorg/graalvm/collections/MapCursor<Ljava/lang/String;Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;>;
           29   37     6           stackTrace  Ljava/lang/String;
           30   37     7        locationGroup  Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
    Signature: (Ljava/util/List<+Lorg/graalvm/compiler/graph/Node;>;)Ljava/lang/String;
    MethodParameters:
           Name  Flags
      locations  

  void reportPerformanceWarnings(org.graalvm.compiler.truffle.common.CompilableTruffleAST, org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=9, args_size=3
        start local 0 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler this
        start local 1 // org.graalvm.compiler.truffle.common.CompilableTruffleAST target
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 160
            aload 2 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 3 /* debug */
        start local 3 // org.graalvm.compiler.debug.DebugContext debug
         1: .line 161
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* warnings */
        start local 4 // java.util.ArrayList warnings
         2: .line 162
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind.VIRTUAL_RUNTIME_CALL:Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;
            invokestatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.isWarningEnabled:(Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;)Z
            ifeq 19
         3: .line 163
            aload 2 /* graph */
            getstatic org.graalvm.compiler.nodes.java.MethodCallTargetNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 18
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler org.graalvm.compiler.truffle.common.CompilableTruffleAST org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.util.ArrayList top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.MethodCallTargetNode
            astore 5 /* call */
        start local 5 // org.graalvm.compiler.nodes.java.MethodCallTargetNode call
         5: .line 164
            aload 5 /* call */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isNative:()Z
            ifeq 7
         6: .line 165
            goto 18
         7: .line 167
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler org.graalvm.compiler.truffle.common.CompilableTruffleAST org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.util.ArrayList org.graalvm.compiler.nodes.java.MethodCallTargetNode java.util.Iterator
      StackMap stack:
            invokestatic org.graalvm.compiler.truffle.common.TruffleCompilerRuntime.getRuntime:()Lorg/graalvm/compiler/truffle/common/TruffleCompilerRuntime;
            astore 7 /* runtime */
        start local 7 // org.graalvm.compiler.truffle.common.TruffleCompilerRuntime runtime
         8: .line 168
            aload 7 /* runtime */
            aload 5 /* call */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            iconst_1
            invokeinterface org.graalvm.compiler.truffle.common.TruffleCompilerRuntime.getInlineKind:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Z)Lorg/graalvm/compiler/truffle/common/TruffleCompilerRuntime$InlineKind;
            invokevirtual org.graalvm.compiler.truffle.common.TruffleCompilerRuntime$InlineKind.allowsInlining:()Z
            ifeq 18
         9: .line 169
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind.VIRTUAL_RUNTIME_CALL:Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;
            aload 1 /* target */
            iconst_1
            anewarray org.graalvm.compiler.nodes.java.MethodCallTargetNode
            dup
            iconst_0
            aload 5 /* call */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
        10: .line 170
            ldc "Partial evaluation could not inline the virtual runtime call %s to %s (%s)."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        11: .line 171
            aload 5 /* call */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.invokeKind:()Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
            aastore
            dup
            iconst_1
        12: .line 172
            aload 5 /* call */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aastore
            dup
            iconst_2
        13: .line 173
            aload 5 /* call */
            aastore
        14: .line 170
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        15: .line 174
            aconst_null
        16: .line 169
            invokestatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.logPerformanceWarning:(Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/util/List;Ljava/lang/String;Ljava/util/Map;)V
        17: .line 175
            aload 4 /* warnings */
            aload 5 /* call */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.graalvm.compiler.truffle.common.TruffleCompilerRuntime runtime
        end local 5 // org.graalvm.compiler.nodes.java.MethodCallTargetNode call
        18: .line 163
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler org.graalvm.compiler.truffle.common.CompilableTruffleAST org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        19: .line 179
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler org.graalvm.compiler.truffle.common.CompilableTruffleAST org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.util.ArrayList
      StackMap stack:
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind.VIRTUAL_INSTANCEOF:Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;
            invokestatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.isWarningEnabled:(Lorg/graalvm/compiler/truffle/options/PolyglotCompilerOptions$PerformanceWarningKind;)Z
            ifeq 41
        20: .line 180
            getstatic org.graalvm.collections.Equivalence.DEFAULT:Lorg/graalvm/collections/Equivalence;
            invokestatic org.graalvm.collections.EconomicMap.create:(Lorg/graalvm/collections/Equivalence;)Lorg/graalvm/collections/EconomicMap;
            astore 5 /* groupedByType */
        start local 5 // org.graalvm.collections.EconomicMap groupedByType
        21: .line 181
            aload 2 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/java/InstanceOfNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 30
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler org.graalvm.compiler.truffle.common.CompilableTruffleAST org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.util.ArrayList org.graalvm.collections.EconomicMap top java.util.Iterator
      StackMap stack:
        22: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.InstanceOfNode
            astore 6 /* instanceOf */
        start local 6 // org.graalvm.compiler.nodes.java.InstanceOfNode instanceOf
        23: .line 182
            aload 6 /* instanceOf */
            invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.type:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.isExact:()Z
            ifne 30
        24: .line 183
            aload 6 /* instanceOf */
            invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.type:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 8 /* type */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaType type
        25: .line 184
            aload 8 /* type */
            invokestatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.isSecondaryType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 30
        26: .line 185
            aload 4 /* warnings */
            aload 6 /* instanceOf */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        27: .line 186
            aload 5 /* groupedByType */
            aload 8 /* type */
            invokeinterface org.graalvm.collections.EconomicMap.containsKey:(Ljava/lang/Object;)Z
            ifne 29
        28: .line 187
            aload 5 /* groupedByType */
            aload 8 /* type */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        29: .line 189
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler org.graalvm.compiler.truffle.common.CompilableTruffleAST org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.util.ArrayList org.graalvm.collections.EconomicMap org.graalvm.compiler.nodes.java.InstanceOfNode java.util.Iterator jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            aload 5 /* groupedByType */
            aload 8 /* type */
            invokeinterface org.graalvm.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.ArrayList
            aload 6 /* instanceOf */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 6 // org.graalvm.compiler.nodes.java.InstanceOfNode instanceOf
        30: .line 181
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler org.graalvm.compiler.truffle.common.CompilableTruffleAST org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.util.ArrayList org.graalvm.collections.EconomicMap top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        31: .line 193
            aload 5 /* groupedByType */
            invokeinterface org.graalvm.collections.EconomicMap.getEntries:()Lorg/graalvm/collections/MapCursor;
            astore 6 /* entry */
        start local 6 // org.graalvm.collections.MapCursor entry
        32: .line 194
            goto 40
        33: .line 195
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler org.graalvm.compiler.truffle.common.CompilableTruffleAST org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.util.ArrayList org.graalvm.collections.EconomicMap org.graalvm.collections.MapCursor
      StackMap stack:
            aload 6 /* entry */
            invokeinterface org.graalvm.collections.MapCursor.getKey:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            astore 7 /* type */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaType type
        34: .line 196
            new java.lang.StringBuilder
            dup
            ldc "Partial evaluation could not resolve virtual instanceof to an exact type due to: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        35: .line 197
            aload 7 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isInterface:()Z
            ifeq 36
            ldc "interface type check: %s"
            goto 37
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler org.graalvm.compiler.truffle.common.CompilableTruffleAST org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.util.ArrayList org.graalvm.collections.EconomicMap org.graalvm.collections.MapCursor jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack: java.lang.StringBuilder
        36: ldc "too deep in class hierarchy: %s"
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler org.graalvm.compiler.truffle.common.CompilableTruffleAST org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.util.ArrayList org.graalvm.collections.EconomicMap org.graalvm.collections.MapCursor jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack: java.lang.StringBuilder java.lang.String
        37: iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* type */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        38: .line 196
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* reason */
        start local 8 // java.lang.String reason
        39: .line 198
            aload 1 /* target */
            aload 6 /* entry */
            invokeinterface org.graalvm.collections.MapCursor.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            aload 8 /* reason */
            ldc "Nodes"
            aload 6 /* entry */
            invokeinterface org.graalvm.collections.MapCursor.getValue:()Ljava/lang/Object;
            invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
            invokestatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.logPerformanceInfo:(Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/util/List;Ljava/lang/String;Ljava/util/Map;)V
        end local 8 // java.lang.String reason
        end local 7 // jdk.vm.ci.meta.ResolvedJavaType type
        40: .line 194
      StackMap locals:
      StackMap stack:
            aload 6 /* entry */
            invokeinterface org.graalvm.collections.MapCursor.advance:()Z
            ifne 33
        end local 6 // org.graalvm.collections.MapCursor entry
        end local 5 // org.graalvm.collections.EconomicMap groupedByType
        41: .line 202
      StackMap locals:
      StackMap stack:
            aload 3 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.areScopesEnabled:()Z
            ifeq 53
            aload 4 /* warnings */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifne 53
        42: .line 203
            aconst_null
            astore 5
            aconst_null
            astore 6
        43: aload 3 /* debug */
            ldc "TrufflePerformanceWarnings"
            aload 2 /* graph */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 7 /* s */
        start local 7 // org.graalvm.compiler.debug.DebugContext$Scope s
        44: .line 204
            aload 3 /* debug */
            iconst_1
            aload 2 /* graph */
            ldc "performance warnings %s"
            aload 4 /* warnings */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        45: .line 205
            aload 7 /* s */
            ifnull 53
            aload 7 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 53
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler org.graalvm.compiler.truffle.common.CompilableTruffleAST org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.util.ArrayList java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
        46: astore 5
            aload 7 /* s */
            ifnull 47
            aload 7 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 7 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
        47: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        48: astore 6
            aload 5
            ifnonnull 49
            aload 6
            astore 5
            goto 50
      StackMap locals:
      StackMap stack:
        49: aload 5
            aload 6
            if_acmpeq 50
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        50: aload 5
            athrow
      StackMap locals: org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler org.graalvm.compiler.truffle.common.CompilableTruffleAST org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.util.ArrayList
      StackMap stack: java.lang.Throwable
        51: astore 5 /* t */
        start local 5 // java.lang.Throwable t
        52: .line 206
            aload 3 /* debug */
            aload 5 /* t */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            pop
        end local 5 // java.lang.Throwable t
        53: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.getWarnings:()Ljava/util/Set;
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.options:Lorg/graalvm/options/OptionValues;
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.PerformanceWarningsAreFatal:Lorg/graalvm/options/OptionKey;
            invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokestatic java.util.Collections.disjoint:(Ljava/util/Collection;Ljava/util/Collection;)Z
            ifne 55
        54: .line 211
            new java.lang.AssertionError
            dup
            ldc "Performance warning detected and is fatal."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        55: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.getWarnings:()Ljava/util/Set;
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.options:Lorg/graalvm/options/OptionValues;
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.TreatPerformanceWarningsAsErrors:Lorg/graalvm/options/OptionKey;
            invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokestatic java.util.Collections.disjoint:(Ljava/util/Collection;Ljava/util/Collection;)Z
            ifne 57
        56: .line 214
            new java.lang.AssertionError
            dup
            ldc "Performance warning detected and is treated as a compilation error."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        57: .line 216
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.ArrayList warnings
        end local 3 // org.graalvm.compiler.debug.DebugContext debug
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.truffle.common.CompilableTruffleAST target
        end local 0 // org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   58     0           this  Lorg/graalvm/compiler/truffle/compiler/PerformanceInformationHandler;
            0   58     1         target  Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;
            0   58     2          graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1   58     3          debug  Lorg/graalvm/compiler/debug/DebugContext;
            2   58     4       warnings  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/ValueNode;>;
            5   18     5           call  Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;
            8   18     7        runtime  Lorg/graalvm/compiler/truffle/common/TruffleCompilerRuntime;
           21   41     5  groupedByType  Lorg/graalvm/collections/EconomicMap<Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/ValueNode;>;>;
           23   30     6     instanceOf  Lorg/graalvm/compiler/nodes/java/InstanceOfNode;
           25   30     8           type  Ljdk/vm/ci/meta/ResolvedJavaType;
           32   41     6          entry  Lorg/graalvm/collections/MapCursor<Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/ValueNode;>;>;
           34   40     7           type  Ljdk/vm/ci/meta/ResolvedJavaType;
           39   40     8         reason  Ljava/lang/String;
           44   47     7              s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           52   53     5              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          44    45      46  any
          43    48      48  any
          42    51      51  Class java.lang.Throwable
    MethodParameters:
        Name  Flags
      target  
      graph   

  private static boolean isPrimarySupertype(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 223
            aload 0 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isInterface:()Z
            ifeq 2
         1: .line 224
            iconst_0
            ireturn
         2: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            astore 1 /* supr */
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType supr
         3: .line 227
            iconst_0
            istore 2 /* depth */
        start local 2 // int depth
         4: .line 228
            goto 7
         5: .line 229
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType int
      StackMap stack:
            iinc 2 /* depth */ 1
         6: .line 230
            aload 1 /* supr */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getSuperclass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 1 /* supr */
         7: .line 228
      StackMap locals:
      StackMap stack:
            aload 1 /* supr */
            ifnonnull 5
         8: .line 232
            iload 2 /* depth */
            bipush 8
            if_icmpgt 9
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         9: iconst_0
            ireturn
        end local 2 // int depth
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType supr
        end local 0 // jdk.vm.ci.meta.ResolvedJavaType type
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   type  Ljdk/vm/ci/meta/ResolvedJavaType;
            3   10     1   supr  Ljdk/vm/ci/meta/ResolvedJavaType;
            4   10     2  depth  I
    MethodParameters:
      Name  Flags
      type  

  private static boolean isSecondaryType(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 236
            aload 0 /* type */
            invokestatic org.graalvm.compiler.truffle.compiler.PerformanceInformationHandler.isPrimarySupertype:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // jdk.vm.ci.meta.ResolvedJavaType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
      Name  Flags
      type  
}
SourceFile: "PerformanceInformationHandler.java"
InnerClasses:
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  public final InvokeKind = org.graalvm.compiler.nodes.CallTargetNode$InvokeKind of org.graalvm.compiler.nodes.CallTargetNode
  public final InlineKind = org.graalvm.compiler.truffle.common.TruffleCompilerRuntime$InlineKind of org.graalvm.compiler.truffle.common.TruffleCompilerRuntime
  public final PerformanceWarningKind = org.graalvm.compiler.truffle.options.PolyglotCompilerOptions$PerformanceWarningKind of org.graalvm.compiler.truffle.options.PolyglotCompilerOptions