public class org.graalvm.compiler.replacements.SnippetTemplate
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.replacements.SnippetTemplate
  super_class: java.lang.Object
{
  private boolean mayRemoveLocation;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static final org.graalvm.compiler.debug.DebugTimer SnippetTemplateCreationTime;
    descriptor: Lorg/graalvm/compiler/debug/DebugTimer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.graalvm.compiler.debug.DebugCounter SnippetTemplates;
    descriptor: Lorg/graalvm/compiler/debug/DebugCounter;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Object UNUSED_PARAMETER;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Object CONSTANT_PARAMETER;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection;
    descriptor: Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.nodes.StructuredGraph snippet;
    descriptor: Lorg/graalvm/compiler/nodes/StructuredGraph;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo info;
    descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object[] parameters;
    descriptor: [Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.nodes.ReturnNode returnNode;
    descriptor: Lorg/graalvm/compiler/nodes/ReturnNode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.nodes.memory.MemoryAnchorNode memoryAnchor;
    descriptor: Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.ArrayList<org.graalvm.compiler.nodes.StateSplit> sideEffectNodes;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/StateSplit;>;

  private final java.util.ArrayList<org.graalvm.compiler.nodes.DeoptimizingNode> deoptNodes;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/DeoptimizingNode;>;

  private final java.util.ArrayList<org.graalvm.compiler.nodes.ValueNode> stampNodes;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/ValueNode;>;

  private final java.util.ArrayList<org.graalvm.compiler.graph.Node> nodes;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lorg/graalvm/compiler/graph/Node;>;

  private final org.graalvm.compiler.debug.DebugTimer instantiationTimer;
    descriptor: Lorg/graalvm/compiler/debug/DebugTimer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.debug.DebugCounter instantiationCounter;
    descriptor: Lorg/graalvm/compiler/debug/DebugCounter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer DEFAULT_REPLACER;
    descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  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 146
            ldc Lorg/graalvm/compiler/replacements/SnippetTemplate;
            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.replacements.SnippetTemplate.$assertionsDisabled:Z
         3: .line 545
            ldc "SnippetTemplateCreationTime"
            invokestatic org.graalvm.compiler.debug.Debug.timer:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/DebugTimer;
            putstatic org.graalvm.compiler.replacements.SnippetTemplate.SnippetTemplateCreationTime:Lorg/graalvm/compiler/debug/DebugTimer;
         4: .line 546
            ldc "SnippetTemplateCount"
            invokestatic org.graalvm.compiler.debug.Debug.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/DebugCounter;
            putstatic org.graalvm.compiler.replacements.SnippetTemplate.SnippetTemplates:Lorg/graalvm/compiler/debug/DebugCounter;
         5: .line 644
            ldc "UNUSED_PARAMETER"
            putstatic org.graalvm.compiler.replacements.SnippetTemplate.UNUSED_PARAMETER:Ljava/lang/Object;
         6: .line 645
            ldc "CONSTANT_PARAMETER"
            putstatic org.graalvm.compiler.replacements.SnippetTemplate.CONSTANT_PARAMETER:Ljava/lang/Object;
         7: .line 1119
            new org.graalvm.compiler.replacements.SnippetTemplate$1
            dup
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$1.<init>:()V
            putstatic org.graalvm.compiler.replacements.SnippetTemplate.DEFAULT_REPLACER:Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
         8: .line 1129
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean hasConstantParameter(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // jdk.vm.ci.meta.ResolvedJavaMethod method
         0: .line 651
            aload 0 /* method */
            ldc Lorg/graalvm/compiler/api/replacements/Snippet$ConstantParameter;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getParameterAnnotations:(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
            checkcast org.graalvm.compiler.api.replacements.Snippet$ConstantParameter[]
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod top int int org.graalvm.compiler.api.replacements.Snippet$ConstantParameter[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* p */
        start local 1 // org.graalvm.compiler.api.replacements.Snippet$ConstantParameter p
         2: .line 652
            aload 1 /* p */
            ifnull 4
         3: .line 653
            iconst_1
            ireturn
        end local 1 // org.graalvm.compiler.api.replacements.Snippet$ConstantParameter p
         4: .line 651
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 656
            iconst_0
            ireturn
        end local 0 // jdk.vm.ci.meta.ResolvedJavaMethod method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            2    4     1       p  Lorg/graalvm/compiler/api/replacements/Snippet$ConstantParameter;
    MethodParameters:
        Name  Flags
      method  

  protected void <init>(org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, org.graalvm.compiler.replacements.SnippetTemplate$Arguments);
    descriptor: (Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=32, args_size=4
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.phases.util.Providers providers
        start local 2 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        start local 3 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         0: .line 665
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 148
            aload 0 /* this */
            iconst_0
            putfield org.graalvm.compiler.replacements.SnippetTemplate.mayRemoveLocation:Z
         2: .line 666
            aload 0 /* this */
            aload 2 /* snippetReflection */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
         3: .line 667
            aload 0 /* this */
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.replacements.SnippetTemplate.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         4: .line 669
            aload 0 /* this */
            aload 3 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.getConstantArgs:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)[Ljava/lang/Object;
            astore 4 /* constantArgs */
        start local 4 // java.lang.Object[] constantArgs
         5: .line 670
            aload 1 /* providers */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getReplacements:()Lorg/graalvm/compiler/nodes/spi/Replacements;
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.method:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.original:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 4 /* constantArgs */
            invokeinterface org.graalvm.compiler.nodes.spi.Replacements.getSnippet:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 5 /* snippetGraph */
        start local 5 // org.graalvm.compiler.nodes.StructuredGraph snippetGraph
         6: .line 671
            aload 0 /* this */
            ldc "SnippetTemplateInstantiationTime[%#s]"
            aload 3 /* args */
            invokestatic org.graalvm.compiler.debug.Debug.timer:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugTimer;
            putfield org.graalvm.compiler.replacements.SnippetTemplate.instantiationTimer:Lorg/graalvm/compiler/debug/DebugTimer;
         7: .line 672
            aload 0 /* this */
            ldc "SnippetTemplateInstantiationCount[%#s]"
            aload 3 /* args */
            invokestatic org.graalvm.compiler.debug.Debug.counter:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugCounter;
            putfield org.graalvm.compiler.replacements.SnippetTemplate.instantiationCounter:Lorg/graalvm/compiler/debug/DebugCounter;
         8: .line 674
            aload 5 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 6 /* method */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaMethod method
         9: .line 675
            aload 6 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
            astore 7 /* signature */
        start local 7 // jdk.vm.ci.meta.Signature signature
        10: .line 677
            new org.graalvm.compiler.phases.tiers.PhaseContext
            dup
            aload 1 /* providers */
            invokespecial org.graalvm.compiler.phases.tiers.PhaseContext.<init>:(Lorg/graalvm/compiler/phases/util/Providers;)V
            astore 8 /* phaseContext */
        start local 8 // org.graalvm.compiler.phases.tiers.PhaseContext phaseContext
        11: .line 680
            new org.graalvm.compiler.nodes.StructuredGraph
            dup
            aload 5 /* snippetGraph */
            getfield org.graalvm.compiler.nodes.StructuredGraph.name:Ljava/lang/String;
            aload 5 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            getstatic org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions.NO:Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;
            getstatic org.graalvm.compiler.core.common.CompilationIdentifier.INVALID_COMPILATION_ID:Lorg/graalvm/compiler/core/common/CompilationRequestIdentifier;
            invokespecial org.graalvm.compiler.nodes.StructuredGraph.<init>:(Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;Lorg/graalvm/compiler/core/common/CompilationIdentifier;)V
            astore 9 /* snippetCopy */
        start local 9 // org.graalvm.compiler.nodes.StructuredGraph snippetCopy
        12: .line 682
            aconst_null
            astore 10
            aconst_null
            astore 11
        13: ldc "SpecializeSnippet"
            aload 9 /* snippetCopy */
            invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
            astore 12 /* scope */
        start local 12 // org.graalvm.compiler.debug.Debug$Scope scope
        14: .line 683
            aload 5 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isUnsafeAccessTrackingEnabled:()Z
            ifne 16
        15: .line 684
            aload 9 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.disableUnsafeAccessTracking:()V
        16: .line 687
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope
      StackMap stack:
            invokestatic org.graalvm.compiler.graph.Node.newIdentityMap:()Ljava/util/Map;
            astore 13 /* nodeReplacements */
        start local 13 // java.util.Map nodeReplacements
        17: .line 688
            aload 13 /* nodeReplacements */
            aload 5 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            aload 9 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 690
            aload 1 /* providers */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            astore 14 /* metaAccess */
        start local 14 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        19: .line 691
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 20
            aload 14 /* metaAccess */
            aload 3 /* args */
            aload 6 /* method */
            aload 7 /* signature */
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.checkTemplate:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/Signature;)Z
            ifne 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 693
      StackMap locals: java.util.Map jdk.vm.ci.meta.MetaAccessProvider
      StackMap stack:
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getParameterCount:()I
            istore 15 /* parameterCount */
        start local 15 // int parameterCount
        21: .line 694
            iload 15 /* parameterCount */
            anewarray org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode
            astore 16 /* placeholders */
        start local 16 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] placeholders
        22: .line 696
            iconst_0
            istore 17 /* i */
        start local 17 // int i
        23: goto 44
        24: .line 697
      StackMap locals: int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int
      StackMap stack:
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 17 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isConstantParameter:(I)Z
            ifeq 38
        25: .line 698
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 17 /* i */
            aaload
            astore 18 /* arg */
        start local 18 // java.lang.Object arg
        26: .line 699
            aload 7 /* signature */
            iload 17 /* i */
            invokeinterface jdk.vm.ci.meta.Signature.getParameterKind:(I)Ljdk/vm/ci/meta/JavaKind;
            astore 19 /* kind */
        start local 19 // jdk.vm.ci.meta.JavaKind kind
        27: .line 701
            aload 18 /* arg */
            instanceof jdk.vm.ci.meta.Constant
            ifeq 35
        28: .line 702
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.constStamps:[Lorg/graalvm/compiler/core/common/type/Stamp;
            iload 17 /* i */
            aaload
            astore 21 /* stamp */
        start local 21 // org.graalvm.compiler.core.common.type.Stamp stamp
        29: .line 703
            aload 21 /* stamp */
            ifnonnull 33
        30: .line 704
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 31
            aload 18 /* arg */
            instanceof jdk.vm.ci.meta.JavaConstant
            ifne 31
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "could not determine type of constant "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 18 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        31: .line 705
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int java.lang.Object jdk.vm.ci.meta.JavaKind top org.graalvm.compiler.core.common.type.Stamp
      StackMap stack:
            aload 18 /* arg */
            checkcast jdk.vm.ci.meta.JavaConstant
            aload 14 /* metaAccess */
            aload 9 /* snippetCopy */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 20 /* constantNode */
        start local 20 // org.graalvm.compiler.nodes.ConstantNode constantNode
        32: .line 706
            goto 36
        end local 20 // org.graalvm.compiler.nodes.ConstantNode constantNode
        33: .line 707
      StackMap locals:
      StackMap stack:
            aload 21 /* stamp */
            aload 18 /* arg */
            checkcast jdk.vm.ci.meta.Constant
            aload 14 /* metaAccess */
            aload 9 /* snippetCopy */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 20 /* constantNode */
        end local 21 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 20 // org.graalvm.compiler.nodes.ConstantNode constantNode
        34: .line 709
            goto 36
        end local 20 // org.graalvm.compiler.nodes.ConstantNode constantNode
        35: .line 710
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int java.lang.Object jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aload 2 /* snippetReflection */
            aload 19 /* kind */
            aload 18 /* arg */
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.forBoxed:(Ljdk/vm/ci/meta/JavaKind;Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            aload 14 /* metaAccess */
            aload 9 /* snippetCopy */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 20 /* constantNode */
        start local 20 // org.graalvm.compiler.nodes.ConstantNode constantNode
        36: .line 712
      StackMap locals: org.graalvm.compiler.nodes.ConstantNode
      StackMap stack:
            aload 13 /* nodeReplacements */
            aload 5 /* snippetGraph */
            iload 17 /* i */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getParameter:(I)Lorg/graalvm/compiler/nodes/ParameterNode;
            aload 20 /* constantNode */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 20 // org.graalvm.compiler.nodes.ConstantNode constantNode
        end local 19 // jdk.vm.ci.meta.JavaKind kind
        end local 18 // java.lang.Object arg
        37: .line 713
            goto 43
      StackMap locals:
      StackMap stack:
        38: aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 17 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isVarargsParameter:(I)Z
            ifeq 43
        39: .line 714
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 17 /* i */
            aaload
            checkcast org.graalvm.compiler.replacements.SnippetTemplate$Varargs
            astore 18 /* varargs */
        start local 18 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        40: .line 715
            aload 9 /* snippetCopy */
            new org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode
            dup
            aload 18 /* varargs */
            aload 1 /* providers */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Varargs;Ljdk/vm/ci/meta/MetaAccessProvider;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode
            astore 19 /* placeholder */
        start local 19 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode placeholder
        41: .line 716
            aload 13 /* nodeReplacements */
            aload 5 /* snippetGraph */
            iload 17 /* i */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getParameter:(I)Lorg/graalvm/compiler/nodes/ParameterNode;
            aload 19 /* placeholder */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        42: .line 717
            aload 16 /* placeholders */
            iload 17 /* i */
            aload 19 /* placeholder */
            aastore
        end local 19 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode placeholder
        end local 18 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        43: .line 696
      StackMap locals:
      StackMap stack:
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
        44: iload 17 /* i */
            iload 15 /* parameterCount */
            if_icmplt 24
        end local 17 // int i
        45: .line 720
            aload 9 /* snippetCopy */
            aload 5 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            aload 5 /* snippetGraph */
            aload 5 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
            aload 13 /* nodeReplacements */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addDuplicates:(Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph;ILjava/util/Map;)Ljava/util/Map;
            pop
        46: .line 722
            iconst_2
            aload 9 /* snippetCopy */
            ldc "Before specialization"
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        47: .line 725
            aload 0 /* this */
            iload 15 /* parameterCount */
            anewarray java.lang.Object
            putfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
        48: .line 726
            iconst_0
            istore 17 /* i */
        start local 17 // int i
        49: goto 90
        50: .line 727
      StackMap locals:
      StackMap stack:
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 17 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isConstantParameter:(I)Z
            ifeq 53
        51: .line 728
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 17 /* i */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.CONSTANT_PARAMETER:Ljava/lang/Object;
            aastore
        52: .line 729
            goto 89
      StackMap locals:
      StackMap stack:
        53: aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 17 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isVarargsParameter:(I)Z
            ifeq 84
        54: .line 730
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 55
            aload 9 /* snippetCopy */
            iload 17 /* i */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getParameter:(I)Lorg/graalvm/compiler/nodes/ParameterNode;
            ifnull 55
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        55: .line 731
      StackMap locals:
      StackMap stack:
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 17 /* i */
            aaload
            checkcast org.graalvm.compiler.replacements.SnippetTemplate$Varargs
            astore 18 /* varargs */
        start local 18 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        56: .line 732
            aload 18 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.length:I
            istore 19 /* length */
        start local 19 // int length
        57: .line 733
            iload 19 /* length */
            anewarray org.graalvm.compiler.nodes.ParameterNode
            astore 20 /* params */
        start local 20 // org.graalvm.compiler.nodes.ParameterNode[] params
        58: .line 734
            aload 18 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.stamp:Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 21 /* stamp */
        start local 21 // org.graalvm.compiler.core.common.type.Stamp stamp
        59: .line 735
            iconst_0
            istore 22 /* j */
        start local 22 // int j
        60: goto 67
        61: .line 737
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.replacements.SnippetTemplate$Varargs int org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.core.common.type.Stamp int
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 62
            iload 15 /* parameterCount */
            sipush 10000
            if_icmplt 62
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        62: .line 738
      StackMap locals:
      StackMap stack:
            iload 17 /* i */
            iconst_1
            iadd
            sipush 10000
            imul
            iload 22 /* j */
            iadd
            istore 23 /* idx */
        start local 23 // int idx
        63: .line 739
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 64
            iload 23 /* idx */
            iload 15 /* parameterCount */
            if_icmpge 64
            new java.lang.AssertionError
            dup
            ldc "collision in parameter numbering"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        64: .line 740
      StackMap locals: int
      StackMap stack:
            aload 9 /* snippetCopy */
            new org.graalvm.compiler.nodes.ParameterNode
            dup
            iload 23 /* idx */
            aload 21 /* stamp */
            invokestatic org.graalvm.compiler.core.common.type.StampPair.createSingle:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/StampPair;
            invokespecial org.graalvm.compiler.nodes.ParameterNode.<init>:(ILorg/graalvm/compiler/core/common/type/StampPair;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ParameterNode
            astore 24 /* local */
        start local 24 // org.graalvm.compiler.nodes.ParameterNode local
        65: .line 741
            aload 20 /* params */
            iload 22 /* j */
            aload 24 /* local */
            aastore
        end local 24 // org.graalvm.compiler.nodes.ParameterNode local
        end local 23 // int idx
        66: .line 735
            iinc 22 /* j */ 1
      StackMap locals:
      StackMap stack:
        67: iload 22 /* j */
            iload 19 /* length */
            if_icmplt 61
        end local 22 // int j
        68: .line 743
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 17 /* i */
            aload 20 /* params */
            aastore
        69: .line 745
            aload 16 /* placeholders */
            iload 17 /* i */
            aaload
            astore 22 /* placeholder */
        start local 22 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode placeholder
        70: .line 746
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 71
            aload 22 /* placeholder */
            ifnonnull 71
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        71: .line 747
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.replacements.SnippetTemplate$Varargs int org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode
      StackMap stack:
            aload 22 /* placeholder */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 24
            goto 82
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.replacements.SnippetTemplate$Varargs int org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode top java.util.Iterator
      StackMap stack:
        72: aload 24
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 23 /* usage */
        start local 23 // org.graalvm.compiler.graph.Node usage
        73: .line 748
            aload 23 /* usage */
            instanceof org.graalvm.compiler.nodes.java.LoadIndexedNode
            ifeq 80
        74: .line 749
            aload 23 /* usage */
            checkcast org.graalvm.compiler.nodes.java.LoadIndexedNode
            astore 25 /* loadIndexed */
        start local 25 // org.graalvm.compiler.nodes.java.LoadIndexedNode loadIndexed
        75: .line 750
            iconst_2
            aload 9 /* snippetCopy */
            ldc "Before replacing %s"
            aload 25 /* loadIndexed */
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        76: .line 751
            aload 9 /* snippetCopy */
            new org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode
            dup
            aload 20 /* params */
            aload 25 /* loadIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.index:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 25 /* loadIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokespecial org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode.<init>:([Lorg/graalvm/compiler/nodes/ParameterNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode
            astore 26 /* loadSnippetParameter */
        start local 26 // org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode loadSnippetParameter
        77: .line 752
            aload 9 /* snippetCopy */
            aload 25 /* loadIndexed */
            aload 26 /* loadSnippetParameter */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        78: .line 753
            iconst_2
            aload 9 /* snippetCopy */
            ldc "After replacing %s"
            aload 25 /* loadIndexed */
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        end local 26 // org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode loadSnippetParameter
        end local 25 // org.graalvm.compiler.nodes.java.LoadIndexedNode loadIndexed
        79: .line 754
            goto 82
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.replacements.SnippetTemplate$Varargs int org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
        80: aload 23 /* usage */
            instanceof org.graalvm.compiler.nodes.java.StoreIndexedNode
            ifeq 82
        81: .line 760
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc "Can't store into VarargsParameter array"
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 23 // org.graalvm.compiler.graph.Node usage
        82: .line 747
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.replacements.SnippetTemplate$Varargs int org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode top java.util.Iterator
      StackMap stack:
            aload 24
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 72
        end local 22 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode placeholder
        end local 21 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 20 // org.graalvm.compiler.nodes.ParameterNode[] params
        end local 19 // int length
        end local 18 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        83: .line 763
            goto 89
        84: .line 764
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int
      StackMap stack:
            aload 9 /* snippetCopy */
            iload 17 /* i */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getParameter:(I)Lorg/graalvm/compiler/nodes/ParameterNode;
            astore 18 /* local */
        start local 18 // org.graalvm.compiler.nodes.ParameterNode local
        85: .line 765
            aload 18 /* local */
            ifnonnull 88
        86: .line 767
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 17 /* i */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.UNUSED_PARAMETER:Ljava/lang/Object;
            aastore
        87: .line 768
            goto 89
        88: .line 769
      StackMap locals: org.graalvm.compiler.nodes.ParameterNode
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 17 /* i */
            aload 18 /* local */
            aastore
        end local 18 // org.graalvm.compiler.nodes.ParameterNode local
        89: .line 726
      StackMap locals:
      StackMap stack:
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
        90: iload 17 /* i */
            iload 15 /* parameterCount */
            if_icmplt 50
        end local 17 // int i
        91: .line 775
            iconst_0
            istore 17 /* exploded */
        start local 17 // boolean exploded
        92: .line 777
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int
      StackMap stack:
            iconst_0
            istore 17 /* exploded */
        93: .line 778
            aload 9 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/replacements/nodes/ExplodeLoopNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.replacements.nodes.ExplodeLoopNode
            astore 18 /* explodeLoop */
        start local 18 // org.graalvm.compiler.replacements.nodes.ExplodeLoopNode explodeLoop
        94: .line 779
            aload 18 /* explodeLoop */
            ifnull 104
        95: .line 781
            aload 18 /* explodeLoop */
            invokevirtual org.graalvm.compiler.replacements.nodes.ExplodeLoopNode.findLoopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            astore 19 /* loopBegin */
        start local 19 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
        96: .line 782
            aload 19 /* loopBegin */
            ifnull 102
        97: .line 783
            new org.graalvm.compiler.loop.LoopsData
            dup
            aload 9 /* snippetCopy */
            invokespecial org.graalvm.compiler.loop.LoopsData.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
            aload 19 /* loopBegin */
            invokevirtual org.graalvm.compiler.loop.LoopsData.loop:(Lorg/graalvm/compiler/nodes/LoopBeginNode;)Lorg/graalvm/compiler/loop/LoopEx;
            astore 20 /* loop */
        start local 20 // org.graalvm.compiler.loop.LoopEx loop
        98: .line 784
            aload 9 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getMark:()Lorg/graalvm/compiler/graph/Graph$Mark;
            astore 21 /* mark */
        start local 21 // org.graalvm.compiler.graph.Graph$Mark mark
        99: .line 785
            aload 20 /* loop */
            aload 8 /* phaseContext */
            new org.graalvm.compiler.phases.common.CanonicalizerPhase
            dup
            invokespecial org.graalvm.compiler.phases.common.CanonicalizerPhase.<init>:()V
            invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.fullUnroll:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/phases/tiers/PhaseContext;Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;)V
       100: .line 786
            new org.graalvm.compiler.phases.common.CanonicalizerPhase
            dup
            invokespecial org.graalvm.compiler.phases.common.CanonicalizerPhase.<init>:()V
            aload 9 /* snippetCopy */
            aload 8 /* phaseContext */
            aload 21 /* mark */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.applyIncremental:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;Lorg/graalvm/compiler/graph/Graph$Mark;)V
       101: .line 787
            aload 20 /* loop */
            invokevirtual org.graalvm.compiler.loop.LoopEx.deleteUnusedNodes:()V
        end local 21 // org.graalvm.compiler.graph.Graph$Mark mark
        end local 20 // org.graalvm.compiler.loop.LoopEx loop
       102: .line 789
      StackMap locals: org.graalvm.compiler.replacements.nodes.ExplodeLoopNode org.graalvm.compiler.nodes.LoopBeginNode
      StackMap stack:
            aload 18 /* explodeLoop */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
       103: .line 790
            iconst_1
            istore 17 /* exploded */
        end local 19 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
        end local 18 // org.graalvm.compiler.replacements.nodes.ExplodeLoopNode explodeLoop
       104: .line 792
      StackMap locals:
      StackMap stack:
            iload 17 /* exploded */
            ifne 92
       105: .line 794
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.cacheKey:Lorg/graalvm/compiler/replacements/SnippetTemplate$CacheKey;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.guardsStage:Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            astore 18 /* guardsStage */
        start local 18 // org.graalvm.compiler.nodes.StructuredGraph$GuardsStage guardsStage
       106: .line 796
            aload 18 /* guardsStage */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.allowsFloatingGuards:()Z
            ifne 108
       107: .line 797
            new org.graalvm.compiler.phases.common.GuardLoweringPhase
            dup
            invokespecial org.graalvm.compiler.phases.common.GuardLoweringPhase.<init>:()V
            aload 9 /* snippetCopy */
            aconst_null
            invokevirtual org.graalvm.compiler.phases.common.GuardLoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       108: .line 799
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph$GuardsStage
      StackMap stack:
            aload 9 /* snippetCopy */
            aload 18 /* guardsStage */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setGuardsStage:(Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;)V
       109: .line 800
            aconst_null
            astore 19
            aconst_null
            astore 20
       110: ldc "LoweringSnippetTemplate"
            aload 9 /* snippetCopy */
            invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
            astore 21 /* s */
        start local 21 // org.graalvm.compiler.debug.Debug$Scope s
       111: .line 801
            new org.graalvm.compiler.phases.common.LoweringPhase
            dup
            new org.graalvm.compiler.phases.common.CanonicalizerPhase
            dup
            invokespecial org.graalvm.compiler.phases.common.CanonicalizerPhase.<init>:()V
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.cacheKey:Lorg/graalvm/compiler/replacements/SnippetTemplate$CacheKey;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.loweringStage:Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            invokespecial org.graalvm.compiler.phases.common.LoweringPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
            aload 9 /* snippetCopy */
            aload 8 /* phaseContext */
            invokevirtual org.graalvm.compiler.phases.common.LoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       112: .line 802
            aload 21 /* s */
            ifnull 120
            aload 21 /* s */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
            goto 120
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope
      StackMap stack: java.lang.Throwable
       113: astore 19
            aload 21 /* s */
            ifnull 114
            aload 21 /* s */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
        end local 21 // org.graalvm.compiler.debug.Debug$Scope s
      StackMap locals:
      StackMap stack:
       114: aload 19
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       115: astore 20
            aload 19
            ifnonnull 116
            aload 20
            astore 19
            goto 117
      StackMap locals:
      StackMap stack:
       116: aload 19
            aload 20
            if_acmpeq 117
            aload 19
            aload 20
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       117: aload 19
            athrow
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage
      StackMap stack: java.lang.Throwable
       118: astore 19 /* e */
        start local 19 // java.lang.Throwable e
       119: .line 803
            aload 19 /* e */
            invokestatic org.graalvm.compiler.debug.Debug.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 19 // java.lang.Throwable e
       120: .line 806
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 19 /* curSideEffectNodes */
        start local 19 // java.util.ArrayList curSideEffectNodes
       121: .line 807
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 20 /* curDeoptNodes */
        start local 20 // java.util.ArrayList curDeoptNodes
       122: .line 808
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 21 /* curStampNodes */
        start local 21 // java.util.ArrayList curStampNodes
       123: .line 809
            aload 9 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 23
            goto 138
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList top java.util.Iterator
      StackMap stack:
       124: aload 23
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 22 /* node */
        start local 22 // org.graalvm.compiler.graph.Node node
       125: .line 810
            aload 22 /* node */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 127
            aload 22 /* node */
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forNodeIntrinsic:()Lorg/graalvm/compiler/core/common/type/Stamp;
            if_acmpne 127
       126: .line 811
            aload 21 /* curStampNodes */
            aload 22 /* node */
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       127: .line 813
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
            aload 22 /* node */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 134
       128: .line 814
            aload 22 /* node */
            checkcast org.graalvm.compiler.nodes.StateSplit
            astore 24 /* stateSplit */
        start local 24 // org.graalvm.compiler.nodes.StateSplit stateSplit
       129: .line 815
            aload 24 /* stateSplit */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 25 /* frameState */
        start local 25 // org.graalvm.compiler.nodes.FrameState frameState
       130: .line 816
            aload 24 /* stateSplit */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.hasSideEffect:()Z
            ifeq 132
       131: .line 817
            aload 19 /* curSideEffectNodes */
            aload 22 /* node */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       132: .line 819
      StackMap locals: org.graalvm.compiler.nodes.StateSplit org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 25 /* frameState */
            ifnull 134
       133: .line 820
            aload 24 /* stateSplit */
            aconst_null
            invokeinterface org.graalvm.compiler.nodes.StateSplit.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        end local 25 // org.graalvm.compiler.nodes.FrameState frameState
        end local 24 // org.graalvm.compiler.nodes.StateSplit stateSplit
       134: .line 823
      StackMap locals:
      StackMap stack:
            aload 22 /* node */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode
            ifeq 138
       135: .line 824
            aload 22 /* node */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            astore 24 /* deoptNode */
        start local 24 // org.graalvm.compiler.nodes.DeoptimizingNode deoptNode
       136: .line 825
            aload 24 /* deoptNode */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode.canDeoptimize:()Z
            ifeq 138
       137: .line 826
            aload 20 /* curDeoptNodes */
            aload 24 /* deoptNode */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 24 // org.graalvm.compiler.nodes.DeoptimizingNode deoptNode
        end local 22 // org.graalvm.compiler.graph.Node node
       138: .line 809
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 23
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 124
       139: .line 831
            new org.graalvm.compiler.phases.common.DeadCodeEliminationPhase
            dup
            getstatic org.graalvm.compiler.phases.common.DeadCodeEliminationPhase$Optionality.Required:Lorg/graalvm/compiler/phases/common/DeadCodeEliminationPhase$Optionality;
            invokespecial org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.<init>:(Lorg/graalvm/compiler/phases/common/DeadCodeEliminationPhase$Optionality;)V
            aload 9 /* snippetCopy */
            invokevirtual org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
       140: .line 833
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 141
            iload 15 /* parameterCount */
            aload 16 /* placeholders */
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.checkAllVarargPlaceholdersAreDeleted:(I[Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;)Z
            ifne 141
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       141: .line 835
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList
      StackMap stack:
            new org.graalvm.compiler.phases.common.FloatingReadPhase
            dup
            iconst_1
            iconst_1
            invokespecial org.graalvm.compiler.phases.common.FloatingReadPhase.<init>:(ZZ)V
            aload 9 /* snippetCopy */
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
       142: .line 837
            aload 9 /* snippetCopy */
            new org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            dup
            invokespecial org.graalvm.compiler.nodes.memory.MemoryAnchorNode.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            astore 22 /* anchor */
        start local 22 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchor
       143: .line 838
            aload 9 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            getstatic org.graalvm.compiler.nodeinfo.InputType.Memory:Lorg/graalvm/compiler/nodeinfo/InputType;
            aload 22 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.StartNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
       144: .line 840
            aload 0 /* this */
            aload 9 /* snippetCopy */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
       145: .line 842
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            astore 23 /* entryPointNode */
        start local 23 // org.graalvm.compiler.nodes.StartNode entryPointNode
       146: .line 843
            aload 22 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.hasNoUsages:()Z
            ifeq 150
       147: .line 844
            aload 22 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.safeDelete:()V
       148: .line 845
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
       149: .line 846
            goto 178
       150: .line 849
      StackMap locals: org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode
      StackMap stack:
            iconst_0
            istore 24 /* needsMemoryMaps */
        start local 24 // boolean needsMemoryMaps
       151: .line 850
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            getstatic org.graalvm.compiler.nodes.ReturnNode.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 26
            goto 157
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode int top java.util.Iterator
      StackMap stack:
       152: aload 26
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            astore 25 /* retNode */
        start local 25 // org.graalvm.compiler.nodes.ReturnNode retNode
       153: .line 851
            aload 25 /* retNode */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            astore 27 /* memoryMap */
        start local 27 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
       154: .line 852
            aload 27 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLocations:()Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmpgt 155
            aload 27 /* memoryMap */
            getstatic org.graalvm.compiler.core.common.LocationIdentity.ANY_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLastLocationAccess:(Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            aload 22 /* anchor */
            if_acmpeq 157
       155: .line 853
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode int org.graalvm.compiler.nodes.ReturnNode java.util.Iterator org.graalvm.compiler.nodes.memory.MemoryMapNode
      StackMap stack:
            iconst_1
            istore 24 /* needsMemoryMaps */
       156: .line 854
            goto 158
        end local 27 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
        end local 25 // org.graalvm.compiler.nodes.ReturnNode retNode
       157: .line 850
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode int top java.util.Iterator
      StackMap stack:
            aload 26
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 152
       158: .line 858
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode int
      StackMap stack:
            iload 24 /* needsMemoryMaps */
            ifeq 161
       159: .line 859
            iconst_1
            istore 25 /* needsAnchor */
        start local 25 // boolean needsAnchor
       160: .line 860
            goto 172
        end local 25 // boolean needsAnchor
       161: .line 862
      StackMap locals:
      StackMap stack:
            aload 22 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            invokestatic org.graalvm.compiler.graph.iterators.NodePredicates.isNotA:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodePredicates$NegativeTypePredicate;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/graph/iterators/FilteredNodeIterable;
            invokevirtual org.graalvm.compiler.graph.iterators.FilteredNodeIterable.isNotEmpty:()Z
            istore 25 /* needsAnchor */
        start local 25 // boolean needsAnchor
       162: .line 864
            aconst_null
            astore 26 /* memoryMap */
        start local 26 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
       163: .line 865
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            getstatic org.graalvm.compiler.nodes.ReturnNode.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 28
            goto 170
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode int int org.graalvm.compiler.nodes.memory.MemoryMapNode top java.util.Iterator
      StackMap stack:
       164: aload 28
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            astore 27 /* retNode */
        start local 27 // org.graalvm.compiler.nodes.ReturnNode retNode
       165: .line 866
            aload 26 /* memoryMap */
            ifnonnull 168
       166: .line 867
            aload 27 /* retNode */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            astore 26 /* memoryMap */
       167: .line 868
            goto 169
       168: .line 869
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode int int org.graalvm.compiler.nodes.memory.MemoryMapNode org.graalvm.compiler.nodes.ReturnNode java.util.Iterator
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 169
            aload 26 /* memoryMap */
            aload 27 /* retNode */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            if_acmpeq 169
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       169: .line 871
      StackMap locals:
      StackMap stack:
            aload 27 /* retNode */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.setMemoryMap:(Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;)V
        end local 27 // org.graalvm.compiler.nodes.ReturnNode retNode
       170: .line 865
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode int int org.graalvm.compiler.nodes.memory.MemoryMapNode top java.util.Iterator
      StackMap stack:
            aload 28
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 164
       171: .line 873
            aload 26 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.safeDelete:()V
        end local 26 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
       172: .line 875
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode int int
      StackMap stack:
            iload 25 /* needsAnchor */
            ifeq 176
       173: .line 876
            aload 9 /* snippetCopy */
            aload 9 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            aload 22 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
       174: .line 877
            aload 0 /* this */
            aload 22 /* anchor */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
       175: .line 878
            goto 178
       176: .line 879
      StackMap locals:
      StackMap stack:
            aload 22 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.safeDelete:()V
       177: .line 880
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
        end local 25 // boolean needsAnchor
        end local 24 // boolean needsMemoryMaps
       178: .line 883
      StackMap locals:
      StackMap stack:
            iconst_2
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "SnippetTemplate after fixing memory anchoring"
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;)V
       179: .line 885
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            getstatic org.graalvm.compiler.nodes.ReturnNode.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.snapshot:()Ljava/util/List;
            astore 24 /* returnNodes */
        start local 24 // java.util.List returnNodes
       180: .line 886
            aload 24 /* returnNodes */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 183
       181: .line 887
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
       182: .line 888
            goto 201
      StackMap locals: java.util.List
      StackMap stack:
       183: aload 24 /* returnNodes */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 186
       184: .line 889
            aload 0 /* this */
            aload 24 /* returnNodes */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            putfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
       185: .line 890
            goto 201
       186: .line 891
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.MergeNode
            dup
            invokespecial org.graalvm.compiler.nodes.MergeNode.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.AbstractMergeNode
            astore 25 /* merge */
        start local 25 // org.graalvm.compiler.nodes.AbstractMergeNode merge
       187: .line 892
            aload 24 /* returnNodes */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/graalvm/compiler/nodes/ReturnNode.getMemoryMap()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode; (5)
                  (Lorg/graalvm/compiler/nodes/ReturnNode;)Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
            astore 26 /* memMaps */
        start local 26 // java.util.List memMaps
       188: .line 893
            aload 25 /* merge */
            aload 24 /* returnNodes */
            aconst_null
            invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.mergeReturns:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List;Ljava/util/List;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 27 /* returnValue */
        start local 27 // org.graalvm.compiler.nodes.ValueNode returnValue
       189: .line 894
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.ReturnNode
            dup
            aload 27 /* returnValue */
            invokespecial org.graalvm.compiler.nodes.ReturnNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            putfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
       190: .line 895
            aload 26 /* memMaps */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 200
       191: .line 896
            aload 25 /* merge */
            aload 26 /* memMaps */
            invokestatic org.graalvm.compiler.phases.common.FloatingReadPhase.mergeMemoryMaps:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List;)Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            astore 28 /* mmap */
        start local 28 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl mmap
       192: .line 897
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.memory.MemoryMapNode
            dup
            aload 28 /* mmap */
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.getMap:()Ljava/util/Map;
            invokespecial org.graalvm.compiler.nodes.memory.MemoryMapNode.<init>:(Ljava/util/Map;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.MemoryMapNode
            astore 29 /* memoryMap */
        start local 29 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
       193: .line 898
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            aload 29 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.setMemoryMap:(Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;)V
       194: .line 899
            aload 26 /* memMaps */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 31
            goto 199
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode java.util.List org.graalvm.compiler.nodes.AbstractMergeNode java.util.List org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl org.graalvm.compiler.nodes.memory.MemoryMapNode top java.util.Iterator
      StackMap stack:
       195: aload 31
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.memory.MemoryMapNode
            astore 30 /* mm */
        start local 30 // org.graalvm.compiler.nodes.memory.MemoryMapNode mm
       196: .line 900
            aload 30 /* mm */
            aload 29 /* memoryMap */
            if_acmpeq 199
            aload 30 /* mm */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.isAlive:()Z
            ifeq 199
       197: .line 901
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 198
            aload 30 /* mm */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.hasNoUsages:()Z
            ifne 198
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       198: .line 902
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode java.util.List org.graalvm.compiler.nodes.AbstractMergeNode java.util.List org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl org.graalvm.compiler.nodes.memory.MemoryMapNode org.graalvm.compiler.nodes.memory.MemoryMapNode java.util.Iterator
      StackMap stack:
            aload 30 /* mm */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
        end local 30 // org.graalvm.compiler.nodes.memory.MemoryMapNode mm
       199: .line 899
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode java.util.List org.graalvm.compiler.nodes.AbstractMergeNode java.util.List org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl org.graalvm.compiler.nodes.memory.MemoryMapNode top java.util.Iterator
      StackMap stack:
            aload 31
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 195
        end local 29 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
        end local 28 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl mmap
       200: .line 906
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode java.util.List org.graalvm.compiler.nodes.AbstractMergeNode java.util.List org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 25 /* merge */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        end local 27 // org.graalvm.compiler.nodes.ValueNode returnValue
        end local 26 // java.util.List memMaps
        end local 25 // org.graalvm.compiler.nodes.AbstractMergeNode merge
       201: .line 909
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 19 /* curSideEffectNodes */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.sideEffectNodes:Ljava/util/ArrayList;
       202: .line 910
            aload 0 /* this */
            aload 20 /* curDeoptNodes */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.deoptNodes:Ljava/util/ArrayList;
       203: .line 911
            aload 0 /* this */
            aload 21 /* curStampNodes */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.stampNodes:Ljava/util/ArrayList;
       204: .line 913
            aload 0 /* this */
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield org.graalvm.compiler.replacements.SnippetTemplate.nodes:Ljava/util/ArrayList;
       205: .line 914
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 26
            goto 209
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.util.Map jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode java.util.List top java.util.Iterator
      StackMap stack:
       206: aload 26
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 25 /* node */
        start local 25 // org.graalvm.compiler.graph.Node node
       207: .line 915
            aload 25 /* node */
            aload 23 /* entryPointNode */
            if_acmpeq 209
            aload 25 /* node */
            aload 23 /* entryPointNode */
            invokevirtual org.graalvm.compiler.nodes.StartNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            if_acmpeq 209
       208: .line 916
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.nodes:Ljava/util/ArrayList;
            aload 25 /* node */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 25 // org.graalvm.compiler.graph.Node node
       209: .line 914
      StackMap locals:
      StackMap stack:
            aload 26
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 206
       210: .line 920
            ldc "SnippetTemplateNodeCount[%#s]"
            aload 3 /* args */
            invokestatic org.graalvm.compiler.debug.Debug.counter:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugCounter;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.nodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            i2l
            invokeinterface org.graalvm.compiler.debug.DebugCounter.add:(J)V
       211: .line 921
            iconst_2
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "SnippetTemplate final state"
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        end local 24 // java.util.List returnNodes
        end local 23 // org.graalvm.compiler.nodes.StartNode entryPointNode
        end local 22 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchor
        end local 21 // java.util.ArrayList curStampNodes
        end local 20 // java.util.ArrayList curDeoptNodes
        end local 19 // java.util.ArrayList curSideEffectNodes
        end local 18 // org.graalvm.compiler.nodes.StructuredGraph$GuardsStage guardsStage
        end local 17 // boolean exploded
        end local 16 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] placeholders
        end local 15 // int parameterCount
        end local 14 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 13 // java.util.Map nodeReplacements
       212: .line 923
            aload 12 /* scope */
            ifnull 220
            aload 12 /* scope */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
            goto 220
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope
      StackMap stack: java.lang.Throwable
       213: astore 10
            aload 12 /* scope */
            ifnull 214
            aload 12 /* scope */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
        end local 12 // org.graalvm.compiler.debug.Debug$Scope scope
      StackMap locals:
      StackMap stack:
       214: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       215: astore 11
            aload 10
            ifnonnull 216
            aload 11
            astore 10
            goto 217
      StackMap locals:
      StackMap stack:
       216: aload 10
            aload 11
            if_acmpeq 217
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       217: aload 10
            athrow
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack: java.lang.Throwable
       218: astore 10 /* ex */
        start local 10 // java.lang.Throwable ex
       219: .line 924
            aload 10 /* ex */
            invokestatic org.graalvm.compiler.debug.Debug.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 10 // java.lang.Throwable ex
       220: .line 926
      StackMap locals:
      StackMap stack:
            return
        end local 9 // org.graalvm.compiler.nodes.StructuredGraph snippetCopy
        end local 8 // org.graalvm.compiler.phases.tiers.PhaseContext phaseContext
        end local 7 // jdk.vm.ci.meta.Signature signature
        end local 6 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 5 // org.graalvm.compiler.nodes.StructuredGraph snippetGraph
        end local 4 // java.lang.Object[] constantArgs
        end local 3 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 2 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 1 // org.graalvm.compiler.phases.util.Providers providers
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0  221     0                  this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0  221     1             providers  Lorg/graalvm/compiler/phases/util/Providers;
            0  221     2     snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0  221     3                  args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            5  221     4          constantArgs  [Ljava/lang/Object;
            6  221     5          snippetGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            9  221     6                method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           10  221     7             signature  Ljdk/vm/ci/meta/Signature;
           11  221     8          phaseContext  Lorg/graalvm/compiler/phases/tiers/PhaseContext;
           12  221     9           snippetCopy  Lorg/graalvm/compiler/nodes/StructuredGraph;
           14  214    12                 scope  Lorg/graalvm/compiler/debug/Debug$Scope;
           17  212    13      nodeReplacements  Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           19  212    14            metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
           21  212    15        parameterCount  I
           22  212    16          placeholders  [Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;
           23   45    17                     i  I
           26   37    18                   arg  Ljava/lang/Object;
           27   37    19                  kind  Ljdk/vm/ci/meta/JavaKind;
           32   33    20          constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
           34   35    20          constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
           36   37    20          constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
           29   34    21                 stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
           40   43    18               varargs  Lorg/graalvm/compiler/replacements/SnippetTemplate$Varargs;
           41   43    19           placeholder  Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;
           49   91    17                     i  I
           56   83    18               varargs  Lorg/graalvm/compiler/replacements/SnippetTemplate$Varargs;
           57   83    19                length  I
           58   83    20                params  [Lorg/graalvm/compiler/nodes/ParameterNode;
           59   83    21                 stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
           60   68    22                     j  I
           63   66    23                   idx  I
           65   66    24                 local  Lorg/graalvm/compiler/nodes/ParameterNode;
           70   83    22           placeholder  Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;
           73   82    23                 usage  Lorg/graalvm/compiler/graph/Node;
           75   79    25           loadIndexed  Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
           77   79    26  loadSnippetParameter  Lorg/graalvm/compiler/replacements/nodes/LoadSnippetVarargParameterNode;
           85   89    18                 local  Lorg/graalvm/compiler/nodes/ParameterNode;
           92  212    17              exploded  Z
           94  104    18           explodeLoop  Lorg/graalvm/compiler/replacements/nodes/ExplodeLoopNode;
           96  104    19             loopBegin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
           98  102    20                  loop  Lorg/graalvm/compiler/loop/LoopEx;
           99  102    21                  mark  Lorg/graalvm/compiler/graph/Graph$Mark;
          106  212    18           guardsStage  Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
          111  114    21                     s  Lorg/graalvm/compiler/debug/Debug$Scope;
          119  120    19                     e  Ljava/lang/Throwable;
          121  212    19    curSideEffectNodes  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/StateSplit;>;
          122  212    20         curDeoptNodes  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/DeoptimizingNode;>;
          123  212    21         curStampNodes  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/ValueNode;>;
          125  138    22                  node  Lorg/graalvm/compiler/graph/Node;
          129  134    24            stateSplit  Lorg/graalvm/compiler/nodes/StateSplit;
          130  134    25            frameState  Lorg/graalvm/compiler/nodes/FrameState;
          136  138    24             deoptNode  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
          143  212    22                anchor  Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
          146  212    23        entryPointNode  Lorg/graalvm/compiler/nodes/StartNode;
          151  178    24       needsMemoryMaps  Z
          153  157    25               retNode  Lorg/graalvm/compiler/nodes/ReturnNode;
          154  157    27             memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          160  161    25           needsAnchor  Z
          162  178    25           needsAnchor  Z
          163  172    26             memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          165  170    27               retNode  Lorg/graalvm/compiler/nodes/ReturnNode;
          180  212    24           returnNodes  Ljava/util/List<Lorg/graalvm/compiler/nodes/ReturnNode;>;
          187  201    25                 merge  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
          188  201    26               memMaps  Ljava/util/List<Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;>;
          189  201    27           returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
          192  200    28                  mmap  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
          193  200    29             memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          196  199    30                    mm  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          207  209    25                  node  Lorg/graalvm/compiler/graph/Node;
          219  220    10                    ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
         111   112     113  any
         110   115     115  any
         109   118     118  Class java.lang.Throwable
          14   212     213  any
          13   215     215  any
          12   218     218  Class java.lang.Throwable
    MethodParameters:
                   Name  Flags
      providers          final
      snippetReflection  
      args               

  protected java.lang.Object[] getConstantArgs(org.graalvm.compiler.replacements.SnippetTemplate$Arguments);
    descriptor: (Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         0: .line 929
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 2 /* constantArgs */
        start local 2 // java.lang.Object[] constantArgs
         1: .line 930
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 8
         3: .line 931
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 3 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isConstantParameter:(I)Z
            ifne 6
         4: .line 932
            aload 2 /* constantArgs */
            iload 3 /* i */
            aconst_null
            aastore
         5: .line 933
            goto 7
         6: .line 934
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 7
            aload 2 /* constantArgs */
            iload 3 /* i */
            aaload
            ifnonnull 7
            new java.lang.AssertionError
            dup
            ldc "Can't pass raw null through as argument"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 930
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getParameterCount:()I
            if_icmplt 3
        end local 3 // int i
         9: .line 937
            aload 2 /* constantArgs */
            areturn
        end local 2 // java.lang.Object[] constantArgs
        end local 1 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   10     1          args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            1   10     2  constantArgs  [Ljava/lang/Object;
            2    9     3             i  I
    MethodParameters:
      Name  Flags
      args  

  private static boolean checkAllVarargPlaceholdersAreDeleted(int, org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[]);
    descriptor: (I[Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // int parameterCount
        start local 1 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] placeholders
         0: .line 941
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 942
      StackMap locals: int
      StackMap stack:
            aload 1 /* placeholders */
            iload 2 /* i */
            aaload
            ifnull 4
         3: .line 943
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 4
            aload 1 /* placeholders */
            iload 2 /* i */
            aaload
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode.isDeleted:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            aload 1 /* placeholders */
            iload 2 /* i */
            aaload
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 941
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            iload 0 /* parameterCount */
            if_icmplt 2
        end local 2 // int i
         6: .line 946
            iconst_1
            ireturn
        end local 1 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] placeholders
        end local 0 // int parameterCount
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0  parameterCount  I
            0    7     1    placeholders  [Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;
            1    6     2               i  I
    MethodParameters:
                Name  Flags
      parameterCount  
      placeholders    

  private static boolean checkConstantArgument(jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.Signature, int, java.lang.String, java.lang.Object, jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/Signature;ILjava/lang/String;Ljava/lang/Object;Ljdk/vm/ci/meta/JavaKind;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=7
        start local 0 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 2 // jdk.vm.ci.meta.Signature signature
        start local 3 // int i
        start local 4 // java.lang.String name
        start local 5 // java.lang.Object arg
        start local 6 // jdk.vm.ci.meta.JavaKind kind
         0: .line 950
            aload 2 /* signature */
            iload 3 /* i */
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.Signature.getParameterType:(ILjdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaType;
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.JavaType.resolve:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 7 /* type */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaType type
         1: .line 951
            aload 0 /* metaAccess */
            ldc Lorg/graalvm/compiler/word/WordBase;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 7 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 4
         2: .line 952
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 3
            aload 5 /* arg */
            instanceof jdk.vm.ci.meta.JavaConstant
            ifne 3
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": word constant parameters must be passed boxed in a Constant value: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 953
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            iconst_1
            ireturn
         4: .line 955
      StackMap locals:
      StackMap stack:
            aload 6 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 10
         5: .line 956
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 10
            aload 5 /* arg */
            ifnull 6
            aload 6 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.toBoxedJavaClass:()Ljava/lang/Class;
            aload 5 /* arg */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 10
      StackMap locals:
      StackMap stack:
         6: new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": wrong value kind for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": expected "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* kind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", got "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 957
            aload 5 /* arg */
            ifnonnull 8
            ldc "null"
            goto 9
      StackMap locals: jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature int java.lang.String java.lang.Object jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack: new 6 new 6 java.lang.StringBuilder
         8: aload 5 /* arg */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
      StackMap locals: jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature int java.lang.String java.lang.Object jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack: new 6 new 6 java.lang.StringBuilder java.lang.String
         9: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        10: .line 959
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 7 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 6 // jdk.vm.ci.meta.JavaKind kind
        end local 5 // java.lang.Object arg
        end local 4 // java.lang.String name
        end local 3 // int i
        end local 2 // jdk.vm.ci.meta.Signature signature
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   11     1      method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   11     2   signature  Ljdk/vm/ci/meta/Signature;
            0   11     3           i  I
            0   11     4        name  Ljava/lang/String;
            0   11     5         arg  Ljava/lang/Object;
            0   11     6        kind  Ljdk/vm/ci/meta/JavaKind;
            1   11     7        type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
            Name  Flags
      metaAccess  
      method      final
      signature   
      i           
      name        
      arg         
      kind        

  private static boolean checkVarargs(jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.Signature, int, java.lang.String, org.graalvm.compiler.replacements.SnippetTemplate$Varargs);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/Signature;ILjava/lang/String;Lorg/graalvm/compiler/replacements/SnippetTemplate$Varargs;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 2 // jdk.vm.ci.meta.Signature signature
        start local 3 // int i
        start local 4 // java.lang.String name
        start local 5 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
         0: .line 963
            aload 2 /* signature */
            iload 3 /* i */
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.Signature.getParameterType:(ILjdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaType;
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            astore 6 /* type */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaType type
         1: .line 964
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 2
            aload 6 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            ldc "varargs parameter must be an array type"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 965
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 4
            aload 6 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 0 /* metaAccess */
            aload 5 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.componentType:Ljava/lang/Class;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifne 4
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "componentType for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not matching "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " instance: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 966
            aload 5 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.componentType:Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 967
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 5 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        end local 4 // java.lang.String name
        end local 3 // int i
        end local 2 // jdk.vm.ci.meta.Signature signature
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0    5     1      method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    5     2   signature  Ljdk/vm/ci/meta/Signature;
            0    5     3           i  I
            0    5     4        name  Ljava/lang/String;
            0    5     5     varargs  Lorg/graalvm/compiler/replacements/SnippetTemplate$Varargs;
            1    5     6        type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
            Name  Flags
      metaAccess  
      method      final
      signature   
      i           
      name        
      varargs     

  private java.util.Map<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node> bind(org.graalvm.compiler.nodes.StructuredGraph, jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.replacements.SnippetTemplate$Arguments);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=18, args_size=4
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 3 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         0: .line 1037
            invokestatic org.graalvm.compiler.graph.Node.newIdentityMap:()Ljava/util/Map;
            astore 4 /* replacements */
        start local 4 // java.util.Map replacements
         1: .line 1038
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 2
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getParameterCount:()I
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            arraylength
            if_icmpeq 2
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "number of args ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getParameterCount:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") != number of parameters ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 1039
      StackMap locals: java.util.Map
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 47
         4: .line 1040
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 5 /* i */
            aaload
            astore 6 /* parameter */
        start local 6 // java.lang.Object parameter
         5: .line 1041
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 6
            aload 6 /* parameter */
            ifnonnull 6
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " has no parameter named "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 5 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getParameterName:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 1042
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 5 /* i */
            aaload
            astore 7 /* argument */
        start local 7 // java.lang.Object argument
         7: .line 1043
            aload 6 /* parameter */
            instanceof org.graalvm.compiler.nodes.ParameterNode
            ifeq 16
         8: .line 1044
            aload 7 /* argument */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 11
         9: .line 1045
            aload 4 /* replacements */
            aload 6 /* parameter */
            checkcast org.graalvm.compiler.nodes.ParameterNode
            aload 7 /* argument */
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1046
            goto 46
        11: .line 1047
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 6 /* parameter */
            checkcast org.graalvm.compiler.nodes.ParameterNode
            invokevirtual org.graalvm.compiler.nodes.ParameterNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 8 /* kind */
        start local 8 // jdk.vm.ci.meta.JavaKind kind
        12: .line 1048
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 13
            aload 7 /* argument */
            ifnonnull 13
            aload 8 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 13
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " cannot accept null for non-object parameter named "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 5 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getParameterName:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        13: .line 1049
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aload 0 /* this */
            aload 7 /* argument */
            aload 8 /* kind */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.forBoxed:(Ljava/lang/Object;Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/JavaConstant;
            astore 9 /* constant */
        start local 9 // jdk.vm.ci.meta.JavaConstant constant
        14: .line 1050
            aload 4 /* replacements */
            aload 6 /* parameter */
            checkcast org.graalvm.compiler.nodes.ParameterNode
            aload 9 /* constant */
            aload 2 /* metaAccess */
            aload 1 /* replaceeGraph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // jdk.vm.ci.meta.JavaConstant constant
        end local 8 // jdk.vm.ci.meta.JavaKind kind
        15: .line 1052
            goto 46
      StackMap locals:
      StackMap stack:
        16: aload 6 /* parameter */
            instanceof org.graalvm.compiler.nodes.ParameterNode[]
            ifeq 45
        17: .line 1053
            aload 6 /* parameter */
            checkcast org.graalvm.compiler.nodes.ParameterNode[]
            astore 8 /* params */
        start local 8 // org.graalvm.compiler.nodes.ParameterNode[] params
        18: .line 1054
            aload 7 /* argument */
            checkcast org.graalvm.compiler.replacements.SnippetTemplate$Varargs
            astore 9 /* varargs */
        start local 9 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        19: .line 1055
            aload 8 /* params */
            arraylength
            istore 10 /* length */
        start local 10 // int length
        20: .line 1056
            aconst_null
            astore 11 /* list */
        start local 11 // java.util.List list
        21: .line 1057
            aconst_null
            astore 12 /* array */
        start local 12 // java.lang.Object array
        22: .line 1058
            aload 9 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.value:Ljava/lang/Object;
            instanceof java.util.List
            ifeq 25
        23: .line 1059
            aload 9 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.value:Ljava/lang/Object;
            checkcast java.util.List
            astore 11 /* list */
        24: .line 1060
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 29
            aload 11 /* list */
            invokeinterface java.util.List.size:()I
            iload 10 /* length */
            if_icmpeq 29
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            iload 10 /* length */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* list */
            invokeinterface java.util.List.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        25: .line 1062
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.util.Map int java.lang.Object java.lang.Object org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.replacements.SnippetTemplate$Varargs int java.util.List java.lang.Object
      StackMap stack:
            aload 9 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.value:Ljava/lang/Object;
            astore 12 /* array */
        26: .line 1063
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 28
            aload 12 /* array */
            ifnull 27
            aload 12 /* array */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifne 28
      StackMap locals:
      StackMap stack:
        27: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        28: .line 1064
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 29
            aload 12 /* array */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            iload 10 /* length */
            if_icmpeq 29
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            iload 10 /* length */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 12 /* array */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        29: .line 1067
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* j */
        start local 13 // int j
        30: goto 43
        31: .line 1068
      StackMap locals: int
      StackMap stack:
            aload 8 /* params */
            iload 13 /* j */
            aaload
            astore 14 /* param */
        start local 14 // org.graalvm.compiler.nodes.ParameterNode param
        32: .line 1069
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 33
            aload 14 /* param */
            ifnonnull 33
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        33: .line 1070
      StackMap locals: org.graalvm.compiler.nodes.ParameterNode
      StackMap stack:
            aload 11 /* list */
            ifnull 34
            aload 11 /* list */
            iload 13 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            goto 35
      StackMap locals:
      StackMap stack:
        34: aload 12 /* array */
            iload 13 /* j */
            invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
        35: astore 15 /* value */
        start local 15 // java.lang.Object value
        36: .line 1071
            aload 15 /* value */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 39
        37: .line 1072
            aload 4 /* replacements */
            aload 14 /* param */
            aload 15 /* value */
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        38: .line 1073
            goto 42
        39: .line 1074
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 15 /* value */
            aload 14 /* param */
            invokevirtual org.graalvm.compiler.nodes.ParameterNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.forBoxed:(Ljava/lang/Object;Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/JavaConstant;
            astore 16 /* constant */
        start local 16 // jdk.vm.ci.meta.JavaConstant constant
        40: .line 1075
            aload 16 /* constant */
            aload 2 /* metaAccess */
            aload 1 /* replaceeGraph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 17 /* element */
        start local 17 // org.graalvm.compiler.nodes.ConstantNode element
        41: .line 1076
            aload 4 /* replacements */
            aload 14 /* param */
            aload 17 /* element */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 17 // org.graalvm.compiler.nodes.ConstantNode element
        end local 16 // jdk.vm.ci.meta.JavaConstant constant
        end local 15 // java.lang.Object value
        end local 14 // org.graalvm.compiler.nodes.ParameterNode param
        42: .line 1067
      StackMap locals:
      StackMap stack:
            iinc 13 /* j */ 1
      StackMap locals:
      StackMap stack:
        43: iload 13 /* j */
            iload 10 /* length */
            if_icmplt 31
        end local 13 // int j
        end local 12 // java.lang.Object array
        end local 11 // java.util.List list
        end local 10 // int length
        end local 9 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        end local 8 // org.graalvm.compiler.nodes.ParameterNode[] params
        44: .line 1079
            goto 46
        45: .line 1080
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.util.Map int java.lang.Object java.lang.Object
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 46
            aload 6 /* parameter */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.CONSTANT_PARAMETER:Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 46
            aload 6 /* parameter */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.UNUSED_PARAMETER:Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 46
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "unexpected entry for parameter: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 5 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getParameterName:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* parameter */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 7 // java.lang.Object argument
        end local 6 // java.lang.Object parameter
        46: .line 1039
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        47: iload 5 /* i */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            arraylength
            if_icmplt 4
        end local 5 // int i
        48: .line 1083
            aload 4 /* replacements */
            areturn
        end local 4 // java.util.Map replacements
        end local 3 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   49     0           this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   49     1  replaceeGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   49     2     metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   49     3           args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            1   49     4   replacements  Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
            3   48     5              i  I
            5   46     6      parameter  Ljava/lang/Object;
            7   46     7       argument  Ljava/lang/Object;
           12   15     8           kind  Ljdk/vm/ci/meta/JavaKind;
           14   15     9       constant  Ljdk/vm/ci/meta/JavaConstant;
           18   44     8         params  [Lorg/graalvm/compiler/nodes/ParameterNode;
           19   44     9        varargs  Lorg/graalvm/compiler/replacements/SnippetTemplate$Varargs;
           20   44    10         length  I
           21   44    11           list  Ljava/util/List<*>;
           22   44    12          array  Ljava/lang/Object;
           30   44    13              j  I
           32   42    14          param  Lorg/graalvm/compiler/nodes/ParameterNode;
           36   42    15          value  Ljava/lang/Object;
           40   42    16       constant  Ljdk/vm/ci/meta/JavaConstant;
           41   42    17        element  Lorg/graalvm/compiler/nodes/ConstantNode;
    Signature: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
    MethodParameters:
               Name  Flags
      replaceeGraph  
      metaAccess     
      args           

  protected jdk.vm.ci.meta.JavaConstant forBoxed(java.lang.Object, jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljava/lang/Object;Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // java.lang.Object argument
        start local 2 // jdk.vm.ci.meta.JavaKind localKind
         0: .line 1095
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 1
            aload 2 /* localKind */
            aload 2 /* localKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1096
      StackMap locals:
      StackMap stack:
            aload 2 /* localKind */
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 3
         2: .line 1097
            aload 1 /* argument */
            invokestatic jdk.vm.ci.meta.JavaConstant.forBoxedPrimitive:(Ljava/lang/Object;)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
         3: .line 1099
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            aload 2 /* localKind */
            aload 1 /* argument */
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.forBoxed:(Ljdk/vm/ci/meta/JavaKind;Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 2 // jdk.vm.ci.meta.JavaKind localKind
        end local 1 // java.lang.Object argument
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0    4     1   argument  Ljava/lang/Object;
            0    4     2  localKind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
           Name  Flags
      argument   
      localKind  

  private boolean assertSnippetKills(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.nodes.ValueNode replacee
         0: .line 1132
            aload 1 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isAfterFloatingReadPhase:()Z
            ifne 2
         1: .line 1134
            iconst_1
            ireturn
         2: .line 1136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            ifnonnull 4
         3: .line 1138
            iconst_1
            ireturn
         4: .line 1140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            astore 2 /* memoryMap */
        start local 2 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
         5: .line 1141
            aload 2 /* memoryMap */
            ifnull 6
            aload 2 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.isEmpty:()Z
            ifeq 7
         6: .line 1143
      StackMap locals: org.graalvm.compiler.nodes.memory.MemoryMapNode
      StackMap stack:
            iconst_1
            ireturn
         7: .line 1146
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            aload 2 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLocations:()Ljava/util/Collection;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 3 /* kills */
        start local 3 // java.util.Set kills
         8: .line 1148
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single
            ifeq 15
         9: .line 1150
            aload 1 /* replacee */
            checkcast org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single.getLocationIdentity:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            astore 4 /* locationIdentity */
        start local 4 // org.graalvm.compiler.core.common.LocationIdentity locationIdentity
        10: .line 1151
            aload 4 /* locationIdentity */
            invokevirtual org.graalvm.compiler.core.common.LocationIdentity.isAny:()Z
            ifeq 13
        11: .line 1152
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 12
            aload 2 /* memoryMap */
            invokestatic org.graalvm.compiler.core.common.LocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLastLocationAccess:(Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            instanceof org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            ifeq 12
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* replacee */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " kills ANY_LOCATION, but snippet does not"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        12: .line 1154
      StackMap locals: java.util.Set org.graalvm.compiler.core.common.LocationIdentity
      StackMap stack:
            iconst_1
            ireturn
        13: .line 1156
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 14
            aload 3 /* kills */
            aload 4 /* locationIdentity */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 14
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* replacee */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " kills "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* locationIdentity */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", but snippet doesn't contain a kill to this location"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        14: .line 1157
      StackMap locals:
      StackMap stack:
            aload 3 /* kills */
            aload 4 /* locationIdentity */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.graalvm.compiler.core.common.LocationIdentity locationIdentity
        15: .line 1159
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 16
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi
            ifeq 16
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* replacee */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " multi not supported (yet)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        16: .line 1162
      StackMap locals:
      StackMap stack:
            aload 2 /* memoryMap */
            invokestatic org.graalvm.compiler.core.common.LocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLastLocationAccess:(Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            instanceof org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            ifeq 18
        17: .line 1163
            aload 3 /* kills */
            invokestatic org.graalvm.compiler.core.common.LocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        18: .line 1167
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 19
            aload 3 /* kills */
            invokestatic org.graalvm.compiler.core.common.LocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 19
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "snippet graph contains a kill to ANY_LOCATION, but replacee ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* replacee */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ") doesn't kill ANY_LOCATION.  kills: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* kills */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        19: .line 1176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.privateLocations:[Lorg/graalvm/compiler/core/common/LocationIdentity;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 23
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.MemoryMapNode java.util.Set top int int org.graalvm.compiler.core.common.LocationIdentity[]
      StackMap stack:
        20: aload 7
            iload 5
            aaload
            astore 4 /* p */
        start local 4 // org.graalvm.compiler.core.common.LocationIdentity p
        21: .line 1177
            aload 3 /* kills */
            aload 4 /* p */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.graalvm.compiler.core.common.LocationIdentity p
        22: .line 1176
            iinc 5 1
      StackMap locals:
      StackMap stack:
        23: iload 5
            iload 6
            if_icmplt 20
        24: .line 1180
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 25
            aload 3 /* kills */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 25
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "snippet graph kills non-private locations "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* kills */
            invokeinterface java.util.Set.toArray:()[Ljava/lang/Object;
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " that replacee ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* replacee */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ") doesn't kill"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        25: .line 1181
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.MemoryMapNode java.util.Set
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.util.Set kills
        end local 2 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
        end local 1 // org.graalvm.compiler.nodes.ValueNode replacee
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   26     0              this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   26     1          replacee  Lorg/graalvm/compiler/nodes/ValueNode;
            5   26     2         memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            8   26     3             kills  Ljava/util/Set<Lorg/graalvm/compiler/core/common/LocationIdentity;>;
           10   15     4  locationIdentity  Lorg/graalvm/compiler/core/common/LocationIdentity;
           21   22     4                 p  Lorg/graalvm/compiler/core/common/LocationIdentity;
    MethodParameters:
          Name  Flags
      replacee  

  private void rewireMemoryGraph(org.graalvm.compiler.nodes.ValueNode, java.util.Map<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.nodes.ValueNode replacee
        start local 2 // java.util.Map duplicates
         0: .line 1248
            aload 1 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isAfterFloatingReadPhase:()Z
            ifeq 17
         1: .line 1250
            aload 0 /* this */
            aload 1 /* replacee */
            new org.graalvm.compiler.replacements.SnippetTemplate$MemoryOutputMap
            dup
            aload 0 /* this */
            aload 1 /* replacee */
            aload 2 /* duplicates */
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$MemoryOutputMap.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate;Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.replaceMemoryUsages:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/MemoryMap;)V
         2: .line 1252
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            ifnull 9
         3: .line 1253
            aload 2 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            astore 3 /* ret */
        start local 3 // org.graalvm.compiler.nodes.ReturnNode ret
         4: .line 1254
            aload 3 /* ret */
            ifnull 9
         5: .line 1255
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            astore 4 /* memoryMap */
        start local 4 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
         6: .line 1256
            aload 4 /* memoryMap */
            ifnull 9
         7: .line 1257
            aload 3 /* ret */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.setMemoryMap:(Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;)V
         8: .line 1258
            aload 4 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.safeDelete:()V
        end local 4 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
        end local 3 // org.graalvm.compiler.nodes.ReturnNode ret
         9: .line 1262
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            ifnull 17
        10: .line 1264
            aload 2 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            astore 3 /* memoryDuplicate */
        start local 3 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode memoryDuplicate
        11: .line 1265
            aload 0 /* this */
            aload 3 /* memoryDuplicate */
            new org.graalvm.compiler.replacements.SnippetTemplate$MemoryInputMap
            dup
            aload 1 /* replacee */
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$MemoryInputMap.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.replaceMemoryUsages:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/MemoryMap;)V
        12: .line 1267
            aload 3 /* memoryDuplicate */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.hasNoUsages:()Z
            ifeq 17
        13: .line 1268
            aload 3 /* memoryDuplicate */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            ifnull 16
        14: .line 1269
            aload 3 /* memoryDuplicate */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 3 /* memoryDuplicate */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        15: .line 1270
            goto 17
        16: .line 1273
      StackMap locals: org.graalvm.compiler.nodes.memory.MemoryAnchorNode
      StackMap stack:
            aload 3 /* memoryDuplicate */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.safeDelete:()V
        end local 3 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode memoryDuplicate
        17: .line 1278
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.Map duplicates
        end local 1 // org.graalvm.compiler.nodes.ValueNode replacee
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   18     1         replacee  Lorg/graalvm/compiler/nodes/ValueNode;
            0   18     2       duplicates  Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
            4    9     3              ret  Lorg/graalvm/compiler/nodes/ReturnNode;
            6    9     4        memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
           11   17     3  memoryDuplicate  Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
    Signature: (Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;)V
    MethodParameters:
            Name  Flags
      replacee    
      duplicates  

  private static org.graalvm.compiler.core.common.LocationIdentity getLocationIdentity(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/common/LocationIdentity;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.graph.Node node
         0: .line 1281
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryAccess
            ifeq 2
         1: .line 1282
            aload 0 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryAccess
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryAccess.getLocationIdentity:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            areturn
         2: .line 1283
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.spi.MemoryProxy
            ifeq 4
         3: .line 1284
            aload 0 /* node */
            checkcast org.graalvm.compiler.nodes.spi.MemoryProxy
            invokeinterface org.graalvm.compiler.nodes.spi.MemoryProxy.getLocationIdentity:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            areturn
         4: .line 1285
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryPhiNode
            ifeq 6
         5: .line 1286
            aload 0 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryPhiNode
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryPhiNode.getLocationIdentity:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            areturn
         6: .line 1288
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.graalvm.compiler.graph.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  node  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      node  

  private void replaceMemoryUsages(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.memory.MemoryMap);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/MemoryMap;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.nodes.ValueNode node
        start local 2 // org.graalvm.compiler.nodes.memory.MemoryMap map
         0: .line 1293
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.MemoryMap top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 3 /* usage */
        start local 3 // org.graalvm.compiler.graph.Node usage
         2: .line 1294
            aload 3 /* usage */
            instanceof org.graalvm.compiler.nodes.memory.MemoryMapNode
            ifeq 4
         3: .line 1295
            goto 16
         4: .line 1298
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.MemoryMap org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
            aload 3 /* usage */
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.getLocationIdentity:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            astore 5 /* location */
        start local 5 // org.graalvm.compiler.core.common.LocationIdentity location
         5: .line 1299
            aload 5 /* location */
            ifnull 16
         6: .line 1300
            aload 3 /* usage */
            invokevirtual org.graalvm.compiler.graph.Node.inputPositions:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 15
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.MemoryMap org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.core.common.LocationIdentity top java.util.Iterator
      StackMap stack:
         7: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Position
            astore 6 /* pos */
        start local 6 // org.graalvm.compiler.graph.Position pos
         8: .line 1301
            aload 6 /* pos */
            invokevirtual org.graalvm.compiler.graph.Position.getInputType:()Lorg/graalvm/compiler/nodeinfo/InputType;
            getstatic org.graalvm.compiler.nodeinfo.InputType.Memory:Lorg/graalvm/compiler/nodeinfo/InputType;
            if_acmpne 15
            aload 6 /* pos */
            aload 3 /* usage */
            invokevirtual org.graalvm.compiler.graph.Position.get:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            aload 1 /* node */
            if_acmpne 15
         9: .line 1302
            aload 2 /* map */
            aload 5 /* location */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryMap.getLastLocationAccess:(Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            astore 8 /* replacement */
        start local 8 // org.graalvm.compiler.nodes.memory.MemoryNode replacement
        10: .line 1303
            aload 8 /* replacement */
            ifnonnull 14
        11: .line 1304
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 15
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.mayRemoveLocation:Z
            ifne 15
            invokestatic org.graalvm.compiler.core.common.LocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            aload 5 /* location */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 15
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.privateLocations:[Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            aload 5 /* location */
            invokestatic java.util.function.Predicate.isEqual:(Ljava/lang/Object;)Ljava/util/function/Predicate;
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifne 15
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Snippet "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 1305
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.method:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            ldc "%h.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " contains access to the non-private location "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* location */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", but replacee doesn't access this location."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 1306
            aload 2 /* map */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryMap.getLocations:()Ljava/util/Collection;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        14: .line 1308
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.MemoryMap org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.core.common.LocationIdentity org.graalvm.compiler.graph.Position java.util.Iterator org.graalvm.compiler.nodes.memory.MemoryNode
      StackMap stack:
            aload 6 /* pos */
            aload 3 /* usage */
            aload 8 /* replacement */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.graph.Position.set:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
        end local 8 // org.graalvm.compiler.nodes.memory.MemoryNode replacement
        end local 6 // org.graalvm.compiler.graph.Position pos
        15: .line 1300
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.MemoryMap org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.core.common.LocationIdentity top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 5 // org.graalvm.compiler.core.common.LocationIdentity location
        end local 3 // org.graalvm.compiler.graph.Node usage
        16: .line 1293
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.MemoryMap top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        17: .line 1314
            return
        end local 2 // org.graalvm.compiler.nodes.memory.MemoryMap map
        end local 1 // org.graalvm.compiler.nodes.ValueNode node
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   18     1         node  Lorg/graalvm/compiler/nodes/ValueNode;
            0   18     2          map  Lorg/graalvm/compiler/nodes/memory/MemoryMap;
            2   16     3        usage  Lorg/graalvm/compiler/graph/Node;
            5   16     5     location  Lorg/graalvm/compiler/core/common/LocationIdentity;
            8   15     6          pos  Lorg/graalvm/compiler/graph/Position;
           10   15     8  replacement  Lorg/graalvm/compiler/nodes/memory/MemoryNode;
    MethodParameters:
      Name  Flags
      node  
      map   

  public java.util.Map<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node> instantiate(jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.nodes.FixedNode, org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer, org.graalvm.compiler.replacements.SnippetTemplate$Arguments);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=23, args_size=5
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 2 // org.graalvm.compiler.nodes.FixedNode replacee
        start local 3 // org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer replacer
        start local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         0: .line 1327
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.assertSnippetKills:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1328
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5
            aconst_null
            astore 6
         2: aload 4 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.instantiationTimer:Lorg/graalvm/compiler/debug/DebugTimer;
            invokeinterface org.graalvm.compiler.debug.DebugTimer.start:()Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 7 /* a */
        start local 7 // org.graalvm.compiler.debug.DebugCloseable a
         3: aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.instantiationTimer:Lorg/graalvm/compiler/debug/DebugTimer;
            invokeinterface org.graalvm.compiler.debug.DebugTimer.start:()Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 8 /* b */
        start local 8 // org.graalvm.compiler.debug.DebugCloseable b
         4: .line 1329
            aload 4 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.instantiationCounter:Lorg/graalvm/compiler/debug/DebugCounter;
            invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()V
         5: .line 1330
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.instantiationCounter:Lorg/graalvm/compiler/debug/DebugCounter;
            invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()V
         6: .line 1332
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            astore 9 /* entryPointNode */
        start local 9 // org.graalvm.compiler.nodes.StartNode entryPointNode
         7: .line 1333
            aload 9 /* entryPointNode */
            invokevirtual org.graalvm.compiler.nodes.StartNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 10 /* firstCFGNode */
        start local 10 // org.graalvm.compiler.nodes.FixedNode firstCFGNode
         8: .line 1334
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 11 /* replaceeGraph */
        start local 11 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
         9: .line 1335
            aload 0 /* this */
            aload 11 /* replaceeGraph */
            aload 1 /* metaAccess */
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.bind:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map;
            astore 12 /* replacements */
        start local 12 // java.util.Map replacements
        10: .line 1336
            aload 12 /* replacements */
            aload 9 /* entryPointNode */
            aload 2 /* replacee */
            invokestatic org.graalvm.compiler.nodes.AbstractBeginNode.prevBegin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 1337
            aload 11 /* replaceeGraph */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.nodes:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
            aload 12 /* replacements */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addDuplicates:(Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph;ILjava/util/Map;)Ljava/util/Map;
            astore 13 /* duplicates */
        start local 13 // java.util.Map duplicates
        12: .line 1338
            iconst_2
            aload 11 /* replaceeGraph */
            ldc "After inlining snippet %s"
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        13: .line 1341
            aload 13 /* duplicates */
            aload 10 /* firstCFGNode */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.FixedNode
            astore 14 /* firstCFGNodeDuplicate */
        start local 14 // org.graalvm.compiler.nodes.FixedNode firstCFGNodeDuplicate
        14: .line 1342
            aload 2 /* replacee */
            aload 14 /* firstCFGNodeDuplicate */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
        15: .line 1344
            aload 0 /* this */
            aload 2 /* replacee */
            aload 13 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireFrameStates:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
        16: .line 1346
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode
            ifeq 53
        17: .line 1347
            aload 2 /* replacee */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            astore 15 /* replaceeDeopt */
        start local 15 // org.graalvm.compiler.nodes.DeoptimizingNode replaceeDeopt
        18: .line 1349
            aconst_null
            astore 16 /* stateBefore */
        start local 16 // org.graalvm.compiler.nodes.FrameState stateBefore
        19: .line 1350
            aconst_null
            astore 17 /* stateDuring */
        start local 17 // org.graalvm.compiler.nodes.FrameState stateDuring
        20: .line 1351
            aconst_null
            astore 18 /* stateAfter */
        start local 18 // org.graalvm.compiler.nodes.FrameState stateAfter
        21: .line 1352
            aload 15 /* replaceeDeopt */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode.canDeoptimize:()Z
            ifeq 28
        22: .line 1353
            aload 15 /* replaceeDeopt */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            ifeq 24
        23: .line 1354
            aload 15 /* replaceeDeopt */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore.stateBefore:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 16 /* stateBefore */
        24: .line 1356
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StructuredGraph java.util.Map java.util.Map org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.DeoptimizingNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 15 /* replaceeDeopt */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
            ifeq 26
        25: .line 1357
            aload 15 /* replaceeDeopt */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.stateDuring:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 17 /* stateDuring */
        26: .line 1359
      StackMap locals:
      StackMap stack:
            aload 15 /* replaceeDeopt */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
            ifeq 28
        27: .line 1360
            aload 15 /* replaceeDeopt */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 18 /* stateAfter */
        28: .line 1364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.deoptNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 20
            goto 52
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StructuredGraph java.util.Map java.util.Map org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.DeoptimizingNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState top java.util.Iterator
      StackMap stack:
        29: aload 20
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            astore 19 /* deoptNode */
        start local 19 // org.graalvm.compiler.nodes.DeoptimizingNode deoptNode
        30: .line 1365
            aload 13 /* duplicates */
            aload 19 /* deoptNode */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            astore 21 /* deoptDup */
        start local 21 // org.graalvm.compiler.nodes.DeoptimizingNode deoptDup
        31: .line 1366
            aload 21 /* deoptDup */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode.canDeoptimize:()Z
            ifeq 52
        32: .line 1367
            aload 21 /* deoptDup */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            ifeq 34
        33: .line 1368
            aload 21 /* deoptDup */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            aload 16 /* stateBefore */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore.setStateBefore:(Lorg/graalvm/compiler/nodes/FrameState;)V
        34: .line 1370
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StructuredGraph java.util.Map java.util.Map org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.DeoptimizingNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.DeoptimizingNode java.util.Iterator org.graalvm.compiler.nodes.DeoptimizingNode
      StackMap stack:
            aload 21 /* deoptDup */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
            ifeq 45
        35: .line 1371
            aload 21 /* deoptDup */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
            astore 22 /* deoptDupDuring */
        start local 22 // org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring deoptDupDuring
        36: .line 1372
            aload 17 /* stateDuring */
            ifnull 39
        37: .line 1373
            aload 22 /* deoptDupDuring */
            aload 17 /* stateDuring */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.setStateDuring:(Lorg/graalvm/compiler/nodes/FrameState;)V
        38: .line 1374
            goto 45
      StackMap locals: org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
      StackMap stack:
        39: aload 18 /* stateAfter */
            ifnull 42
        40: .line 1375
            aload 22 /* deoptDupDuring */
            aload 18 /* stateAfter */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.computeStateDuring:(Lorg/graalvm/compiler/nodes/FrameState;)V
        41: .line 1376
            goto 45
      StackMap locals:
      StackMap stack:
        42: aload 16 /* stateBefore */
            ifnull 45
        43: .line 1377
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 44
            aload 22 /* deoptDupDuring */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.hasSideEffect:()Z
            ifeq 44
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "can't use stateBefore as stateDuring for state split "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 22 /* deoptDupDuring */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        44: .line 1378
      StackMap locals:
      StackMap stack:
            aload 22 /* deoptDupDuring */
            aload 16 /* stateBefore */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.setStateDuring:(Lorg/graalvm/compiler/nodes/FrameState;)V
        end local 22 // org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring deoptDupDuring
        45: .line 1381
      StackMap locals:
      StackMap stack:
            aload 21 /* deoptDup */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
            ifeq 52
        46: .line 1382
            aload 21 /* deoptDup */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
            astore 22 /* deoptDupAfter */
        start local 22 // org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter deoptDupAfter
        47: .line 1383
            aload 18 /* stateAfter */
            ifnull 50
        48: .line 1384
            aload 22 /* deoptDupAfter */
            aload 18 /* stateAfter */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        49: .line 1385
            goto 52
        50: .line 1386
      StackMap locals: org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 51
            aload 22 /* deoptDupAfter */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter.hasSideEffect:()Z
            ifeq 51
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "can't use stateBefore as stateAfter for state split "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 22 /* deoptDupAfter */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        51: .line 1387
      StackMap locals:
      StackMap stack:
            aload 22 /* deoptDupAfter */
            aload 16 /* stateBefore */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        end local 22 // org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter deoptDupAfter
        end local 21 // org.graalvm.compiler.nodes.DeoptimizingNode deoptDup
        end local 19 // org.graalvm.compiler.nodes.DeoptimizingNode deoptNode
        52: .line 1364
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StructuredGraph java.util.Map java.util.Map org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.DeoptimizingNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState top java.util.Iterator
      StackMap stack:
            aload 20
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        end local 18 // org.graalvm.compiler.nodes.FrameState stateAfter
        end local 17 // org.graalvm.compiler.nodes.FrameState stateDuring
        end local 16 // org.graalvm.compiler.nodes.FrameState stateBefore
        end local 15 // org.graalvm.compiler.nodes.DeoptimizingNode replaceeDeopt
        53: .line 1395
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StructuredGraph java.util.Map java.util.Map org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            aload 0 /* this */
            aload 2 /* replacee */
            aload 13 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.updateStamps:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
        54: .line 1397
            getstatic org.graalvm.compiler.core.common.GraalOptions.UseGraalInstrumentation:Lorg/graalvm/compiler/options/OptionValue;
            invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 60
        55: .line 1398
            aload 11 /* replaceeGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/debug/instrumentation/InstrumentationNode;
            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 16
            goto 59
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StructuredGraph java.util.Map java.util.Map org.graalvm.compiler.nodes.FixedNode top java.util.Iterator
      StackMap stack:
        56: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.debug.instrumentation.InstrumentationNode
            astore 15 /* instrumentation */
        start local 15 // org.graalvm.compiler.nodes.debug.instrumentation.InstrumentationNode instrumentation
        57: .line 1399
            aload 15 /* instrumentation */
            invokevirtual org.graalvm.compiler.nodes.debug.instrumentation.InstrumentationNode.getTarget:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* replacee */
            if_acmpne 59
        58: .line 1400
            aload 15 /* instrumentation */
            aload 2 /* replacee */
            aload 14 /* firstCFGNodeDuplicate */
            invokevirtual org.graalvm.compiler.nodes.debug.instrumentation.InstrumentationNode.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
        end local 15 // org.graalvm.compiler.nodes.debug.instrumentation.InstrumentationNode instrumentation
        59: .line 1398
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 56
        60: .line 1405
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StructuredGraph java.util.Map java.util.Map org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            aload 0 /* this */
            aload 2 /* replacee */
            aload 13 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireMemoryGraph:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
        61: .line 1408
            aconst_null
            astore 15 /* returnValue */
        start local 15 // org.graalvm.compiler.nodes.ValueNode returnValue
        62: .line 1409
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            ifnull 77
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.ControlSinkNode
            ifne 77
        63: .line 1410
            aload 13 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            astore 16 /* returnDuplicate */
        start local 16 // org.graalvm.compiler.nodes.ReturnNode returnDuplicate
        64: .line 1411
            aload 16 /* returnDuplicate */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 15 /* returnValue */
        65: .line 1412
            aload 15 /* returnValue */
            ifnonnull 68
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isNotEmpty:()Z
            ifeq 68
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.memory.MemoryCheckpoint
            ifeq 68
        66: .line 1413
            aload 3 /* replacer */
            aload 2 /* replacee */
            aconst_null
            invokeinterface org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer.replace:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        67: .line 1414
            goto 70
        68: .line 1415
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ReturnNode
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 69
            aload 15 /* returnValue */
            ifnonnull 69
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.hasNoUsages:()Z
            ifne 69
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        69: .line 1416
      StackMap locals:
      StackMap stack:
            aload 3 /* replacer */
            aload 2 /* replacee */
            aload 15 /* returnValue */
            invokeinterface org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer.replace:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        70: .line 1418
      StackMap locals:
      StackMap stack:
            aload 16 /* returnDuplicate */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.isAlive:()Z
            ifeq 77
        71: .line 1419
            aconst_null
            astore 17 /* next */
        start local 17 // org.graalvm.compiler.nodes.FixedNode next
        72: .line 1420
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.FixedWithNextNode
            ifeq 76
        73: .line 1421
            aload 2 /* replacee */
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            astore 18 /* fwn */
        start local 18 // org.graalvm.compiler.nodes.FixedWithNextNode fwn
        74: .line 1422
            aload 18 /* fwn */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 17 /* next */
        75: .line 1423
            aload 18 /* fwn */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        end local 18 // org.graalvm.compiler.nodes.FixedWithNextNode fwn
        76: .line 1425
      StackMap locals: org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            aload 16 /* returnDuplicate */
            aload 17 /* next */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        end local 17 // org.graalvm.compiler.nodes.FixedNode next
        end local 16 // org.graalvm.compiler.nodes.ReturnNode returnDuplicate
        77: .line 1430
      StackMap locals:
      StackMap stack:
            aload 2 /* replacee */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        78: .line 1432
            iconst_2
            aload 11 /* replaceeGraph */
            ldc "After lowering %s with %s"
            aload 2 /* replacee */
            aload 0 /* this */
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        79: .line 1433
            aload 13 /* duplicates */
        80: .line 1434
            aload 8 /* b */
            ifnull 81
            aload 8 /* b */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
      StackMap locals:
      StackMap stack: java.util.Map
        81: aload 7 /* a */
            ifnull 82
            aload 7 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        82: .line 1433
      StackMap locals:
      StackMap stack: java.util.Map
            areturn
        end local 15 // org.graalvm.compiler.nodes.ValueNode returnValue
        end local 14 // org.graalvm.compiler.nodes.FixedNode firstCFGNodeDuplicate
        end local 13 // java.util.Map duplicates
        end local 12 // java.util.Map replacements
        end local 11 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        end local 10 // org.graalvm.compiler.nodes.FixedNode firstCFGNode
        end local 9 // org.graalvm.compiler.nodes.StartNode entryPointNode
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: java.lang.Throwable
        83: astore 5
        84: .line 1434
            aload 8 /* b */
            ifnull 85
            aload 8 /* b */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 8 // org.graalvm.compiler.debug.DebugCloseable b
      StackMap locals:
      StackMap stack:
        85: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        86: astore 6
            aload 5
            ifnonnull 87
            aload 6
            astore 5
            goto 88
      StackMap locals:
      StackMap stack:
        87: aload 5
            aload 6
            if_acmpeq 88
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        88: aload 7 /* a */
            ifnull 89
            aload 7 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 7 // org.graalvm.compiler.debug.DebugCloseable a
      StackMap locals:
      StackMap stack:
        89: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        90: astore 6
            aload 5
            ifnonnull 91
            aload 6
            astore 5
            goto 92
      StackMap locals:
      StackMap stack:
        91: aload 5
            aload 6
            if_acmpeq 92
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        92: aload 5
            athrow
        end local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 3 // org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer replacer
        end local 2 // org.graalvm.compiler.nodes.FixedNode replacee
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   93     0                   this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   93     1             metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   93     2               replacee  Lorg/graalvm/compiler/nodes/FixedNode;
            0   93     3               replacer  Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            0   93     4                   args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            3   89     7                      a  Lorg/graalvm/compiler/debug/DebugCloseable;
            4   85     8                      b  Lorg/graalvm/compiler/debug/DebugCloseable;
            7   83     9         entryPointNode  Lorg/graalvm/compiler/nodes/StartNode;
            8   83    10           firstCFGNode  Lorg/graalvm/compiler/nodes/FixedNode;
            9   83    11          replaceeGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           10   83    12           replacements  Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           12   83    13             duplicates  Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           14   83    14  firstCFGNodeDuplicate  Lorg/graalvm/compiler/nodes/FixedNode;
           18   53    15          replaceeDeopt  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
           19   53    16            stateBefore  Lorg/graalvm/compiler/nodes/FrameState;
           20   53    17            stateDuring  Lorg/graalvm/compiler/nodes/FrameState;
           21   53    18             stateAfter  Lorg/graalvm/compiler/nodes/FrameState;
           30   52    19              deoptNode  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
           31   52    21               deoptDup  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
           36   45    22         deoptDupDuring  Lorg/graalvm/compiler/nodes/DeoptimizingNode$DeoptDuring;
           47   52    22          deoptDupAfter  Lorg/graalvm/compiler/nodes/DeoptimizingNode$DeoptAfter;
           57   59    15        instrumentation  Lorg/graalvm/compiler/nodes/debug/instrumentation/InstrumentationNode;
           62   83    15            returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
           64   77    16        returnDuplicate  Lorg/graalvm/compiler/nodes/ReturnNode;
           72   77    17                   next  Lorg/graalvm/compiler/nodes/FixedNode;
           74   76    18                    fwn  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
      Exception table:
        from    to  target  type
           4    80      83  any
           3    81      86  any
          83    86      86  any
           2    82      90  any
          83    90      90  any
    Signature: (Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
    MethodParameters:
            Name  Flags
      metaAccess  
      replacee    
      replacer    
      args        

  private void propagateStamp(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.graph.Node node
         0: .line 1438
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifeq 7
         1: .line 1439
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 2 /* phi */
        start local 2 // org.graalvm.compiler.nodes.PhiNode phi
         2: .line 1440
            aload 2 /* phi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.inferStamp:()Z
            ifeq 7
         3: .line 1441
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.PhiNode top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 3 /* usage */
        start local 3 // org.graalvm.compiler.graph.Node usage
         5: .line 1442
            aload 0 /* this */
            aload 3 /* usage */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.propagateStamp:(Lorg/graalvm/compiler/graph/Node;)V
        end local 3 // org.graalvm.compiler.graph.Node usage
         6: .line 1441
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 2 // org.graalvm.compiler.nodes.PhiNode phi
         7: .line 1446
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.graph.Node
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.graph.Node node
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0    8     1   node  Lorg/graalvm/compiler/graph/Node;
            2    7     2    phi  Lorg/graalvm/compiler/nodes/PhiNode;
            5    6     3  usage  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      node  

  private void updateStamps(org.graalvm.compiler.nodes.ValueNode, java.util.Map<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.nodes.ValueNode replacee
        start local 2 // java.util.Map duplicates
         0: .line 1449
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.stampNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode java.util.Map top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 3 /* stampNode */
        start local 3 // org.graalvm.compiler.nodes.ValueNode stampNode
         2: .line 1450
            aload 2 /* duplicates */
            aload 3 /* stampNode */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 5 /* stampDup */
        start local 5 // org.graalvm.compiler.graph.Node stampDup
         3: .line 1451
            aload 5 /* stampDup */
            checkcast org.graalvm.compiler.nodes.ValueNode
            aload 1 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.setStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)V
        end local 5 // org.graalvm.compiler.graph.Node stampDup
        end local 3 // org.graalvm.compiler.nodes.ValueNode stampNode
         4: .line 1449
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 1453
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            getstatic org.graalvm.compiler.nodes.ParameterNode.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 4
            goto 12
      StackMap locals:
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ParameterNode
            astore 3 /* paramNode */
        start local 3 // org.graalvm.compiler.nodes.ParameterNode paramNode
         7: .line 1454
            aload 3 /* paramNode */
            invokevirtual org.graalvm.compiler.nodes.ParameterNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 11
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode java.util.Map org.graalvm.compiler.nodes.ParameterNode java.util.Iterator top java.util.Iterator
      StackMap stack:
         8: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 5 /* usage */
        start local 5 // org.graalvm.compiler.graph.Node usage
         9: .line 1455
            aload 2 /* duplicates */
            aload 5 /* usage */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 7 /* usageDup */
        start local 7 // org.graalvm.compiler.graph.Node usageDup
        10: .line 1456
            aload 0 /* this */
            aload 7 /* usageDup */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.propagateStamp:(Lorg/graalvm/compiler/graph/Node;)V
        end local 7 // org.graalvm.compiler.graph.Node usageDup
        end local 5 // org.graalvm.compiler.graph.Node usage
        11: .line 1454
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 3 // org.graalvm.compiler.nodes.ParameterNode paramNode
        12: .line 1453
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        13: .line 1459
            return
        end local 2 // java.util.Map duplicates
        end local 1 // org.graalvm.compiler.nodes.ValueNode replacee
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   14     1    replacee  Lorg/graalvm/compiler/nodes/ValueNode;
            0   14     2  duplicates  Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
            2    4     3   stampNode  Lorg/graalvm/compiler/nodes/ValueNode;
            3    4     5    stampDup  Lorg/graalvm/compiler/graph/Node;
            7   12     3   paramNode  Lorg/graalvm/compiler/nodes/ParameterNode;
            9   11     5       usage  Lorg/graalvm/compiler/graph/Node;
           10   11     7    usageDup  Lorg/graalvm/compiler/graph/Node;
    Signature: (Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;)V
    MethodParameters:
            Name  Flags
      replacee    
      duplicates  

  public org.graalvm.compiler.nodes.StructuredGraph copySpecializedGraph();
    descriptor: ()Lorg/graalvm/compiler/nodes/StructuredGraph;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
         0: .line 1465
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.copy:()Lorg/graalvm/compiler/graph/Graph;
            checkcast org.graalvm.compiler.nodes.StructuredGraph
            areturn
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/SnippetTemplate;

  public void instantiate(jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.nodes.calc.FloatingNode, org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer, org.graalvm.compiler.nodes.spi.LoweringTool, org.graalvm.compiler.replacements.SnippetTemplate$Arguments);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/calc/FloatingNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=19, args_size=6
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 2 // org.graalvm.compiler.nodes.calc.FloatingNode replacee
        start local 3 // org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer replacer
        start local 4 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        start local 5 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         0: .line 1479
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.assertSnippetKills:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1480
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6
            aconst_null
            astore 7
         2: aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.instantiationTimer:Lorg/graalvm/compiler/debug/DebugTimer;
            invokeinterface org.graalvm.compiler.debug.DebugTimer.start:()Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 8 /* a */
        start local 8 // org.graalvm.compiler.debug.DebugCloseable a
         3: .line 1481
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.instantiationCounter:Lorg/graalvm/compiler/debug/DebugCounter;
            invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()V
         4: .line 1482
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.instantiationCounter:Lorg/graalvm/compiler/debug/DebugCounter;
            invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()V
         5: .line 1485
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            astore 9 /* entryPointNode */
        start local 9 // org.graalvm.compiler.nodes.StartNode entryPointNode
         6: .line 1486
            aload 9 /* entryPointNode */
            invokevirtual org.graalvm.compiler.nodes.StartNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 10 /* firstCFGNode */
        start local 10 // org.graalvm.compiler.nodes.FixedNode firstCFGNode
         7: .line 1487
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.calc.FloatingNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 11 /* replaceeGraph */
        start local 11 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
         8: .line 1488
            aload 0 /* this */
            aload 11 /* replaceeGraph */
            aload 1 /* metaAccess */
            aload 5 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.bind:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map;
            astore 12 /* replacements */
        start local 12 // java.util.Map replacements
         9: .line 1489
            aload 12 /* replacements */
            aload 9 /* entryPointNode */
            aload 4 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getCurrentGuardAnchor:()Lorg/graalvm/compiler/nodes/extended/AnchoringNode;
            invokeinterface org.graalvm.compiler.nodes.extended.AnchoringNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1490
            aload 11 /* replaceeGraph */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.nodes:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
            aload 12 /* replacements */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addDuplicates:(Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph;ILjava/util/Map;)Ljava/util/Map;
            astore 13 /* duplicates */
        start local 13 // java.util.Map duplicates
        11: .line 1491
            iconst_2
            aload 11 /* replaceeGraph */
            ldc "After inlining snippet %s"
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        12: .line 1493
            aload 4 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.lastFixedNode:()Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            astore 14 /* lastFixedNode */
        start local 14 // org.graalvm.compiler.nodes.FixedWithNextNode lastFixedNode
        13: .line 1494
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 15
            aload 14 /* lastFixedNode */
            ifnull 14
            aload 14 /* lastFixedNode */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.isAlive:()Z
            ifne 15
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StructuredGraph java.util.Map java.util.Map org.graalvm.compiler.nodes.FixedWithNextNode
      StackMap stack:
        14: new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 11 /* replaceeGraph */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " lastFixed="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 14 /* lastFixedNode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        15: .line 1495
      StackMap locals:
      StackMap stack:
            aload 14 /* lastFixedNode */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 15 /* next */
        start local 15 // org.graalvm.compiler.nodes.FixedNode next
        16: .line 1496
            aload 14 /* lastFixedNode */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        17: .line 1497
            aload 13 /* duplicates */
            aload 10 /* firstCFGNode */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.FixedNode
            astore 16 /* firstCFGNodeDuplicate */
        start local 16 // org.graalvm.compiler.nodes.FixedNode firstCFGNodeDuplicate
        18: .line 1498
            aload 11 /* replaceeGraph */
            aload 14 /* lastFixedNode */
            aload 16 /* firstCFGNodeDuplicate */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        19: .line 1500
            aload 0 /* this */
            aload 2 /* replacee */
            aload 13 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireFrameStates:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
        20: .line 1501
            aload 0 /* this */
            aload 2 /* replacee */
            aload 13 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.updateStamps:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
        21: .line 1503
            aload 0 /* this */
            aload 2 /* replacee */
            aload 13 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireMemoryGraph:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
        22: .line 1506
            aload 13 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            astore 17 /* returnDuplicate */
        start local 17 // org.graalvm.compiler.nodes.ReturnNode returnDuplicate
        23: .line 1507
            aload 17 /* returnDuplicate */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 18 /* returnValue */
        start local 18 // org.graalvm.compiler.nodes.ValueNode returnValue
        24: .line 1508
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 25
            aload 18 /* returnValue */
            ifnonnull 25
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.calc.FloatingNode.hasNoUsages:()Z
            ifne 25
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        25: .line 1509
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StructuredGraph java.util.Map java.util.Map org.graalvm.compiler.nodes.FixedWithNextNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.ReturnNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 3 /* replacer */
            aload 2 /* replacee */
            aload 18 /* returnValue */
            invokeinterface org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer.replace:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        26: .line 1511
            aload 17 /* returnDuplicate */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.isAlive:()Z
            ifeq 28
        27: .line 1512
            aload 17 /* returnDuplicate */
            aload 15 /* next */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        28: .line 1515
      StackMap locals:
      StackMap stack:
            iconst_2
            aload 11 /* replaceeGraph */
            ldc "After lowering %s with %s"
            aload 2 /* replacee */
            aload 0 /* this */
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 18 // org.graalvm.compiler.nodes.ValueNode returnValue
        end local 17 // org.graalvm.compiler.nodes.ReturnNode returnDuplicate
        end local 16 // org.graalvm.compiler.nodes.FixedNode firstCFGNodeDuplicate
        end local 15 // org.graalvm.compiler.nodes.FixedNode next
        end local 14 // org.graalvm.compiler.nodes.FixedWithNextNode lastFixedNode
        end local 13 // java.util.Map duplicates
        end local 12 // java.util.Map replacements
        end local 11 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        end local 10 // org.graalvm.compiler.nodes.FixedNode firstCFGNode
        end local 9 // org.graalvm.compiler.nodes.StartNode entryPointNode
        29: .line 1516
            aload 8 /* a */
            ifnull 35
            aload 8 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
            goto 35
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: java.lang.Throwable
        30: astore 6
            aload 8 /* a */
            ifnull 31
            aload 8 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 8 // org.graalvm.compiler.debug.DebugCloseable a
      StackMap locals:
      StackMap stack:
        31: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 7
            aload 6
            ifnonnull 33
            aload 7
            astore 6
            goto 34
      StackMap locals:
      StackMap stack:
        33: aload 6
            aload 7
            if_acmpeq 34
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        34: aload 6
            athrow
        35: .line 1517
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 4 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 3 // org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer replacer
        end local 2 // org.graalvm.compiler.nodes.calc.FloatingNode replacee
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   36     0                   this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   36     1             metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   36     2               replacee  Lorg/graalvm/compiler/nodes/calc/FloatingNode;
            0   36     3               replacer  Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            0   36     4                   tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            0   36     5                   args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            3   31     8                      a  Lorg/graalvm/compiler/debug/DebugCloseable;
            6   29     9         entryPointNode  Lorg/graalvm/compiler/nodes/StartNode;
            7   29    10           firstCFGNode  Lorg/graalvm/compiler/nodes/FixedNode;
            8   29    11          replaceeGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            9   29    12           replacements  Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           11   29    13             duplicates  Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           13   29    14          lastFixedNode  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
           16   29    15                   next  Lorg/graalvm/compiler/nodes/FixedNode;
           18   29    16  firstCFGNodeDuplicate  Lorg/graalvm/compiler/nodes/FixedNode;
           23   29    17        returnDuplicate  Lorg/graalvm/compiler/nodes/ReturnNode;
           24   29    18            returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
      Exception table:
        from    to  target  type
           3    29      30  any
           2    32      32  any
    MethodParameters:
            Name  Flags
      metaAccess  
      replacee    
      replacer    
      tool        
      args        

  public void instantiate(jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.nodes.calc.FloatingNode, org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer, org.graalvm.compiler.replacements.SnippetTemplate$Arguments);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/calc/FloatingNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=15, args_size=5
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 2 // org.graalvm.compiler.nodes.calc.FloatingNode replacee
        start local 3 // org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer replacer
        start local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         0: .line 1531
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.assertSnippetKills:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1532
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5
            aconst_null
            astore 6
         2: aload 4 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.instantiationTimer:Lorg/graalvm/compiler/debug/DebugTimer;
            invokeinterface org.graalvm.compiler.debug.DebugTimer.start:()Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 7 /* a */
        start local 7 // org.graalvm.compiler.debug.DebugCloseable a
         3: .line 1533
            aload 4 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.instantiationCounter:Lorg/graalvm/compiler/debug/DebugCounter;
            invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()V
         4: .line 1534
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.instantiationCounter:Lorg/graalvm/compiler/debug/DebugCounter;
            invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()V
         5: .line 1537
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            astore 8 /* entryPointNode */
        start local 8 // org.graalvm.compiler.nodes.StartNode entryPointNode
         6: .line 1538
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 9
            aload 8 /* entryPointNode */
            invokevirtual org.graalvm.compiler.nodes.StartNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            ifnonnull 7
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            goto 8
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode
      StackMap stack: org.graalvm.compiler.nodes.FixedNode
         7: aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode
      StackMap stack: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode
         8: if_acmpeq 9
            new java.lang.AssertionError
            dup
            aload 8 /* entryPointNode */
            invokevirtual org.graalvm.compiler.nodes.StartNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         9: .line 1539
      StackMap locals:
      StackMap stack:
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.calc.FloatingNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 9 /* replaceeGraph */
        start local 9 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        10: .line 1540
            aload 0 /* this */
            aload 9 /* replaceeGraph */
            aload 1 /* metaAccess */
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.bind:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map;
            astore 10 /* replacements */
        start local 10 // java.util.Map replacements
        11: .line 1541
            aconst_null
            astore 11 /* anchorDuplicate */
        start local 11 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchorDuplicate
        12: .line 1542
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            ifnull 15
        13: .line 1543
            aload 9 /* replaceeGraph */
            new org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            dup
            invokespecial org.graalvm.compiler.nodes.memory.MemoryAnchorNode.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            astore 11 /* anchorDuplicate */
        14: .line 1544
            aload 10 /* replacements */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            aload 11 /* anchorDuplicate */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 1546
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph java.util.Map org.graalvm.compiler.nodes.memory.MemoryAnchorNode
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.nodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_2
            isub
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 12 /* floatingNodes */
        start local 12 // java.util.List floatingNodes
        16: .line 1547
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.nodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 14
            goto 20
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.StructuredGraph java.util.Map org.graalvm.compiler.nodes.memory.MemoryAnchorNode java.util.List top java.util.Iterator
      StackMap stack:
        17: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 13 /* n */
        start local 13 // org.graalvm.compiler.graph.Node n
        18: .line 1548
            aload 13 /* n */
            aload 8 /* entryPointNode */
            if_acmpeq 20
            aload 13 /* n */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            if_acmpeq 20
        19: .line 1549
            aload 12 /* floatingNodes */
            aload 13 /* n */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // org.graalvm.compiler.graph.Node n
        20: .line 1547
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        21: .line 1552
            aload 9 /* replaceeGraph */
            aload 12 /* floatingNodes */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 12 /* floatingNodes */
            invokeinterface java.util.List.size:()I
            aload 10 /* replacements */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addDuplicates:(Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph;ILjava/util/Map;)Ljava/util/Map;
            astore 13 /* duplicates */
        start local 13 // java.util.Map duplicates
        22: .line 1553
            iconst_2
            aload 9 /* replaceeGraph */
            ldc "After inlining snippet %s"
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        23: .line 1555
            aload 0 /* this */
            aload 2 /* replacee */
            aload 13 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireFrameStates:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
        24: .line 1556
            aload 0 /* this */
            aload 2 /* replacee */
            aload 13 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.updateStamps:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
        25: .line 1558
            aload 0 /* this */
            aload 2 /* replacee */
            aload 13 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireMemoryGraph:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
        26: .line 1559
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 27
            aload 11 /* anchorDuplicate */
            ifnull 27
            aload 11 /* anchorDuplicate */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.isDeleted:()Z
            ifne 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 1562
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.StructuredGraph java.util.Map org.graalvm.compiler.nodes.memory.MemoryAnchorNode java.util.List java.util.Map
      StackMap stack:
            aload 13 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 14 /* returnValue */
        start local 14 // org.graalvm.compiler.nodes.ValueNode returnValue
        28: .line 1563
            aload 3 /* replacer */
            aload 2 /* replacee */
            aload 14 /* returnValue */
            invokeinterface org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer.replace:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        29: .line 1565
            iconst_2
            aload 9 /* replaceeGraph */
            ldc "After lowering %s with %s"
            aload 2 /* replacee */
            aload 0 /* this */
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 14 // org.graalvm.compiler.nodes.ValueNode returnValue
        end local 13 // java.util.Map duplicates
        end local 12 // java.util.List floatingNodes
        end local 11 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchorDuplicate
        end local 10 // java.util.Map replacements
        end local 9 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        end local 8 // org.graalvm.compiler.nodes.StartNode entryPointNode
        30: .line 1566
            aload 7 /* a */
            ifnull 36
            aload 7 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
            goto 36
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: java.lang.Throwable
        31: astore 5
            aload 7 /* a */
            ifnull 32
            aload 7 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 7 // org.graalvm.compiler.debug.DebugCloseable a
      StackMap locals:
      StackMap stack:
        32: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        33: astore 6
            aload 5
            ifnonnull 34
            aload 6
            astore 5
            goto 35
      StackMap locals:
      StackMap stack:
        34: aload 5
            aload 6
            if_acmpeq 35
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        35: aload 5
            athrow
        36: .line 1567
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 3 // org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer replacer
        end local 2 // org.graalvm.compiler.nodes.calc.FloatingNode replacee
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   37     0             this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   37     1       metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   37     2         replacee  Lorg/graalvm/compiler/nodes/calc/FloatingNode;
            0   37     3         replacer  Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            0   37     4             args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            3   32     7                a  Lorg/graalvm/compiler/debug/DebugCloseable;
            6   30     8   entryPointNode  Lorg/graalvm/compiler/nodes/StartNode;
           10   30     9    replaceeGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           11   30    10     replacements  Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           12   30    11  anchorDuplicate  Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
           16   30    12    floatingNodes  Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
           18   20    13                n  Lorg/graalvm/compiler/graph/Node;
           22   30    13       duplicates  Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           28   30    14      returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
      Exception table:
        from    to  target  type
           3    30      31  any
           2    33      33  any
    MethodParameters:
            Name  Flags
      metaAccess  
      replacee    
      replacer    
      args        

  protected void rewireFrameStates(org.graalvm.compiler.nodes.ValueNode, java.util.Map<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.nodes.ValueNode replacee
        start local 2 // java.util.Map duplicates
         0: .line 1570
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 7
         1: .line 1571
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.sideEffectNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.StateSplit
            astore 3 /* sideEffectNode */
        start local 3 // org.graalvm.compiler.nodes.StateSplit sideEffectNode
         3: .line 1572
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 4
            aload 1 /* replacee */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokeinterface org.graalvm.compiler.nodes.StateSplit.hasSideEffect:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 1573
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode java.util.Map org.graalvm.compiler.nodes.StateSplit java.util.Iterator
      StackMap stack:
            aload 2 /* duplicates */
            aload 3 /* sideEffectNode */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 5 /* sideEffectDup */
        start local 5 // org.graalvm.compiler.graph.Node sideEffectDup
         5: .line 1574
            aload 5 /* sideEffectDup */
            checkcast org.graalvm.compiler.nodes.StateSplit
            aload 1 /* replacee */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokeinterface org.graalvm.compiler.nodes.StateSplit.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        end local 5 // org.graalvm.compiler.graph.Node sideEffectDup
        end local 3 // org.graalvm.compiler.nodes.StateSplit sideEffectNode
         6: .line 1571
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 1577
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode java.util.Map
      StackMap stack:
            return
        end local 2 // java.util.Map duplicates
        end local 1 // org.graalvm.compiler.nodes.ValueNode replacee
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0    8     1        replacee  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     2      duplicates  Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
            3    6     3  sideEffectNode  Lorg/graalvm/compiler/nodes/StateSplit;
            5    6     5   sideEffectDup  Lorg/graalvm/compiler/graph/Node;
    Signature: (Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;)V
    MethodParameters:
            Name  Flags
      replacee    
      duplicates  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
         0: .line 1581
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.toString:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            astore 1 /* buf */
        start local 1 // java.lang.StringBuilder buf
         1: .line 1582
            ldc ""
            astore 2 /* sep */
        start local 2 // java.lang.String sep
         2: .line 1583
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 27
         4: .line 1584
      StackMap locals: java.lang.StringBuilder java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         5: .line 1585
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 3 /* i */
            aaload
            astore 5 /* value */
        start local 5 // java.lang.Object value
         6: .line 1586
            aload 1 /* buf */
            aload 2 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 1587
            ldc ", "
            astore 2 /* sep */
         8: .line 1588
            aload 5 /* value */
            ifnonnull 11
         9: .line 1589
            aload 1 /* buf */
            ldc "<null> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 1590
            goto 26
      StackMap locals: java.lang.String java.lang.Object
      StackMap stack:
        11: aload 5 /* value */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.UNUSED_PARAMETER:Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 1591
            aload 1 /* buf */
            ldc "<unused> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 1592
            goto 26
      StackMap locals:
      StackMap stack:
        14: aload 5 /* value */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.CONSTANT_PARAMETER:Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 1593
            aload 1 /* buf */
            ldc "<constant> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 1594
            goto 26
      StackMap locals:
      StackMap stack:
        17: aload 5 /* value */
            instanceof org.graalvm.compiler.nodes.ParameterNode
            ifeq 21
        18: .line 1595
            aload 5 /* value */
            checkcast org.graalvm.compiler.nodes.ParameterNode
            astore 6 /* param */
        start local 6 // org.graalvm.compiler.nodes.ParameterNode param
        19: .line 1596
            aload 1 /* buf */
            aload 6 /* param */
            invokevirtual org.graalvm.compiler.nodes.ParameterNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.getJavaName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // org.graalvm.compiler.nodes.ParameterNode param
        20: .line 1597
            goto 26
        21: .line 1598
      StackMap locals:
      StackMap stack:
            aload 5 /* value */
            checkcast org.graalvm.compiler.nodes.ParameterNode[]
            astore 6 /* params */
        start local 6 // org.graalvm.compiler.nodes.ParameterNode[] params
        22: .line 1599
            aload 6 /* params */
            arraylength
            ifne 23
            ldc "?"
            goto 24
      StackMap locals: org.graalvm.compiler.nodes.ParameterNode[]
      StackMap stack:
        23: aload 6 /* params */
            iconst_0
            aaload
            invokevirtual org.graalvm.compiler.nodes.ParameterNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.getJavaName:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        24: astore 7 /* kind */
        start local 7 // java.lang.String kind
        25: .line 1600
            aload 1 /* buf */
            aload 7 /* kind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 91
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 6 /* params */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 7 // java.lang.String kind
        end local 6 // org.graalvm.compiler.nodes.ParameterNode[] params
        end local 5 // java.lang.Object value
        end local 4 // java.lang.String name
        26: .line 1583
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 3 /* i */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            arraylength
            if_icmplt 4
        end local 3 // int i
        28: .line 1603
            aload 1 /* buf */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String sep
        end local 1 // java.lang.StringBuilder buf
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   29     0    this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            1   29     1     buf  Ljava/lang/StringBuilder;
            2   29     2     sep  Ljava/lang/String;
            3   28     3       i  I
            5   26     4    name  Ljava/lang/String;
            6   26     5   value  Ljava/lang/Object;
           19   20     6   param  Lorg/graalvm/compiler/nodes/ParameterNode;
           22   26     6  params  [Lorg/graalvm/compiler/nodes/ParameterNode;
           25   26     7    kind  Ljava/lang/String;

  private static boolean checkTemplate(jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.replacements.SnippetTemplate$Arguments, jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.Signature);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/Signature;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 1 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 3 // jdk.vm.ci.meta.Signature signature
         0: .line 1607
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         1: goto 10
         2: .line 1608
      StackMap locals: int
      StackMap stack:
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 4 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isConstantParameter:(I)Z
            ifeq 5
         3: .line 1609
            aload 3 /* signature */
            iload 4 /* i */
            invokeinterface jdk.vm.ci.meta.Signature.getParameterKind:(I)Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kind */
        start local 5 // jdk.vm.ci.meta.JavaKind kind
         4: .line 1610
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 9
            aload 0 /* metaAccess */
            aload 2 /* method */
            aload 3 /* signature */
            iload 4 /* i */
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 4 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getParameterName:(I)Ljava/lang/String;
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 4 /* i */
            aaload
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.checkConstantArgument:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/Signature;ILjava/lang/String;Ljava/lang/Object;Ljdk/vm/ci/meta/JavaKind;)Z
            ifne 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 5 // jdk.vm.ci.meta.JavaKind kind
         5: .line 1612
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 4 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isVarargsParameter:(I)Z
            ifeq 9
         6: .line 1613
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 7
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 4 /* i */
            aaload
            instanceof org.graalvm.compiler.replacements.SnippetTemplate$Varargs
            ifne 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 1614
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 4 /* i */
            aaload
            checkcast org.graalvm.compiler.replacements.SnippetTemplate$Varargs
            astore 5 /* varargs */
        start local 5 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
         8: .line 1615
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 9
            aload 0 /* metaAccess */
            aload 2 /* method */
            aload 3 /* signature */
            iload 4 /* i */
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 4 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getParameterName:(I)Ljava/lang/String;
            aload 5 /* varargs */
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.checkVarargs:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/Signature;ILjava/lang/String;Lorg/graalvm/compiler/replacements/SnippetTemplate$Varargs;)Z
            ifne 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 5 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
         9: .line 1607
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getParameterCount:()I
            if_icmplt 2
        end local 4 // int i
        11: .line 1618
            iconst_1
            ireturn
        end local 3 // jdk.vm.ci.meta.Signature signature
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 1 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 0 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   12     1        args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            0   12     2      method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   12     3   signature  Ljdk/vm/ci/meta/Signature;
            1   11     4           i  I
            4    5     5        kind  Ljdk/vm/ci/meta/JavaKind;
            8    9     5     varargs  Lorg/graalvm/compiler/replacements/SnippetTemplate$Varargs;
    MethodParameters:
            Name  Flags
      metaAccess  
      args        
      method      
      signature   

  public void setMayRemoveLocation(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // boolean mayRemoveLocation
         0: .line 1622
            aload 0 /* this */
            iload 1 /* mayRemoveLocation */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.mayRemoveLocation:Z
         1: .line 1623
            return
        end local 1 // boolean mayRemoveLocation
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0    2     1  mayRemoveLocation  Z
    MethodParameters:
                   Name  Flags
      mayRemoveLocation  
}
SourceFile: "SnippetTemplate.java"
NestMembers:
  org.graalvm.compiler.replacements.SnippetTemplate$1  org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates  org.graalvm.compiler.replacements.SnippetTemplate$Arguments  org.graalvm.compiler.replacements.SnippetTemplate$CacheKey  org.graalvm.compiler.replacements.SnippetTemplate$EagerSnippetInfo  org.graalvm.compiler.replacements.SnippetTemplate$LRUCache  org.graalvm.compiler.replacements.SnippetTemplate$LazySnippetInfo  org.graalvm.compiler.replacements.SnippetTemplate$MemoryInputMap  org.graalvm.compiler.replacements.SnippetTemplate$MemoryOutputMap  org.graalvm.compiler.replacements.SnippetTemplate$Options  org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo  org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo$Lazy  org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer  org.graalvm.compiler.replacements.SnippetTemplate$Varargs  org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract ConstantParameter = org.graalvm.compiler.api.replacements.Snippet$ConstantParameter of org.graalvm.compiler.api.replacements.Snippet
  public abstract Scope = org.graalvm.compiler.debug.Debug$Scope of org.graalvm.compiler.debug.Debug
  public Mark = org.graalvm.compiler.graph.Graph$Mark of org.graalvm.compiler.graph.Graph
  public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
  public final NegativeTypePredicate = org.graalvm.compiler.graph.iterators.NodePredicates$NegativeTypePredicate of org.graalvm.compiler.graph.iterators.NodePredicates
  public abstract DeoptAfter = org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter of org.graalvm.compiler.nodes.DeoptimizingNode
  public abstract DeoptBefore = org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore of org.graalvm.compiler.nodes.DeoptimizingNode
  public abstract DeoptDuring = org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring of org.graalvm.compiler.nodes.DeoptimizingNode
  public final AllowAssumptions = org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions of org.graalvm.compiler.nodes.StructuredGraph
  public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
  public abstract Multi = org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi of org.graalvm.compiler.nodes.memory.MemoryCheckpoint
  public abstract Single = org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single of org.graalvm.compiler.nodes.memory.MemoryCheckpoint
  public abstract LoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool
  public final Optionality = org.graalvm.compiler.phases.common.DeadCodeEliminationPhase$Optionality of org.graalvm.compiler.phases.common.DeadCodeEliminationPhase
  public MemoryMapImpl = org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl of org.graalvm.compiler.phases.common.FloatingReadPhase
  org.graalvm.compiler.replacements.SnippetTemplate$1
  public abstract AbstractTemplates = org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates of org.graalvm.compiler.replacements.SnippetTemplate
  public Arguments = org.graalvm.compiler.replacements.SnippetTemplate$Arguments of org.graalvm.compiler.replacements.SnippetTemplate
  CacheKey = org.graalvm.compiler.replacements.SnippetTemplate$CacheKey of org.graalvm.compiler.replacements.SnippetTemplate
  protected EagerSnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$EagerSnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate
  private final LRUCache = org.graalvm.compiler.replacements.SnippetTemplate$LRUCache of org.graalvm.compiler.replacements.SnippetTemplate
  protected LazySnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$LazySnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate
  private MemoryInputMap = org.graalvm.compiler.replacements.SnippetTemplate$MemoryInputMap of org.graalvm.compiler.replacements.SnippetTemplate
  private MemoryOutputMap = org.graalvm.compiler.replacements.SnippetTemplate$MemoryOutputMap of org.graalvm.compiler.replacements.SnippetTemplate
  Options = org.graalvm.compiler.replacements.SnippetTemplate$Options of org.graalvm.compiler.replacements.SnippetTemplate
  public abstract SnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate
  public abstract UsageReplacer = org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer of org.graalvm.compiler.replacements.SnippetTemplate
  Varargs = org.graalvm.compiler.replacements.SnippetTemplate$Varargs of org.graalvm.compiler.replacements.SnippetTemplate
  final VarargsPlaceholderNode = org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode of org.graalvm.compiler.replacements.SnippetTemplate