public final class org.graalvm.compiler.truffle.test.EncodedGraphCacheTest extends org.graalvm.compiler.truffle.test.PartialEvaluationTest
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.truffle.test.EncodedGraphCacheTest
  super_class: org.graalvm.compiler.truffle.test.PartialEvaluationTest
{
  final jdk.vm.ci.meta.ResolvedJavaMethod testMethod;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0010) ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
         0: .line 63
            aload 0 /* this */
            invokespecial org.graalvm.compiler.truffle.test.PartialEvaluationTest.<init>:()V
         1: .line 115
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest$InvalidationTestNode;
            ldc "execute"
            invokevirtual org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.getResolvedJavaMethod:(Ljava/lang/Class;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            putfield org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
         2: .line 63
            return
        end local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;

  public static void resetCompiler();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 67
            ldc "This test does not apply to SVM runtime where the compiler is initialized eagerly."
            getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
            invokestatic org.junit.Assume.assumeFalse:(Ljava/lang/String;Z)V
         1: .line 69
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "resetCompiler"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 0 /* m */
        start local 0 // java.lang.reflect.Method m
         2: .line 70
            aload 0 /* m */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 0 // java.lang.reflect.Method m
         3: .line 71
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Exception
         4: astore 0 /* e */
        start local 0 // java.lang.Exception e
         5: .line 72
            new java.lang.AssertionError
            dup
            aload 0 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 0 // java.lang.Exception e
         6: .line 74
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2    3     0     m  Ljava/lang/reflect/Method;
            5    6     0     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.AfterClass()

  public void resetCompilerBefore();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
         0: .line 79
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.resetCompiler:()V
         1: .line 80
            return
        end local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;
    RuntimeVisibleAnnotations: 
      org.junit.Before()

  private static org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl getTruffleCompilerFromRuntime(org.graalvm.compiler.truffle.runtime.OptimizedCallTarget);
    descriptor: (Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
         0: .line 83
            invokestatic org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.getRuntime:()Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
            aload 0 /* callTarget */
            invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.getTruffleCompiler:(Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;)Lorg/graalvm/compiler/truffle/common/TruffleCompiler;
            checkcast org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl
            areturn
        end local 0 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  callTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
    MethodParameters:
            Name  Flags
      callTarget  

  private static org.graalvm.compiler.truffle.test.nodes.RootTestNode rootTestNode();
    descriptor: ()Lorg/graalvm/compiler/truffle/test/nodes/RootTestNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 118
            new org.graalvm.compiler.truffle.test.nodes.RootTestNode
            dup
            new com.oracle.truffle.api.frame.FrameDescriptor
            dup
            invokespecial com.oracle.truffle.api.frame.FrameDescriptor.<init>:()V
            ldc "test"
            new org.graalvm.compiler.truffle.test.EncodedGraphCacheTest$InvalidationTestNode
            dup
            invokespecial org.graalvm.compiler.truffle.test.EncodedGraphCacheTest$InvalidationTestNode.<init>:()V
            invokespecial org.graalvm.compiler.truffle.test.nodes.RootTestNode.<init>:(Lcom/oracle/truffle/api/frame/FrameDescriptor;Ljava/lang/String;Lorg/graalvm/compiler/truffle/test/nodes/AbstractTestNode;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean encodedGraphCacheContains(org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl, jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl compiler
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
         0: .line 122
            aload 0 /* compiler */
            invokevirtual org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl.getPartialEvaluator:()Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getOrCreateEncodedGraphCache:()Lorg/graalvm/collections/EconomicMap;
            astore 2 /* cache */
        start local 2 // org.graalvm.collections.EconomicMap cache
         1: .line 123
            aload 2 /* cache */
            aload 1 /* method */
            invokeinterface org.graalvm.collections.EconomicMap.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // org.graalvm.collections.EconomicMap cache
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl compiler
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  compiler  Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;
            0    2     1    method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            1    2     2     cache  Lorg/graalvm/collections/EconomicMap<Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/EncodedGraph;>;
    MethodParameters:
          Name  Flags
      compiler  
      method    

  private static org.graalvm.compiler.truffle.runtime.OptimizedCallTarget compileAST(com.oracle.truffle.api.nodes.RootNode);
    descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=8, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.RootNode rootNode
         0: .line 128
            invokestatic org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.getRuntime:()Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
            astore 1 /* runtime */
        start local 1 // org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime runtime
         1: .line 129
            aload 1 /* runtime */
            aload 0 /* rootNode */
            invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
            astore 2 /* target */
        start local 2 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget target
         2: .line 130
            new org.graalvm.compiler.debug.DebugContext$Builder
            dup
            aload 1 /* runtime */
            ldc Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.getGraalOptions:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.options.OptionValues
            invokespecial org.graalvm.compiler.debug.DebugContext$Builder.<init>:(Lorg/graalvm/compiler/options/OptionValues;)V
            invokevirtual org.graalvm.compiler.debug.DebugContext$Builder.build:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 3 /* debug */
        start local 3 // org.graalvm.compiler.debug.DebugContext debug
         3: .line 131
            aconst_null
            astore 4
            aconst_null
            astore 5
         4: aload 3 /* debug */
            ldc "EncodedGraphCacheTest"
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 6 /* s */
        start local 6 // org.graalvm.compiler.debug.DebugContext$Scope s
         5: .line 132
            aload 2 /* target */
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.getTruffleCompilerFromRuntime:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;
            aload 2 /* target */
            invokevirtual org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl.createCompilationIdentifier:(Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;)Lorg/graalvm/compiler/truffle/compiler/TruffleCompilationIdentifier;
            astore 7 /* compilationId */
        start local 7 // org.graalvm.compiler.core.common.CompilationIdentifier compilationId
         6: .line 133
            aload 2 /* target */
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.getTruffleCompilerFromRuntime:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;
            aload 2 /* target */
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getOptionValues:()Lorg/graalvm/options/OptionValues;
            aload 3 /* debug */
            aload 2 /* target */
            new org.graalvm.compiler.truffle.runtime.TruffleInlining
            dup
            invokespecial org.graalvm.compiler.truffle.runtime.TruffleInlining.<init>:()V
            aload 7 /* compilationId */
            aconst_null
            aconst_null
            invokevirtual org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl.compileAST:(Lorg/graalvm/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Lorg/graalvm/compiler/truffle/common/TruffleMetaAccessProvider;Lorg/graalvm/compiler/core/common/CompilationIdentifier;Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl$CancellableTruffleCompilationTask;Lorg/graalvm/compiler/truffle/common/TruffleCompilerListener;)V
         7: .line 134
            aload 2 /* target */
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.isValid:()Z
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.assertTrue:(Z)V
         8: .line 135
            aload 2 /* target */
         9: .line 136
            aload 6 /* s */
            ifnull 10
            aload 6 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        10: .line 135
      StackMap locals: com.oracle.truffle.api.nodes.RootNode org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime org.graalvm.compiler.truffle.runtime.OptimizedCallTarget org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.core.common.CompilationIdentifier
      StackMap stack: org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
            areturn
        end local 7 // org.graalvm.compiler.core.common.CompilationIdentifier compilationId
      StackMap locals: com.oracle.truffle.api.nodes.RootNode org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime org.graalvm.compiler.truffle.runtime.OptimizedCallTarget org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
        11: astore 4
        12: .line 136
            aload 6 /* s */
            ifnull 13
            aload 6 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 6 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
        13: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 5
            aload 4
            ifnonnull 15
            aload 5
            astore 4
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 4
            aload 5
            if_acmpeq 16
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 4
            athrow
        end local 3 // org.graalvm.compiler.debug.DebugContext debug
        end local 2 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget target
        end local 1 // org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime runtime
        end local 0 // com.oracle.truffle.api.nodes.RootNode rootNode
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0       rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            1   17     1        runtime  Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
            2   17     2         target  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            3   17     3          debug  Lorg/graalvm/compiler/debug/DebugContext;
            5   13     6              s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
            6   11     7  compilationId  Lorg/graalvm/compiler/core/common/CompilationIdentifier;
      Exception table:
        from    to  target  type
           5     9      11  any
           4    10      14  any
          11    14      14  any
    MethodParameters:
          Name  Flags
      rootNode  

  private void testHelper(int, int, java.util.function.Consumer<org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl>);
    descriptor: (IILjava/util/function/Consumer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
        start local 1 // int graphCapacity
        start local 2 // int purgeDelay
        start local 3 // java.util.function.Consumer verification
         0: .line 140
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
         1: .line 141
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowExperimentalOptions:(Z)Lorg/graalvm/polyglot/Context$Builder;
         2: .line 142
            ldc "engine.EncodedGraphCacheCapacity"
            iload 1 /* graphCapacity */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
         3: .line 143
            ldc "engine.EncodedGraphCachePurgeDelay"
            iload 2 /* purgeDelay */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
         4: .line 144
            ldc "engine.CompilerIdleDelay"
            ldc "0"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
         5: .line 140
            invokevirtual org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.setupContext:(Lorg/graalvm/polyglot/Context$Builder;)V
         6: .line 146
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.rootTestNode:()Lorg/graalvm/compiler/truffle/test/nodes/RootTestNode;
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.compileAST:(Lcom/oracle/truffle/api/nodes/RootNode;)Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            astore 4 /* callTarget */
        start local 4 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
         7: .line 147
            aload 4 /* callTarget */
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.getTruffleCompilerFromRuntime:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;
            astore 5 /* truffleCompiler */
        start local 5 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl truffleCompiler
         8: .line 148
            aload 3 /* verification */
            aload 5 /* truffleCompiler */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
         9: .line 149
            return
        end local 5 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl truffleCompiler
        end local 4 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
        end local 3 // java.util.function.Consumer verification
        end local 2 // int purgeDelay
        end local 1 // int graphCapacity
        end local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;
            0   10     1    graphCapacity  I
            0   10     2       purgeDelay  I
            0   10     3     verification  Ljava/util/function/Consumer<Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;>;
            7   10     4       callTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            8   10     5  truffleCompiler  Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;
    Signature: (IILjava/util/function/Consumer<Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;>;)V
    MethodParameters:
               Name  Flags
      graphCapacity  
      purgeDelay     
      verification   

  private static void assertEventuallyTrue(java.lang.String, int, int, java.util.function.Supplier<java.lang.Boolean>);
    descriptor: (Ljava/lang/String;IILjava/util/function/Supplier;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // java.lang.String message
        start local 1 // int stepMillis
        start local 2 // int maxWaitMillis
        start local 3 // java.util.function.Supplier condition
         0: .line 152
            iconst_0
            istore 4 /* totalWait */
        start local 4 // int totalWait
         1: goto 9
         2: .line 153
      StackMap locals: int
      StackMap stack:
            aload 3 /* condition */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 4
         3: .line 154
            return
         4: .line 157
      StackMap locals:
      StackMap stack:
            iload 1 /* stepMillis */
            i2l
            invokestatic java.lang.Thread.sleep:(J)V
         5: .line 158
            goto 8
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         6: astore 5 /* e */
        start local 5 // java.lang.InterruptedException e
         7: .line 159
            new java.lang.AssertionError
            dup
            aload 0 /* message */
            aload 5 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.InterruptedException e
         8: .line 152
      StackMap locals:
      StackMap stack:
            iload 4 /* totalWait */
            iload 1 /* stepMillis */
            iadd
            istore 4 /* totalWait */
      StackMap locals:
      StackMap stack:
         9: iload 4 /* totalWait */
            iload 2 /* maxWaitMillis */
            if_icmple 2
        end local 4 // int totalWait
        10: .line 162
            aload 0 /* message */
            iconst_0
            anewarray java.lang.Object
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.fail:(Ljava/lang/String;[Ljava/lang/Object;)V
        11: .line 163
            return
        end local 3 // java.util.function.Supplier condition
        end local 2 // int maxWaitMillis
        end local 1 // int stepMillis
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0        message  Ljava/lang/String;
            0   12     1     stepMillis  I
            0   12     2  maxWaitMillis  I
            0   12     3      condition  Ljava/util/function/Supplier<Ljava/lang/Boolean;>;
            1   10     4      totalWait  I
            7    8     5              e  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.InterruptedException
    Signature: (Ljava/lang/String;IILjava/util/function/Supplier<Ljava/lang/Boolean;>;)V
    MethodParameters:
               Name  Flags
      message        
      stepMillis     
      maxWaitMillis  
      condition      

  public void testCacheInvalidation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
         0: .line 167
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
         1: .line 168
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowExperimentalOptions:(Z)Lorg/graalvm/polyglot/Context$Builder;
         2: .line 169
            ldc "engine.EncodedGraphCacheCapacity"
            ldc "1024"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
         3: .line 170
            ldc "engine.EncodedGraphCachePurgeDelay"
            ldc "10000"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
         4: .line 171
            ldc "engine.CompilerIdleDelay"
            ldc "0"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
         5: .line 167
            invokevirtual org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.setupContext:(Lorg/graalvm/polyglot/Context$Builder;)V
         6: .line 173
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.rootTestNode:()Lorg/graalvm/compiler/truffle/test/nodes/RootTestNode;
            astore 1 /* rootTestNode */
        start local 1 // org.graalvm.compiler.truffle.test.nodes.RootTestNode rootTestNode
         7: .line 174
            aconst_null
            astore 2 /* callTarget */
        start local 2 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
         8: .line 175
            aconst_null
            astore 3 /* truffleCompiler */
        start local 3 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl truffleCompiler
         9: .line 176
            iconst_0
            istore 4 /* graphWasCached */
        start local 4 // boolean graphWasCached
        10: .line 177
            iconst_0
            istore 5 /* attempts */
        start local 5 // int attempts
        11: goto 16
        12: .line 178
      StackMap locals: org.graalvm.compiler.truffle.test.EncodedGraphCacheTest org.graalvm.compiler.truffle.test.nodes.RootTestNode org.graalvm.compiler.truffle.runtime.OptimizedCallTarget org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl int int
      StackMap stack:
            aload 1 /* rootTestNode */
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.compileAST:(Lcom/oracle/truffle/api/nodes/RootNode;)Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            astore 2 /* callTarget */
        13: .line 179
            aload 2 /* callTarget */
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.getTruffleCompilerFromRuntime:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;
            astore 3 /* truffleCompiler */
        14: .line 181
            aload 3 /* truffleCompiler */
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.encodedGraphCacheContains:(Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            istore 4 /* graphWasCached */
        15: .line 177
            iinc 5 /* attempts */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* attempts */
            bipush 10
            if_icmpge 17
            iload 4 /* graphWasCached */
            ifeq 12
        end local 5 // int attempts
        17: .line 183
      StackMap locals:
      StackMap stack:
            ldc "InvalidationTestNode.execute is cached"
            iload 4 /* graphWasCached */
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.assertTrue:(Ljava/lang/String;Z)V
        18: .line 184
            aload 3 /* truffleCompiler */
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
        19: .line 187
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest$DummyChildException.ensureInitialized:()V
        20: .line 192
            aload 1 /* rootTestNode */
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.compileAST:(Lcom/oracle/truffle/api/nodes/RootNode;)Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            pop
        21: .line 193
            ldc "Should fail on code installation due to invalid dependencies"
            iconst_0
            anewarray java.lang.Object
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.fail:(Ljava/lang/String;[Ljava/lang/Object;)V
        22: .line 194
            goto 26
      StackMap locals:
      StackMap stack: jdk.vm.ci.code.BailoutException
        23: astore 5 /* expected */
        start local 5 // jdk.vm.ci.code.BailoutException expected
        24: .line 195
            aload 5 /* expected */
            invokevirtual jdk.vm.ci.code.BailoutException.isPermanent:()Z
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.assertFalse:(Z)V
        25: .line 196
            aload 5 /* expected */
            instanceof org.graalvm.compiler.core.common.CancellationBailoutException
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.assertFalse:(Z)V
        end local 5 // jdk.vm.ci.code.BailoutException expected
        26: .line 199
      StackMap locals:
      StackMap stack:
            ldc "InvalidationTestNode.execute was invalidated/evicted"
        27: .line 200
            aload 3 /* truffleCompiler */
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.encodedGraphCacheContains:(Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
        28: .line 199
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.assertFalse:(Ljava/lang/String;Z)V
        29: .line 203
            iconst_0
            istore 4 /* graphWasCached */
        30: .line 204
            iconst_0
            istore 5 /* attempts */
        start local 5 // int attempts
        31: goto 35
        32: .line 206
      StackMap locals: int
      StackMap stack:
            aload 1 /* rootTestNode */
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.compileAST:(Lcom/oracle/truffle/api/nodes/RootNode;)Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            astore 2 /* callTarget */
        33: .line 208
            aload 3 /* truffleCompiler */
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.encodedGraphCacheContains:(Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            istore 4 /* graphWasCached */
        34: .line 204
            iinc 5 /* attempts */ 1
      StackMap locals:
      StackMap stack:
        35: iload 5 /* attempts */
            bipush 10
            if_icmpge 36
            iload 4 /* graphWasCached */
            ifeq 32
        end local 5 // int attempts
        36: .line 211
      StackMap locals:
      StackMap stack:
            ldc "Re-parsed graph was cached"
            iload 4 /* graphWasCached */
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        37: .line 212
            ldc 42
            aload 2 /* callTarget */
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        38: .line 213
            return
        end local 4 // boolean graphWasCached
        end local 3 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl truffleCompiler
        end local 2 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
        end local 1 // org.graalvm.compiler.truffle.test.nodes.RootTestNode rootTestNode
        end local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   39     0             this  Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;
            7   39     1     rootTestNode  Lorg/graalvm/compiler/truffle/test/nodes/RootTestNode;
            8   39     2       callTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            9   39     3  truffleCompiler  Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;
           10   39     4   graphWasCached  Z
           11   17     5         attempts  I
           24   26     5         expected  Ljdk/vm/ci/code/BailoutException;
           31   36     5         attempts  I
      Exception table:
        from    to  target  type
          20    22      23  Class jdk.vm.ci.code.BailoutException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCacheIsDisabled();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
         0: .line 217
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
         1: .line 218
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowExperimentalOptions:(Z)Lorg/graalvm/polyglot/Context$Builder;
         2: .line 219
            ldc "engine.EncodedGraphCacheCapacity"
            ldc "0"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
         3: .line 217
            invokevirtual org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.setupContext:(Lorg/graalvm/polyglot/Context$Builder;)V
         4: .line 221
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.rootTestNode:()Lorg/graalvm/compiler/truffle/test/nodes/RootTestNode;
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.compileAST:(Lcom/oracle/truffle/api/nodes/RootNode;)Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            astore 1 /* callTarget */
        start local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
         5: .line 222
            aload 1 /* callTarget */
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.getTruffleCompilerFromRuntime:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;
            astore 2 /* truffleCompiler */
        start local 2 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl truffleCompiler
         6: .line 223
            ldc "InvalidationTestNode.execute is not cached"
         7: .line 224
            aload 2 /* truffleCompiler */
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.encodedGraphCacheContains:(Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
         8: .line 223
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.assertFalse:(Ljava/lang/String;Z)V
         9: .line 225
            return
        end local 2 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl truffleCompiler
        end local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
        end local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;
            5   10     1       callTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            6   10     2  truffleCompiler  Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCacheIsEnabled();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
         0: .line 229
            iconst_1
            newarray 4
            astore 1 /* cacheContainsTargetGraph */
        start local 1 // boolean[] cacheContainsTargetGraph
         1: .line 230
            iconst_0
            istore 2 /* attempts */
        start local 2 // int attempts
         2: goto 5
         3: .line 231
      StackMap locals: boolean[] int
      StackMap stack:
            aload 0 /* this */
            bipush 100
            ldc 100000
            aload 0 /* this */
            aload 1 /* cacheContainsTargetGraph */
            invokedynamic accept(Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;[Z)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/compiler/truffle/test/EncodedGraphCacheTest.lambda$0([ZLorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)V (7)
                  (Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)V
            invokevirtual org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.testHelper:(IILjava/util/function/Consumer;)V
         4: .line 230
            iinc 2 /* attempts */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* attempts */
            bipush 10
            if_icmpge 6
            aload 1 /* cacheContainsTargetGraph */
            iconst_0
            baload
            ifeq 3
        end local 2 // int attempts
         6: .line 235
      StackMap locals:
      StackMap stack:
            ldc "InvalidationTestNode.execute is cached"
            aload 1 /* cacheContainsTargetGraph */
            iconst_0
            baload
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         7: .line 236
            return
        end local 1 // boolean[] cacheContainsTargetGraph
        end local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    8     0                      this  Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;
            1    8     1  cacheContainsTargetGraph  [Z
            2    6     2                  attempts  I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCacheCapacity();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
         0: .line 240
            iconst_1
            newarray 4
            astore 1 /* cacheHolds1Element */
        start local 1 // boolean[] cacheHolds1Element
         1: .line 241
            iconst_0
            istore 2 /* attempts */
        start local 2 // int attempts
         2: goto 5
         3: .line 242
      StackMap locals: boolean[] int
      StackMap stack:
            aload 0 /* this */
            iconst_1
            ldc 100000
            aload 1 /* cacheHolds1Element */
            invokedynamic accept([Z)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/compiler/truffle/test/EncodedGraphCacheTest.lambda$1([ZLorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)V (6)
                  (Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)V
            invokevirtual org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.testHelper:(IILjava/util/function/Consumer;)V
         4: .line 241
            iinc 2 /* attempts */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* attempts */
            bipush 10
            if_icmpge 6
            aload 1 /* cacheHolds1Element */
            iconst_0
            baload
            ifeq 3
        end local 2 // int attempts
         6: .line 249
      StackMap locals:
      StackMap stack:
            ldc "Cache holds exactly 1 element"
            aload 1 /* cacheHolds1Element */
            iconst_0
            baload
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         7: .line 250
            return
        end local 1 // boolean[] cacheHolds1Element
        end local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;
            1    8     1  cacheHolds1Element  [Z
            2    6     2            attempts  I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testUnboundedCacheCapacity();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
         0: .line 254
            iconst_1
            newarray 4
            astore 1 /* nonEmptyGraphCache */
        start local 1 // boolean[] nonEmptyGraphCache
         1: .line 255
            iconst_0
            istore 2 /* attempts */
        start local 2 // int attempts
         2: goto 5
         3: .line 256
      StackMap locals: boolean[] int
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            ldc 100000
            aload 1 /* nonEmptyGraphCache */
            invokedynamic accept([Z)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/compiler/truffle/test/EncodedGraphCacheTest.lambda$2([ZLorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)V (6)
                  (Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)V
            invokevirtual org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.testHelper:(IILjava/util/function/Consumer;)V
         4: .line 255
            iinc 2 /* attempts */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* attempts */
            bipush 10
            if_icmpge 6
            aload 1 /* nonEmptyGraphCache */
            iconst_0
            baload
            ifeq 3
        end local 2 // int attempts
         6: .line 261
      StackMap locals:
      StackMap stack:
            ldc "Unbounded cache was populated"
            aload 1 /* nonEmptyGraphCache */
            iconst_0
            baload
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         7: .line 262
            return
        end local 1 // boolean[] nonEmptyGraphCache
        end local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;
            1    8     1  nonEmptyGraphCache  [Z
            2    6     2            attempts  I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCacheIsReleased();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
         0: .line 274
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.EncodedGraphCachePurgeDelay:Lorg/graalvm/options/OptionKey;
            invokevirtual org.graalvm.options.OptionKey.getDefaultValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 1 /* purgeDelay */
        start local 1 // int purgeDelay
         1: .line 276
            iconst_1
            newarray 4
            astore 2 /* graphWasCached */
        start local 2 // boolean[] graphWasCached
         2: .line 277
            iconst_0
            istore 3 /* attempts */
        start local 3 // int attempts
         3: goto 6
         4: .line 278
      StackMap locals: int boolean[] int
      StackMap stack:
            aload 0 /* this */
            sipush 1024
            iload 1 /* purgeDelay */
            aload 0 /* this */
            aload 2 /* graphWasCached */
            iload 1 /* purgeDelay */
            invokedynamic accept(Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;[ZI)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/compiler/truffle/test/EncodedGraphCacheTest.lambda$3([ZILorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)V (7)
                  (Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)V
            invokevirtual org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.testHelper:(IILjava/util/function/Consumer;)V
         5: .line 277
            iinc 3 /* attempts */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* attempts */
            bipush 10
            if_icmpge 7
            aload 2 /* graphWasCached */
            iconst_0
            baload
            ifeq 4
        end local 3 // int attempts
         7: .line 294
      StackMap locals:
      StackMap stack:
            ldc "Encoded graph was cached"
            aload 2 /* graphWasCached */
            iconst_0
            baload
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.assertTrue:(Ljava/lang/String;Z)V
         8: .line 295
            return
        end local 2 // boolean[] graphWasCached
        end local 1 // int purgeDelay
        end local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;
            1    9     1      purgeDelay  I
            2    9     2  graphWasCached  [Z
            3    7     3        attempts  I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void lambda$0(boolean[], org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl);
    descriptor: ([ZLorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
        start local 2 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl compiler
         0: .line 232
            aload 1
            iconst_0
            aload 2 /* compiler */
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.encodedGraphCacheContains:(Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            bastore
         1: .line 233
            return
        end local 2 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl compiler
        end local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;
            0    2     2  compiler  Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;

  private static void lambda$1(boolean[], org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl);
    descriptor: ([ZLorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=2
        start local 1 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl compiler
         0: .line 243
            aload 1 /* compiler */
            invokevirtual org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl.getPartialEvaluator:()Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getOrCreateEncodedGraphCache:()Lorg/graalvm/collections/EconomicMap;
            astore 2 /* cache */
        start local 2 // org.graalvm.collections.EconomicMap cache
         1: .line 245
            ldc "Cache holds at most 1 element"
            aload 2 /* cache */
            invokeinterface org.graalvm.collections.EconomicMap.size:()I
            iconst_1
            if_icmpgt 2
            iconst_1
            goto 3
      StackMap locals: boolean[] org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl org.graalvm.collections.EconomicMap
      StackMap stack: java.lang.String
         2: iconst_0
      StackMap locals: boolean[] org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl org.graalvm.collections.EconomicMap
      StackMap stack: java.lang.String int
         3: invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         4: .line 246
            aload 0
            iconst_0
            aload 2 /* cache */
            invokeinterface org.graalvm.collections.EconomicMap.size:()I
            iconst_1
            if_icmpne 5
            iconst_1
            goto 6
      StackMap locals: boolean[] org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl org.graalvm.collections.EconomicMap
      StackMap stack: boolean[] int
         5: iconst_0
      StackMap locals: boolean[] org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl org.graalvm.collections.EconomicMap
      StackMap stack: boolean[] int int
         6: bastore
        end local 2 // org.graalvm.collections.EconomicMap cache
         7: .line 247
            return
        end local 1 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl compiler
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     1  compiler  Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;
            1    7     2     cache  Lorg/graalvm/collections/EconomicMap<**>;

  private static void lambda$2(boolean[], org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl);
    descriptor: ([ZLorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 1 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl compiler
         0: .line 257
            aload 1 /* compiler */
            invokevirtual org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl.getPartialEvaluator:()Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getOrCreateEncodedGraphCache:()Lorg/graalvm/collections/EconomicMap;
            astore 2 /* cache */
        start local 2 // org.graalvm.collections.EconomicMap cache
         1: .line 258
            aload 0
            iconst_0
            aload 2 /* cache */
            invokeinterface org.graalvm.collections.EconomicMap.isEmpty:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: boolean[] org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl org.graalvm.collections.EconomicMap
      StackMap stack: boolean[] int
         2: iconst_1
      StackMap locals: boolean[] org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl org.graalvm.collections.EconomicMap
      StackMap stack: boolean[] int int
         3: bastore
        end local 2 // org.graalvm.collections.EconomicMap cache
         4: .line 259
            return
        end local 1 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl compiler
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     1  compiler  Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;
            1    4     2     cache  Lorg/graalvm/collections/EconomicMap<**>;

  private void lambda$3(boolean[], int, org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl);
    descriptor: ([ZILorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
        start local 3 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl compiler
         0: .line 279
            aload 1
            iconst_0
            aload 3 /* compiler */
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.encodedGraphCacheContains:(Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            bastore
         1: .line 285
            aload 1
            iconst_0
            baload
            ifeq 7
         2: .line 286
            ldc "Encoded graph cache must be dropped after delay elapsed"
         3: .line 287
            sipush 1000
         4: .line 288
            iload 2
            sipush 2000
            iadd
         5: .line 289
            aload 0 /* this */
            aload 3 /* compiler */
            invokedynamic get(Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/compiler/truffle/test/EncodedGraphCacheTest.lambda$4(Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)Ljava/lang/Boolean; (7)
                  ()Ljava/lang/Boolean;
         6: .line 286
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.assertEventuallyTrue:(Ljava/lang/String;IILjava/util/function/Supplier;)V
         7: .line 291
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl compiler
        end local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;
            0    8     3  compiler  Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;

  private java.lang.Boolean lambda$4(org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl);
    descriptor: (Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;)Ljava/lang/Boolean;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
         0: .line 289
            aload 1
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.testMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.truffle.test.EncodedGraphCacheTest.encodedGraphCacheContains:(Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerImpl;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // org.graalvm.compiler.truffle.test.EncodedGraphCacheTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/truffle/test/EncodedGraphCacheTest;
}
SourceFile: "EncodedGraphCacheTest.java"
NestMembers:
  org.graalvm.compiler.truffle.test.EncodedGraphCacheTest$DummyChildException  org.graalvm.compiler.truffle.test.EncodedGraphCacheTest$DummyException  org.graalvm.compiler.truffle.test.EncodedGraphCacheTest$InvalidationTestNode
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Builder = org.graalvm.compiler.debug.DebugContext$Builder of org.graalvm.compiler.debug.DebugContext
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  DummyChildException = org.graalvm.compiler.truffle.test.EncodedGraphCacheTest$DummyChildException of org.graalvm.compiler.truffle.test.EncodedGraphCacheTest
  DummyException = org.graalvm.compiler.truffle.test.EncodedGraphCacheTest$DummyException of org.graalvm.compiler.truffle.test.EncodedGraphCacheTest
  InvalidationTestNode = org.graalvm.compiler.truffle.test.EncodedGraphCacheTest$InvalidationTestNode of org.graalvm.compiler.truffle.test.EncodedGraphCacheTest
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
  final CancellableTruffleCompilationTask = org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl$CancellableTruffleCompilationTask of org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl
    RuntimeVisibleAnnotations: 
      org.junit.Ignore(value = "GR-26854")