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.TimerKey SnippetTemplateCreationTime;
    descriptor: Lorg/graalvm/compiler/debug/TimerKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.graalvm.compiler.debug.CounterKey SnippetTemplates;
    descriptor: Lorg/graalvm/compiler/debug/CounterKey;
    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> placeholderStampedNodes;
    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;>;

  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 153
            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 563
            ldc "SnippetTemplateCreationTime"
            invokestatic org.graalvm.compiler.debug.DebugContext.timer:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/TimerKey;
            putstatic org.graalvm.compiler.replacements.SnippetTemplate.SnippetTemplateCreationTime:Lorg/graalvm/compiler/debug/TimerKey;
         4: .line 564
            ldc "SnippetTemplateCount"
            invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/CounterKey;
            putstatic org.graalvm.compiler.replacements.SnippetTemplate.SnippetTemplates:Lorg/graalvm/compiler/debug/CounterKey;
         5: .line 679
            ldc "UNUSED_PARAMETER"
            putstatic org.graalvm.compiler.replacements.SnippetTemplate.UNUSED_PARAMETER:Ljava/lang/Object;
         6: .line 680
            ldc "CONSTANT_PARAMETER"
            putstatic org.graalvm.compiler.replacements.SnippetTemplate.CONSTANT_PARAMETER:Ljava/lang/Object;
         7: .line 1164
            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 1174
            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 686
            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 687
            aload 1 /* p */
            ifnull 4
         3: .line 688
            iconst_1
            ireturn
        end local 1 // org.graalvm.compiler.api.replacements.Snippet$ConstantParameter p
         4: .line 686
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 691
            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.options.OptionValues, org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, org.graalvm.compiler.replacements.SnippetTemplate$Arguments);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;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=7, locals=33, args_size=6
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.options.OptionValues options
        start local 2 // org.graalvm.compiler.debug.DebugContext debug
        start local 3 // org.graalvm.compiler.phases.util.Providers providers
        start local 4 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        start local 5 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         0: .line 700
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 155
            aload 0 /* this */
            iconst_0
            putfield org.graalvm.compiler.replacements.SnippetTemplate.mayRemoveLocation:Z
         2: .line 701
            aload 0 /* this */
            aload 4 /* snippetReflection */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
         3: .line 702
            aload 0 /* this */
            aload 5 /* 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 704
            aload 0 /* this */
            aload 5 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.getConstantArgs:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)[Ljava/lang/Object;
            astore 6 /* constantArgs */
        start local 6 // java.lang.Object[] constantArgs
         5: .line 705
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getReplacements:()Lorg/graalvm/compiler/nodes/spi/Replacements;
            aload 5 /* 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 5 /* 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 6 /* 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 7 /* snippetGraph */
        start local 7 // org.graalvm.compiler.nodes.StructuredGraph snippetGraph
         6: .line 707
            aload 7 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 8 /* method */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaMethod method
         7: .line 708
            aload 8 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
            astore 9 /* signature */
        start local 9 // jdk.vm.ci.meta.Signature signature
         8: .line 710
            new org.graalvm.compiler.phases.tiers.PhaseContext
            dup
            aload 3 /* providers */
            invokespecial org.graalvm.compiler.phases.tiers.PhaseContext.<init>:(Lorg/graalvm/compiler/phases/util/Providers;)V
            astore 10 /* phaseContext */
        start local 10 // org.graalvm.compiler.phases.tiers.PhaseContext phaseContext
         9: .line 713
            new org.graalvm.compiler.nodes.StructuredGraph$Builder
            dup
            aload 1 /* options */
            aload 2 /* debug */
            invokespecial org.graalvm.compiler.nodes.StructuredGraph$Builder.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;)V
            aload 7 /* snippetGraph */
            getfield org.graalvm.compiler.nodes.StructuredGraph.name:Ljava/lang/String;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.name:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
            aload 7 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.method:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.build:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 11 /* snippetCopy */
        start local 11 // org.graalvm.compiler.nodes.StructuredGraph snippetCopy
        10: .line 715
            aconst_null
            astore 12
            aconst_null
            astore 13
        11: aload 2 /* debug */
            ldc "SpecializeSnippet"
            aload 11 /* snippetCopy */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 14 /* scope */
        start local 14 // org.graalvm.compiler.debug.DebugContext$Scope scope
        12: .line 716
            aload 7 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isUnsafeAccessTrackingEnabled:()Z
            ifne 14
        13: .line 717
            aload 11 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.disableUnsafeAccessTracking:()V
        14: .line 720
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope
      StackMap stack:
            getstatic org.graalvm.util.Equivalence.IDENTITY:Lorg/graalvm/util/Equivalence;
            invokestatic org.graalvm.util.EconomicMap.create:(Lorg/graalvm/util/Equivalence;)Lorg/graalvm/util/EconomicMap;
            astore 15 /* nodeReplacements */
        start local 15 // org.graalvm.util.EconomicMap nodeReplacements
        15: .line 721
            aload 15 /* nodeReplacements */
            aload 7 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            aload 11 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            invokeinterface org.graalvm.util.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 723
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            astore 16 /* metaAccess */
        start local 16 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        17: .line 724
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 18
            aload 16 /* metaAccess */
            aload 5 /* args */
            aload 8 /* method */
            aload 9 /* 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 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 726
      StackMap locals: org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider
      StackMap stack:
            aload 5 /* 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 17 /* parameterCount */
        start local 17 // int parameterCount
        19: .line 727
            iload 17 /* parameterCount */
            anewarray org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode
            astore 18 /* placeholders */
        start local 18 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] placeholders
        20: .line 729
            iconst_0
            istore 19 /* i */
        start local 19 // int i
        21: goto 47
        22: .line 730
      StackMap locals: int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int
      StackMap stack:
            aload 7 /* snippetGraph */
            iload 19 /* i */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getParameter:(I)Lorg/graalvm/compiler/nodes/ParameterNode;
            astore 20 /* parameter */
        start local 20 // org.graalvm.compiler.nodes.ParameterNode parameter
        23: .line 731
            aload 20 /* parameter */
            ifnull 46
        24: .line 732
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 19 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isConstantParameter:(I)Z
            ifeq 38
        25: .line 733
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 19 /* i */
            aaload
            astore 21 /* arg */
        start local 21 // java.lang.Object arg
        26: .line 734
            aload 9 /* signature */
            iload 19 /* i */
            invokeinterface jdk.vm.ci.meta.Signature.getParameterKind:(I)Ljdk/vm/ci/meta/JavaKind;
            astore 22 /* kind */
        start local 22 // jdk.vm.ci.meta.JavaKind kind
        27: .line 736
            aload 21 /* arg */
            instanceof jdk.vm.ci.meta.Constant
            ifeq 35
        28: .line 737
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.constStamps:[Lorg/graalvm/compiler/core/common/type/Stamp;
            iload 19 /* i */
            aaload
            astore 24 /* stamp */
        start local 24 // org.graalvm.compiler.core.common.type.Stamp stamp
        29: .line 738
            aload 24 /* stamp */
            ifnonnull 33
        30: .line 739
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 31
            aload 21 /* 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 21 /* 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 740
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.ParameterNode java.lang.Object jdk.vm.ci.meta.JavaKind top org.graalvm.compiler.core.common.type.Stamp
      StackMap stack:
            aload 21 /* arg */
            checkcast jdk.vm.ci.meta.JavaConstant
            aload 16 /* metaAccess */
            aload 11 /* 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 23 /* constantNode */
        start local 23 // org.graalvm.compiler.nodes.ConstantNode constantNode
        32: .line 741
            goto 36
        end local 23 // org.graalvm.compiler.nodes.ConstantNode constantNode
        33: .line 742
      StackMap locals:
      StackMap stack:
            aload 24 /* stamp */
            aload 21 /* arg */
            checkcast jdk.vm.ci.meta.Constant
            aload 16 /* metaAccess */
            aload 11 /* 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 23 /* constantNode */
        end local 24 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 23 // org.graalvm.compiler.nodes.ConstantNode constantNode
        34: .line 744
            goto 36
        end local 23 // org.graalvm.compiler.nodes.ConstantNode constantNode
        35: .line 745
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int org.graalvm.compiler.nodes.ParameterNode java.lang.Object jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aload 4 /* snippetReflection */
            aload 22 /* kind */
            aload 21 /* arg */
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.forBoxed:(Ljdk/vm/ci/meta/JavaKind;Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            aload 16 /* metaAccess */
            aload 11 /* 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 23 /* constantNode */
        start local 23 // org.graalvm.compiler.nodes.ConstantNode constantNode
        36: .line 747
      StackMap locals: org.graalvm.compiler.nodes.ConstantNode
      StackMap stack:
            aload 15 /* nodeReplacements */
            aload 20 /* parameter */
            aload 23 /* constantNode */
            invokeinterface org.graalvm.util.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 23 // org.graalvm.compiler.nodes.ConstantNode constantNode
        end local 22 // jdk.vm.ci.meta.JavaKind kind
        end local 21 // java.lang.Object arg
        37: .line 748
            goto 46
      StackMap locals:
      StackMap stack:
        38: aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 19 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isVarargsParameter:(I)Z
            ifeq 44
        39: .line 749
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 19 /* i */
            aaload
            checkcast org.graalvm.compiler.replacements.SnippetTemplate$Varargs
            astore 21 /* varargs */
        start local 21 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        40: .line 750
            aload 11 /* snippetCopy */
            new org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode
            dup
            aload 21 /* varargs */
            aload 3 /* 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 22 /* placeholder */
        start local 22 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode placeholder
        41: .line 751
            aload 15 /* nodeReplacements */
            aload 20 /* parameter */
            aload 22 /* placeholder */
            invokeinterface org.graalvm.util.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        42: .line 752
            aload 18 /* placeholders */
            iload 19 /* i */
            aload 22 /* placeholder */
            aastore
        end local 22 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode placeholder
        end local 21 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        43: .line 753
            goto 46
      StackMap locals:
      StackMap stack:
        44: aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 19 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isNonNullParameter:(I)Z
            ifeq 46
        45: .line 754
            aload 20 /* parameter */
            aload 20 /* parameter */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ParameterNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.nodes.ParameterNode.setStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)V
        end local 20 // org.graalvm.compiler.nodes.ParameterNode parameter
        46: .line 729
      StackMap locals:
      StackMap stack:
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
        47: iload 19 /* i */
            iload 17 /* parameterCount */
            if_icmplt 22
        end local 19 // int i
        48: .line 758
            aload 11 /* snippetCopy */
            aload 7 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            aload 7 /* snippetGraph */
            aload 7 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
            aload 15 /* nodeReplacements */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addDuplicates:(Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph;ILorg/graalvm/util/EconomicMap;)Lorg/graalvm/util/UnmodifiableEconomicMap;
            pop
        49: .line 760
            aload 2 /* debug */
            iconst_2
            aload 11 /* snippetCopy */
            ldc "Before specialization"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        50: .line 763
            aload 0 /* this */
            iload 17 /* parameterCount */
            anewarray java.lang.Object
            putfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
        51: .line 764
            iconst_0
            istore 19 /* i */
        start local 19 // int i
        52: goto 95
        53: .line 765
      StackMap locals:
      StackMap stack:
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 19 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isConstantParameter:(I)Z
            ifeq 56
        54: .line 766
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 19 /* i */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.CONSTANT_PARAMETER:Ljava/lang/Object;
            aastore
        55: .line 767
            goto 94
      StackMap locals:
      StackMap stack:
        56: aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 19 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isVarargsParameter:(I)Z
            ifeq 89
        57: .line 768
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 58
            aload 11 /* snippetCopy */
            iload 19 /* i */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getParameter:(I)Lorg/graalvm/compiler/nodes/ParameterNode;
            ifnull 58
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        58: .line 769
      StackMap locals:
      StackMap stack:
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 19 /* i */
            aaload
            checkcast org.graalvm.compiler.replacements.SnippetTemplate$Varargs
            astore 20 /* varargs */
        start local 20 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        59: .line 770
            aload 20 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.length:I
            istore 21 /* length */
        start local 21 // int length
        60: .line 771
            iload 21 /* length */
            anewarray org.graalvm.compiler.nodes.ParameterNode
            astore 22 /* params */
        start local 22 // org.graalvm.compiler.nodes.ParameterNode[] params
        61: .line 772
            aload 20 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.stamp:Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 23 /* stamp */
        start local 23 // org.graalvm.compiler.core.common.type.Stamp stamp
        62: .line 773
            iconst_0
            istore 24 /* j */
        start local 24 // int j
        63: goto 70
        64: .line 775
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap 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 65
            iload 17 /* parameterCount */
            sipush 10000
            if_icmplt 65
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        65: .line 776
      StackMap locals:
      StackMap stack:
            iload 19 /* i */
            iconst_1
            iadd
            sipush 10000
            imul
            iload 24 /* j */
            iadd
            istore 25 /* idx */
        start local 25 // int idx
        66: .line 777
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 67
            iload 25 /* idx */
            iload 17 /* parameterCount */
            if_icmpge 67
            new java.lang.AssertionError
            dup
            ldc "collision in parameter numbering"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        67: .line 778
      StackMap locals: int
      StackMap stack:
            aload 11 /* snippetCopy */
            new org.graalvm.compiler.nodes.ParameterNode
            dup
            iload 25 /* idx */
            aload 23 /* 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 26 /* local */
        start local 26 // org.graalvm.compiler.nodes.ParameterNode local
        68: .line 779
            aload 22 /* params */
            iload 24 /* j */
            aload 26 /* local */
            aastore
        end local 26 // org.graalvm.compiler.nodes.ParameterNode local
        end local 25 // int idx
        69: .line 773
            iinc 24 /* j */ 1
      StackMap locals:
      StackMap stack:
        70: iload 24 /* j */
            iload 21 /* length */
            if_icmplt 64
        end local 24 // int j
        71: .line 781
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 19 /* i */
            aload 22 /* params */
            aastore
        72: .line 783
            aload 18 /* placeholders */
            iload 19 /* i */
            aaload
            astore 24 /* placeholder */
        start local 24 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode placeholder
        73: .line 784
            aload 24 /* placeholder */
            ifnull 94
        74: .line 785
            aload 24 /* 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 26
            goto 87
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap 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:
        75: aload 26
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 25 /* usage */
        start local 25 // org.graalvm.compiler.graph.Node usage
        76: .line 786
            aload 25 /* usage */
            instanceof org.graalvm.compiler.nodes.java.LoadIndexedNode
            ifeq 85
        77: .line 787
            aload 25 /* usage */
            checkcast org.graalvm.compiler.nodes.java.LoadIndexedNode
            astore 27 /* loadIndexed */
        start local 27 // org.graalvm.compiler.nodes.java.LoadIndexedNode loadIndexed
        78: .line 788
            aload 2 /* debug */
            iconst_2
            aload 11 /* snippetCopy */
            ldc "Before replacing %s"
            aload 27 /* loadIndexed */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        79: .line 789
            aload 11 /* snippetCopy */
        80: .line 790
            new org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode
            dup
            aload 22 /* params */
            aload 27 /* loadIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.index:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 27 /* loadIndexed */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)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
        81: .line 789
            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 28 /* loadSnippetParameter */
        start local 28 // org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode loadSnippetParameter
        82: .line 791
            aload 11 /* snippetCopy */
            aload 27 /* loadIndexed */
            aload 28 /* loadSnippetParameter */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        83: .line 792
            aload 2 /* debug */
            iconst_2
            aload 11 /* snippetCopy */
            ldc "After replacing %s"
            aload 27 /* loadIndexed */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        end local 28 // org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode loadSnippetParameter
        end local 27 // org.graalvm.compiler.nodes.java.LoadIndexedNode loadIndexed
        84: .line 793
            goto 87
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap 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:
        85: aload 25 /* usage */
            instanceof org.graalvm.compiler.nodes.java.StoreIndexedNode
            ifeq 87
        86: .line 799
            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 25 // org.graalvm.compiler.graph.Node usage
        87: .line 785
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap 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 26
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 75
        end local 24 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode placeholder
        end local 23 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 22 // org.graalvm.compiler.nodes.ParameterNode[] params
        end local 21 // int length
        end local 20 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        88: .line 803
            goto 94
        89: .line 804
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int
      StackMap stack:
            aload 11 /* snippetCopy */
            iload 19 /* i */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getParameter:(I)Lorg/graalvm/compiler/nodes/ParameterNode;
            astore 20 /* local */
        start local 20 // org.graalvm.compiler.nodes.ParameterNode local
        90: .line 805
            aload 20 /* local */
            ifnonnull 93
        91: .line 807
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 19 /* i */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.UNUSED_PARAMETER:Ljava/lang/Object;
            aastore
        92: .line 808
            goto 94
        93: .line 809
      StackMap locals: org.graalvm.compiler.nodes.ParameterNode
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 19 /* i */
            aload 20 /* local */
            aastore
        end local 20 // org.graalvm.compiler.nodes.ParameterNode local
        94: .line 764
      StackMap locals:
      StackMap stack:
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
        95: iload 19 /* i */
            iload 17 /* parameterCount */
            if_icmplt 53
        end local 19 // int i
        96: .line 814
            aload 11 /* snippetCopy */
            aload 10 /* phaseContext */
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.explodeLoops:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)V
        97: .line 816
            aload 5 /* 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 19 /* guardsStage */
        start local 19 // org.graalvm.compiler.nodes.StructuredGraph$GuardsStage guardsStage
        98: .line 818
            aload 19 /* guardsStage */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.allowsFloatingGuards:()Z
            ifne 100
        99: .line 819
            new org.graalvm.compiler.phases.common.GuardLoweringPhase
            dup
            invokespecial org.graalvm.compiler.phases.common.GuardLoweringPhase.<init>:()V
            aload 11 /* snippetCopy */
            aconst_null
            invokevirtual org.graalvm.compiler.phases.common.GuardLoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       100: .line 821
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] org.graalvm.compiler.nodes.StructuredGraph$GuardsStage
      StackMap stack:
            aload 11 /* snippetCopy */
            aload 19 /* guardsStage */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setGuardsStage:(Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;)V
       101: .line 822
            aconst_null
            astore 20
            aconst_null
            astore 21
       102: aload 2 /* debug */
            ldc "LoweringSnippetTemplate"
            aload 11 /* snippetCopy */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 22 /* s */
        start local 22 // org.graalvm.compiler.debug.DebugContext$Scope s
       103: .line 823
            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 5 /* 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 11 /* snippetCopy */
            aload 10 /* phaseContext */
            invokevirtual org.graalvm.compiler.phases.common.LoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       104: .line 824
            aload 22 /* s */
            ifnull 112
            aload 22 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 112
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
       105: astore 20
            aload 22 /* s */
            ifnull 106
            aload 22 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 22 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
       106: aload 20
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       107: astore 21
            aload 20
            ifnonnull 108
            aload 21
            astore 20
            goto 109
      StackMap locals:
      StackMap stack:
       108: aload 20
            aload 21
            if_acmpeq 109
            aload 20
            aload 21
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       109: aload 20
            athrow
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] org.graalvm.compiler.nodes.StructuredGraph$GuardsStage
      StackMap stack: java.lang.Throwable
       110: astore 20 /* e */
        start local 20 // java.lang.Throwable e
       111: .line 825
            aload 2 /* debug */
            aload 20 /* e */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 20 // java.lang.Throwable e
       112: .line 828
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 20 /* curSideEffectNodes */
        start local 20 // java.util.ArrayList curSideEffectNodes
       113: .line 829
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 21 /* curDeoptNodes */
        start local 21 // java.util.ArrayList curDeoptNodes
       114: .line 830
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 22 /* curPlaceholderStampedNodes */
        start local 22 // java.util.ArrayList curPlaceholderStampedNodes
       115: .line 831
            aload 11 /* 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 24
            goto 132
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList top java.util.Iterator
      StackMap stack:
       116: aload 24
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 23 /* node */
        start local 23 // org.graalvm.compiler.graph.Node node
       117: .line 832
            aload 23 /* node */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 121
       118: .line 833
            aload 23 /* node */
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 25 /* valueNode */
        start local 25 // org.graalvm.compiler.nodes.ValueNode valueNode
       119: .line 834
            aload 25 /* valueNode */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.graalvm.compiler.nodes.PiNode$PlaceholderStamp.singleton:()Lorg/graalvm/compiler/nodes/PiNode$PlaceholderStamp;
            if_acmpne 121
       120: .line 835
            aload 22 /* curPlaceholderStampedNodes */
            aload 25 /* valueNode */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 25 // org.graalvm.compiler.nodes.ValueNode valueNode
       121: .line 839
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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 23 /* node */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 128
       122: .line 840
            aload 23 /* node */
            checkcast org.graalvm.compiler.nodes.StateSplit
            astore 25 /* stateSplit */
        start local 25 // org.graalvm.compiler.nodes.StateSplit stateSplit
       123: .line 841
            aload 25 /* stateSplit */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 26 /* frameState */
        start local 26 // org.graalvm.compiler.nodes.FrameState frameState
       124: .line 842
            aload 25 /* stateSplit */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.hasSideEffect:()Z
            ifeq 126
       125: .line 843
            aload 20 /* curSideEffectNodes */
            aload 23 /* node */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       126: .line 845
      StackMap locals: org.graalvm.compiler.nodes.StateSplit org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 26 /* frameState */
            ifnull 128
       127: .line 846
            aload 25 /* stateSplit */
            aconst_null
            invokeinterface org.graalvm.compiler.nodes.StateSplit.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        end local 26 // org.graalvm.compiler.nodes.FrameState frameState
        end local 25 // org.graalvm.compiler.nodes.StateSplit stateSplit
       128: .line 849
      StackMap locals:
      StackMap stack:
            aload 23 /* node */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode
            ifeq 132
       129: .line 850
            aload 23 /* node */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            astore 25 /* deoptNode */
        start local 25 // org.graalvm.compiler.nodes.DeoptimizingNode deoptNode
       130: .line 851
            aload 25 /* deoptNode */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode.canDeoptimize:()Z
            ifeq 132
       131: .line 852
            aload 21 /* curDeoptNodes */
            aload 25 /* deoptNode */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 25 // org.graalvm.compiler.nodes.DeoptimizingNode deoptNode
        end local 23 // org.graalvm.compiler.graph.Node node
       132: .line 831
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] org.graalvm.compiler.nodes.StructuredGraph$GuardsStage java.util.ArrayList java.util.ArrayList java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 24
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 116
       133: .line 857
            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 11 /* snippetCopy */
            invokevirtual org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
       134: .line 859
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 135
            iload 17 /* parameterCount */
            aload 18 /* placeholders */
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.checkAllVarargPlaceholdersAreDeleted:(I[Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;)Z
            ifne 135
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       135: .line 861
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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 11 /* snippetCopy */
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
       136: .line 862
            new org.graalvm.compiler.phases.common.RemoveValueProxyPhase
            dup
            invokespecial org.graalvm.compiler.phases.common.RemoveValueProxyPhase.<init>:()V
            aload 11 /* snippetCopy */
            invokevirtual org.graalvm.compiler.phases.common.RemoveValueProxyPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
       137: .line 864
            aload 11 /* 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 23 /* anchor */
        start local 23 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchor
       138: .line 865
            aload 11 /* 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 23 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.StartNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
       139: .line 867
            aload 0 /* this */
            aload 11 /* snippetCopy */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
       140: .line 869
            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 24 /* entryPointNode */
        start local 24 // org.graalvm.compiler.nodes.StartNode entryPointNode
       141: .line 870
            aload 23 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.hasNoUsages:()Z
            ifeq 145
       142: .line 871
            aload 23 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.safeDelete:()V
       143: .line 872
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
       144: .line 873
            goto 173
       145: .line 876
      StackMap locals: org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.nodes.StartNode
      StackMap stack:
            iconst_0
            istore 25 /* needsMemoryMaps */
        start local 25 // boolean needsMemoryMaps
       146: .line 877
            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 27
            goto 152
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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:
       147: aload 27
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            astore 26 /* retNode */
        start local 26 // org.graalvm.compiler.nodes.ReturnNode retNode
       148: .line 878
            aload 26 /* retNode */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            astore 28 /* memoryMap */
        start local 28 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
       149: .line 879
            aload 28 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLocations:()Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmpgt 150
            aload 28 /* memoryMap */
            invokestatic org.graalvm.word.LocationIdentity.any:()Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLastLocationAccess:(Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            aload 23 /* anchor */
            if_acmpeq 152
       150: .line 880
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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 25 /* needsMemoryMaps */
       151: .line 881
            goto 153
        end local 28 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
        end local 26 // org.graalvm.compiler.nodes.ReturnNode retNode
       152: .line 877
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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 27
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 147
       153: .line 885
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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 25 /* needsMemoryMaps */
            ifeq 156
       154: .line 886
            iconst_1
            istore 26 /* needsAnchor */
        start local 26 // boolean needsAnchor
       155: .line 887
            goto 167
        end local 26 // boolean needsAnchor
       156: .line 889
      StackMap locals:
      StackMap stack:
            aload 23 /* 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 26 /* needsAnchor */
        start local 26 // boolean needsAnchor
       157: .line 891
            aconst_null
            astore 27 /* memoryMap */
        start local 27 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
       158: .line 892
            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 29
            goto 165
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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:
       159: aload 29
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            astore 28 /* retNode */
        start local 28 // org.graalvm.compiler.nodes.ReturnNode retNode
       160: .line 893
            aload 27 /* memoryMap */
            ifnonnull 163
       161: .line 894
            aload 28 /* retNode */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            astore 27 /* memoryMap */
       162: .line 895
            goto 164
       163: .line 896
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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 164
            aload 27 /* memoryMap */
            aload 28 /* retNode */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            if_acmpeq 164
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       164: .line 898
      StackMap locals:
      StackMap stack:
            aload 28 /* retNode */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.setMemoryMap:(Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;)V
        end local 28 // org.graalvm.compiler.nodes.ReturnNode retNode
       165: .line 892
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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 29
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 159
       166: .line 900
            aload 27 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.safeDelete:()V
        end local 27 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
       167: .line 902
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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 26 /* needsAnchor */
            ifeq 171
       168: .line 903
            aload 11 /* snippetCopy */
            aload 11 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            aload 23 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
       169: .line 904
            aload 0 /* this */
            aload 23 /* anchor */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
       170: .line 905
            goto 173
       171: .line 906
      StackMap locals:
      StackMap stack:
            aload 23 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.safeDelete:()V
       172: .line 907
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
        end local 26 // boolean needsAnchor
        end local 25 // boolean needsMemoryMaps
       173: .line 910
      StackMap locals:
      StackMap stack:
            aload 2 /* debug */
            iconst_2
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "SnippetTemplate after fixing memory anchoring"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
       174: .line 912
            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 25 /* returnNodes */
        start local 25 // java.util.List returnNodes
       175: .line 913
            aload 25 /* returnNodes */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 178
       176: .line 914
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
       177: .line 915
            goto 202
      StackMap locals: java.util.List
      StackMap stack:
       178: aload 25 /* returnNodes */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 181
       179: .line 916
            aload 0 /* this */
            aload 25 /* 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;
       180: .line 917
            goto 202
       181: .line 918
      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 26 /* merge */
        start local 26 // org.graalvm.compiler.nodes.AbstractMergeNode merge
       182: .line 919
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 27 /* memMaps */
        start local 27 // java.util.List memMaps
       183: .line 920
            aload 25 /* returnNodes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 29
            goto 188
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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 top java.util.Iterator
      StackMap stack:
       184: aload 29
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            astore 28 /* retNode */
        start local 28 // org.graalvm.compiler.nodes.ReturnNode retNode
       185: .line 921
            aload 28 /* retNode */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            astore 30 /* memoryMapNode */
        start local 30 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMapNode
       186: .line 922
            aload 30 /* memoryMapNode */
            ifnull 188
       187: .line 923
            aload 27 /* memMaps */
            aload 30 /* memoryMapNode */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 30 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMapNode
        end local 28 // org.graalvm.compiler.nodes.ReturnNode retNode
       188: .line 920
      StackMap locals:
      StackMap stack:
            aload 29
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 184
       189: .line 927
            aload 26 /* merge */
            aload 25 /* returnNodes */
            invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.mergeReturns:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 28 /* returnValue */
        start local 28 // org.graalvm.compiler.nodes.ValueNode returnValue
       190: .line 928
            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 28 /* 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;
       191: .line 929
            aload 27 /* memMaps */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 201
       192: .line 930
            aload 26 /* merge */
            aload 27 /* 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 29 /* mmap */
        start local 29 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl mmap
       193: .line 931
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.memory.MemoryMapNode
            dup
            aload 29 /* mmap */
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.getMap:()Lorg/graalvm/util/EconomicMap;
            invokespecial org.graalvm.compiler.nodes.memory.MemoryMapNode.<init>:(Lorg/graalvm/util/EconomicMap;)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 30 /* memoryMap */
        start local 30 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
       194: .line 932
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            aload 30 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.setMemoryMap:(Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;)V
       195: .line 933
            aload 27 /* memMaps */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 32
            goto 200
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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:
       196: aload 32
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.memory.MemoryMapNode
            astore 31 /* mm */
        start local 31 // org.graalvm.compiler.nodes.memory.MemoryMapNode mm
       197: .line 934
            aload 31 /* mm */
            aload 30 /* memoryMap */
            if_acmpeq 200
            aload 31 /* mm */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.isAlive:()Z
            ifeq 200
       198: .line 935
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 199
            aload 31 /* mm */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.hasNoUsages:()Z
            ifne 199
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       199: .line 936
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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 31 /* mm */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
        end local 31 // org.graalvm.compiler.nodes.memory.MemoryMapNode mm
       200: .line 933
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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 32
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 196
        end local 30 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
        end local 29 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl mmap
       201: .line 940
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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 26 /* 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 28 // org.graalvm.compiler.nodes.ValueNode returnValue
        end local 27 // java.util.List memMaps
        end local 26 // org.graalvm.compiler.nodes.AbstractMergeNode merge
       202: .line 943
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 20 /* curSideEffectNodes */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.sideEffectNodes:Ljava/util/ArrayList;
       203: .line 944
            aload 0 /* this */
            aload 21 /* curDeoptNodes */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.deoptNodes:Ljava/util/ArrayList;
       204: .line 945
            aload 0 /* this */
            aload 22 /* curPlaceholderStampedNodes */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.placeholderStampedNodes:Ljava/util/ArrayList;
       205: .line 947
            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;
       206: .line 948
            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 27
            goto 210
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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:
       207: aload 27
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 26 /* node */
        start local 26 // org.graalvm.compiler.graph.Node node
       208: .line 949
            aload 26 /* node */
            aload 24 /* entryPointNode */
            if_acmpeq 210
            aload 26 /* node */
            aload 24 /* entryPointNode */
            invokevirtual org.graalvm.compiler.nodes.StartNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            if_acmpeq 210
       209: .line 950
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.nodes:Ljava/util/ArrayList;
            aload 26 /* node */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 26 // org.graalvm.compiler.graph.Node node
       210: .line 948
      StackMap locals:
      StackMap stack:
            aload 27
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 207
       211: .line 954
            aload 2 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.areMetricsEnabled:()Z
            ifeq 213
       212: .line 955
            ldc "SnippetTemplateNodeCount[%#s]"
            aload 5 /* args */
            invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/CounterKey;
            aload 2 /* debug */
            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.CounterKey.add:(Lorg/graalvm/compiler/debug/DebugContext;J)V
       213: .line 957
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope org.graalvm.util.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] 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
      StackMap stack:
            aload 2 /* debug */
            iconst_2
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "SnippetTemplate final state"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
       214: .line 958
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.freeze:()V
        end local 25 // java.util.List returnNodes
        end local 24 // org.graalvm.compiler.nodes.StartNode entryPointNode
        end local 23 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchor
        end local 22 // java.util.ArrayList curPlaceholderStampedNodes
        end local 21 // java.util.ArrayList curDeoptNodes
        end local 20 // java.util.ArrayList curSideEffectNodes
        end local 19 // org.graalvm.compiler.nodes.StructuredGraph$GuardsStage guardsStage
        end local 18 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] placeholders
        end local 17 // int parameterCount
        end local 16 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 15 // org.graalvm.util.EconomicMap nodeReplacements
       215: .line 960
            aload 14 /* scope */
            ifnull 223
            aload 14 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 223
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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.DebugContext$Scope
      StackMap stack: java.lang.Throwable
       216: astore 12
            aload 14 /* scope */
            ifnull 217
            aload 14 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 14 // org.graalvm.compiler.debug.DebugContext$Scope scope
      StackMap locals:
      StackMap stack:
       217: aload 12
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       218: astore 13
            aload 12
            ifnonnull 219
            aload 13
            astore 12
            goto 220
      StackMap locals:
      StackMap stack:
       219: aload 12
            aload 13
            if_acmpeq 220
            aload 12
            aload 13
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       220: aload 12
            athrow
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext 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
       221: astore 12 /* ex */
        start local 12 // java.lang.Throwable ex
       222: .line 961
            aload 2 /* debug */
            aload 12 /* ex */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 12 // java.lang.Throwable ex
       223: .line 963
      StackMap locals:
      StackMap stack:
            return
        end local 11 // org.graalvm.compiler.nodes.StructuredGraph snippetCopy
        end local 10 // org.graalvm.compiler.phases.tiers.PhaseContext phaseContext
        end local 9 // jdk.vm.ci.meta.Signature signature
        end local 8 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 7 // org.graalvm.compiler.nodes.StructuredGraph snippetGraph
        end local 6 // java.lang.Object[] constantArgs
        end local 5 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 4 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 3 // org.graalvm.compiler.phases.util.Providers providers
        end local 2 // org.graalvm.compiler.debug.DebugContext debug
        end local 1 // org.graalvm.compiler.options.OptionValues options
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0  224     0                        this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0  224     1                     options  Lorg/graalvm/compiler/options/OptionValues;
            0  224     2                       debug  Lorg/graalvm/compiler/debug/DebugContext;
            0  224     3                   providers  Lorg/graalvm/compiler/phases/util/Providers;
            0  224     4           snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0  224     5                        args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            5  224     6                constantArgs  [Ljava/lang/Object;
            6  224     7                snippetGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            7  224     8                      method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            8  224     9                   signature  Ljdk/vm/ci/meta/Signature;
            9  224    10                phaseContext  Lorg/graalvm/compiler/phases/tiers/PhaseContext;
           10  224    11                 snippetCopy  Lorg/graalvm/compiler/nodes/StructuredGraph;
           12  217    14                       scope  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           15  215    15            nodeReplacements  Lorg/graalvm/util/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           17  215    16                  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
           19  215    17              parameterCount  I
           20  215    18                placeholders  [Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;
           21   48    19                           i  I
           23   46    20                   parameter  Lorg/graalvm/compiler/nodes/ParameterNode;
           26   37    21                         arg  Ljava/lang/Object;
           27   37    22                        kind  Ljdk/vm/ci/meta/JavaKind;
           32   33    23                constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
           34   35    23                constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
           36   37    23                constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
           29   34    24                       stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
           40   43    21                     varargs  Lorg/graalvm/compiler/replacements/SnippetTemplate$Varargs;
           41   43    22                 placeholder  Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;
           52   96    19                           i  I
           59   88    20                     varargs  Lorg/graalvm/compiler/replacements/SnippetTemplate$Varargs;
           60   88    21                      length  I
           61   88    22                      params  [Lorg/graalvm/compiler/nodes/ParameterNode;
           62   88    23                       stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
           63   71    24                           j  I
           66   69    25                         idx  I
           68   69    26                       local  Lorg/graalvm/compiler/nodes/ParameterNode;
           73   88    24                 placeholder  Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;
           76   87    25                       usage  Lorg/graalvm/compiler/graph/Node;
           78   84    27                 loadIndexed  Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
           82   84    28        loadSnippetParameter  Lorg/graalvm/compiler/replacements/nodes/LoadSnippetVarargParameterNode;
           90   94    20                       local  Lorg/graalvm/compiler/nodes/ParameterNode;
           98  215    19                 guardsStage  Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
          103  106    22                           s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
          111  112    20                           e  Ljava/lang/Throwable;
          113  215    20          curSideEffectNodes  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/StateSplit;>;
          114  215    21               curDeoptNodes  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/DeoptimizingNode;>;
          115  215    22  curPlaceholderStampedNodes  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/ValueNode;>;
          117  132    23                        node  Lorg/graalvm/compiler/graph/Node;
          119  121    25                   valueNode  Lorg/graalvm/compiler/nodes/ValueNode;
          123  128    25                  stateSplit  Lorg/graalvm/compiler/nodes/StateSplit;
          124  128    26                  frameState  Lorg/graalvm/compiler/nodes/FrameState;
          130  132    25                   deoptNode  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
          138  215    23                      anchor  Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
          141  215    24              entryPointNode  Lorg/graalvm/compiler/nodes/StartNode;
          146  173    25             needsMemoryMaps  Z
          148  152    26                     retNode  Lorg/graalvm/compiler/nodes/ReturnNode;
          149  152    28                   memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          155  156    26                 needsAnchor  Z
          157  173    26                 needsAnchor  Z
          158  167    27                   memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          160  165    28                     retNode  Lorg/graalvm/compiler/nodes/ReturnNode;
          175  215    25                 returnNodes  Ljava/util/List<Lorg/graalvm/compiler/nodes/ReturnNode;>;
          182  202    26                       merge  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
          183  202    27                     memMaps  Ljava/util/List<Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;>;
          185  188    28                     retNode  Lorg/graalvm/compiler/nodes/ReturnNode;
          186  188    30               memoryMapNode  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          190  202    28                 returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
          193  201    29                        mmap  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
          194  201    30                   memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          197  200    31                          mm  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          208  210    26                        node  Lorg/graalvm/compiler/graph/Node;
          222  223    12                          ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
         103   104     105  any
         102   107     107  any
         101   110     110  Class java.lang.Throwable
          12   215     216  any
          11   218     218  any
          10   221     221  Class java.lang.Throwable
    MethodParameters:
                   Name  Flags
      options            
      debug              
      providers          final
      snippetReflection  
      args               

  public static void explodeLoops(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.phases.tiers.PhaseContext);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph snippetCopy
        start local 1 // org.graalvm.compiler.phases.tiers.PhaseContext phaseContext
         0: .line 967
            iconst_0
            istore 2 /* exploded */
        start local 2 // boolean exploded
         1: .line 969
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 2 /* exploded */
         2: .line 970
            aload 0 /* 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 3 /* explodeLoop */
        start local 3 // org.graalvm.compiler.replacements.nodes.ExplodeLoopNode explodeLoop
         3: .line 971
            aload 3 /* explodeLoop */
            ifnull 13
         4: .line 973
            aload 3 /* explodeLoop */
            invokevirtual org.graalvm.compiler.replacements.nodes.ExplodeLoopNode.findLoopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            astore 4 /* loopBegin */
        start local 4 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
         5: .line 974
            aload 4 /* loopBegin */
            ifnull 11
         6: .line 975
            new org.graalvm.compiler.loop.LoopsData
            dup
            aload 0 /* snippetCopy */
            invokespecial org.graalvm.compiler.loop.LoopsData.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
            aload 4 /* loopBegin */
            invokevirtual org.graalvm.compiler.loop.LoopsData.loop:(Lorg/graalvm/compiler/nodes/LoopBeginNode;)Lorg/graalvm/compiler/loop/LoopEx;
            astore 5 /* loop */
        start local 5 // org.graalvm.compiler.loop.LoopEx loop
         7: .line 976
            aload 0 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getMark:()Lorg/graalvm/compiler/graph/Graph$Mark;
            astore 6 /* mark */
        start local 6 // org.graalvm.compiler.graph.Graph$Mark mark
         8: .line 977
            aload 5 /* loop */
            aload 1 /* 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
         9: .line 978
            new org.graalvm.compiler.phases.common.CanonicalizerPhase
            dup
            invokespecial org.graalvm.compiler.phases.common.CanonicalizerPhase.<init>:()V
            aload 0 /* snippetCopy */
            aload 1 /* phaseContext */
            aload 6 /* 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
        10: .line 979
            aload 5 /* loop */
            invokevirtual org.graalvm.compiler.loop.LoopEx.deleteUnusedNodes:()V
        end local 6 // org.graalvm.compiler.graph.Graph$Mark mark
        end local 5 // org.graalvm.compiler.loop.LoopEx loop
        11: .line 981
      StackMap locals: org.graalvm.compiler.replacements.nodes.ExplodeLoopNode org.graalvm.compiler.nodes.LoopBeginNode
      StackMap stack:
            aload 3 /* explodeLoop */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        12: .line 982
            iconst_1
            istore 2 /* exploded */
        end local 4 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
        end local 3 // org.graalvm.compiler.replacements.nodes.ExplodeLoopNode explodeLoop
        13: .line 984
      StackMap locals:
      StackMap stack:
            iload 2 /* exploded */
            ifne 1
        14: .line 985
            return
        end local 2 // boolean exploded
        end local 1 // org.graalvm.compiler.phases.tiers.PhaseContext phaseContext
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph snippetCopy
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0   snippetCopy  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   15     1  phaseContext  Lorg/graalvm/compiler/phases/tiers/PhaseContext;
            1   15     2      exploded  Z
            3   13     3   explodeLoop  Lorg/graalvm/compiler/replacements/nodes/ExplodeLoopNode;
            5   13     4     loopBegin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
            7   11     5          loop  Lorg/graalvm/compiler/loop/LoopEx;
            8   11     6          mark  Lorg/graalvm/compiler/graph/Graph$Mark;
    MethodParameters:
              Name  Flags
      snippetCopy   final
      phaseContext  

  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 988
            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 989
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 8
         3: .line 990
      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 991
            aload 2 /* constantArgs */
            iload 3 /* i */
            aconst_null
            aastore
         5: .line 992
            goto 7
         6: .line 993
      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 989
      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 996
            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 1000
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 1001
      StackMap locals: int
      StackMap stack:
            aload 1 /* placeholders */
            iload 2 /* i */
            aaload
            ifnull 4
         3: .line 1002
            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 1000
      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 1005
            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 1009
            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 1010
            aload 0 /* metaAccess */
            ldc Lorg/graalvm/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 1011
            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 1012
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            iconst_1
            ireturn
         4: .line 1014
      StackMap locals:
      StackMap stack:
            aload 6 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 10
         5: .line 1015
            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 1016
            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 1018
      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 1022
            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 1023
            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 1024
      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 1025
            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 1026
      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 org.graalvm.util.EconomicMap<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;)Lorg/graalvm/util/EconomicMap;
    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 1082
            getstatic org.graalvm.util.Equivalence.IDENTITY:Lorg/graalvm/util/Equivalence;
            invokestatic org.graalvm.util.EconomicMap.create:(Lorg/graalvm/util/Equivalence;)Lorg/graalvm/util/EconomicMap;
            astore 4 /* replacements */
        start local 4 // org.graalvm.util.EconomicMap replacements
         1: .line 1083
            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 1084
      StackMap locals: org.graalvm.util.EconomicMap
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 47
         4: .line 1085
      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 1086
            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 1087
      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 1088
            aload 6 /* parameter */
            instanceof org.graalvm.compiler.nodes.ParameterNode
            ifeq 16
         8: .line 1089
            aload 7 /* argument */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 11
         9: .line 1090
            aload 4 /* replacements */
            aload 6 /* parameter */
            checkcast org.graalvm.compiler.nodes.ParameterNode
            aload 7 /* argument */
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokeinterface org.graalvm.util.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1091
            goto 46
        11: .line 1092
      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 1093
            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 1094
      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 1095
            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 org.graalvm.util.EconomicMap.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 1097
            goto 46
      StackMap locals:
      StackMap stack:
        16: aload 6 /* parameter */
            instanceof org.graalvm.compiler.nodes.ParameterNode[]
            ifeq 45
        17: .line 1098
            aload 6 /* parameter */
            checkcast org.graalvm.compiler.nodes.ParameterNode[]
            astore 8 /* params */
        start local 8 // org.graalvm.compiler.nodes.ParameterNode[] params
        18: .line 1099
            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 1100
            aload 8 /* params */
            arraylength
            istore 10 /* length */
        start local 10 // int length
        20: .line 1101
            aconst_null
            astore 11 /* list */
        start local 11 // java.util.List list
        21: .line 1102
            aconst_null
            astore 12 /* array */
        start local 12 // java.lang.Object array
        22: .line 1103
            aload 9 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.value:Ljava/lang/Object;
            instanceof java.util.List
            ifeq 25
        23: .line 1104
            aload 9 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.value:Ljava/lang/Object;
            checkcast java.util.List
            astore 11 /* list */
        24: .line 1105
            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 1107
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments org.graalvm.util.EconomicMap 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 1108
            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 1109
      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 1112
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* j */
        start local 13 // int j
        30: goto 43
        31: .line 1113
      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 1114
            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 1115
      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 1116
            aload 15 /* value */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 39
        37: .line 1117
            aload 4 /* replacements */
            aload 14 /* param */
            aload 15 /* value */
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokeinterface org.graalvm.util.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        38: .line 1118
            goto 42
        39: .line 1119
      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 1120
            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 1121
            aload 4 /* replacements */
            aload 14 /* param */
            aload 17 /* element */
            invokeinterface org.graalvm.util.EconomicMap.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 1112
      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 1124
            goto 46
        45: .line 1125
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments org.graalvm.util.EconomicMap 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 1084
      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 1128
            aload 4 /* replacements */
            areturn
        end local 4 // org.graalvm.util.EconomicMap 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  Lorg/graalvm/util/EconomicMap<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;)Lorg/graalvm/util/EconomicMap<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 1140
            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 1141
      StackMap locals:
      StackMap stack:
            aload 2 /* localKind */
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 3
         2: .line 1142
            aload 1 /* argument */
            invokestatic jdk.vm.ci.meta.JavaConstant.forBoxedPrimitive:(Ljava/lang/Object;)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
         3: .line 1144
      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 1177
            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 1179
            iconst_1
            ireturn
         2: .line 1181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            ifnonnull 4
         3: .line 1183
            iconst_1
            ireturn
         4: .line 1185
      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 1186
            aload 2 /* memoryMap */
            ifnull 6
            aload 2 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.isEmpty:()Z
            ifeq 7
         6: .line 1188
      StackMap locals: org.graalvm.compiler.nodes.memory.MemoryMapNode
      StackMap stack:
            iconst_1
            ireturn
         7: .line 1191
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.util.Equivalence.DEFAULT:Lorg/graalvm/util/Equivalence;
            invokestatic org.graalvm.util.EconomicSet.create:(Lorg/graalvm/util/Equivalence;)Lorg/graalvm/util/EconomicSet;
            astore 3 /* kills */
        start local 3 // org.graalvm.util.EconomicSet kills
         8: .line 1192
            aload 3 /* kills */
            aload 2 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLocations:()Ljava/util/Collection;
            invokeinterface org.graalvm.util.EconomicSet.addAll:(Ljava/lang/Iterable;)V
         9: .line 1194
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single
            ifeq 16
        10: .line 1196
            aload 1 /* replacee */
            checkcast org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single.getLocationIdentity:()Lorg/graalvm/word/LocationIdentity;
            astore 4 /* locationIdentity */
        start local 4 // org.graalvm.word.LocationIdentity locationIdentity
        11: .line 1197
            aload 4 /* locationIdentity */
            invokevirtual org.graalvm.word.LocationIdentity.isAny:()Z
            ifeq 14
        12: .line 1198
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 13
            aload 2 /* memoryMap */
            invokestatic org.graalvm.word.LocationIdentity.any:()Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLastLocationAccess:(Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            instanceof org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            ifeq 13
            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
        13: .line 1200
      StackMap locals: org.graalvm.util.EconomicSet org.graalvm.word.LocationIdentity
      StackMap stack:
            iconst_1
            ireturn
        14: .line 1202
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 15
            aload 3 /* kills */
            aload 4 /* locationIdentity */
            invokeinterface org.graalvm.util.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifne 15
            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
        15: .line 1203
      StackMap locals:
      StackMap stack:
            aload 3 /* kills */
            aload 4 /* locationIdentity */
            invokeinterface org.graalvm.util.EconomicSet.remove:(Ljava/lang/Object;)V
        end local 4 // org.graalvm.word.LocationIdentity locationIdentity
        16: .line 1205
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 17
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi
            ifeq 17
            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
        17: .line 1208
      StackMap locals:
      StackMap stack:
            aload 2 /* memoryMap */
            invokestatic org.graalvm.word.LocationIdentity.any:()Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLastLocationAccess:(Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            instanceof org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            ifeq 19
        18: .line 1209
            aload 3 /* kills */
            invokestatic org.graalvm.word.LocationIdentity.any:()Lorg/graalvm/word/LocationIdentity;
            invokeinterface org.graalvm.util.EconomicSet.remove:(Ljava/lang/Object;)V
        19: .line 1213
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 20
            aload 3 /* kills */
            invokestatic org.graalvm.word.LocationIdentity.any:()Lorg/graalvm/word/LocationIdentity;
            invokeinterface org.graalvm.util.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 20
            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
        20: .line 1222
      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/word/LocationIdentity;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 24
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.MemoryMapNode org.graalvm.util.EconomicSet top int int org.graalvm.word.LocationIdentity[]
      StackMap stack:
        21: aload 7
            iload 5
            aaload
            astore 4 /* p */
        start local 4 // org.graalvm.word.LocationIdentity p
        22: .line 1223
            aload 3 /* kills */
            aload 4 /* p */
            invokeinterface org.graalvm.util.EconomicSet.remove:(Ljava/lang/Object;)V
        end local 4 // org.graalvm.word.LocationIdentity p
        23: .line 1222
            iinc 5 1
      StackMap locals:
      StackMap stack:
        24: iload 5
            iload 6
            if_icmplt 21
        25: .line 1226
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 26
            aload 3 /* kills */
            invokeinterface org.graalvm.util.EconomicSet.isEmpty:()Z
            ifne 26
            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 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)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
        26: .line 1227
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.MemoryMapNode org.graalvm.util.EconomicSet
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // org.graalvm.util.EconomicSet 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   27     0              this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   27     1          replacee  Lorg/graalvm/compiler/nodes/ValueNode;
            5   27     2         memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            8   27     3             kills  Lorg/graalvm/util/EconomicSet<Lorg/graalvm/word/LocationIdentity;>;
           11   16     4  locationIdentity  Lorg/graalvm/word/LocationIdentity;
           22   23     4                 p  Lorg/graalvm/word/LocationIdentity;
    MethodParameters:
          Name  Flags
      replacee  

  private void rewireMemoryGraph(org.graalvm.compiler.nodes.ValueNode, org.graalvm.util.UnmodifiableEconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap;)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 // org.graalvm.util.UnmodifiableEconomicMap duplicates
         0: .line 1294
            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 1296
            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;Lorg/graalvm/util/UnmodifiableEconomicMap;)V
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.replaceMemoryUsages:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/MemoryMap;)V
         2: .line 1298
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            ifnull 9
         3: .line 1299
            aload 2 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            invokeinterface org.graalvm.util.UnmodifiableEconomicMap.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 1300
            aload 3 /* ret */
            ifnull 9
         5: .line 1301
            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 1302
            aload 4 /* memoryMap */
            ifnull 9
         7: .line 1303
            aload 3 /* ret */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.setMemoryMap:(Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;)V
         8: .line 1304
            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 1308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            ifnull 17
        10: .line 1310
            aload 2 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            invokeinterface org.graalvm.util.UnmodifiableEconomicMap.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 1311
            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 1313
            aload 3 /* memoryDuplicate */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.hasNoUsages:()Z
            ifeq 17
        13: .line 1314
            aload 3 /* memoryDuplicate */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            ifnull 16
        14: .line 1315
            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 1316
            goto 17
        16: .line 1319
      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 1324
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.util.UnmodifiableEconomicMap 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  Lorg/graalvm/util/UnmodifiableEconomicMap<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;Lorg/graalvm/util/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;)V
    MethodParameters:
            Name  Flags
      replacee    
      duplicates  

  private static org.graalvm.word.LocationIdentity getLocationIdentity(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/word/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 1327
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryAccess
            ifeq 2
         1: .line 1328
            aload 0 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryAccess
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryAccess.getLocationIdentity:()Lorg/graalvm/word/LocationIdentity;
            areturn
         2: .line 1329
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.spi.MemoryProxy
            ifeq 4
         3: .line 1330
            aload 0 /* node */
            checkcast org.graalvm.compiler.nodes.spi.MemoryProxy
            invokeinterface org.graalvm.compiler.nodes.spi.MemoryProxy.getLocationIdentity:()Lorg/graalvm/word/LocationIdentity;
            areturn
         4: .line 1331
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryPhiNode
            ifeq 6
         5: .line 1332
            aload 0 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryPhiNode
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryPhiNode.getLocationIdentity:()Lorg/graalvm/word/LocationIdentity;
            areturn
         6: .line 1334
      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 1339
            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 17
      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 1340
            aload 3 /* usage */
            instanceof org.graalvm.compiler.nodes.memory.MemoryMapNode
            ifeq 4
         3: .line 1341
            goto 17
         4: .line 1344
      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/word/LocationIdentity;
            astore 5 /* location */
        start local 5 // org.graalvm.word.LocationIdentity location
         5: .line 1345
            aload 5 /* location */
            ifnull 17
         6: .line 1346
            aload 3 /* usage */
            invokevirtual org.graalvm.compiler.graph.Node.inputPositions:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 16
      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.word.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 1347
            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 16
            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 16
         9: .line 1348
            aload 2 /* map */
            aload 5 /* location */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryMap.getLastLocationAccess:(Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            astore 8 /* replacement */
        start local 8 // org.graalvm.compiler.nodes.memory.MemoryNode replacement
        10: .line 1349
            aload 8 /* replacement */
            ifnonnull 15
        11: .line 1350
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 16
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.mayRemoveLocation:Z
            ifne 16
            invokestatic org.graalvm.word.LocationIdentity.any:()Lorg/graalvm/word/LocationIdentity;
            aload 5 /* location */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 16
        12: .line 1351
            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/word/LocationIdentity;
            aload 5 /* location */
            invokestatic java.util.function.Predicate.isEqual:(Ljava/lang/Object;)Ljava/util/function/Predicate;
            invokestatic org.graalvm.util.CollectionsUtil.anyMatch:([Ljava/lang/Object;Ljava/util/function/Predicate;)Z
            ifne 16
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Snippet "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 1352
            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;
        14: .line 1353
            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;
            aload 2 /* map */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryMap.getLocations:()Ljava/lang/Iterable;
            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 1355
      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.word.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
        16: .line 1346
      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.word.LocationIdentity top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 5 // org.graalvm.word.LocationIdentity location
        end local 3 // org.graalvm.compiler.graph.Node usage
        17: .line 1339
      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
        18: .line 1361
            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   19     0         this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   19     1         node  Lorg/graalvm/compiler/nodes/ValueNode;
            0   19     2          map  Lorg/graalvm/compiler/nodes/memory/MemoryMap;
            2   17     3        usage  Lorg/graalvm/compiler/graph/Node;
            5   17     5     location  Lorg/graalvm/word/LocationIdentity;
            8   16     6          pos  Lorg/graalvm/compiler/graph/Position;
           10   16     8  replacement  Lorg/graalvm/compiler/nodes/memory/MemoryNode;
    MethodParameters:
      Name  Flags
      node  
      map   

  public org.graalvm.util.UnmodifiableEconomicMap<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;)Lorg/graalvm/util/UnmodifiableEconomicMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, 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 1374
            aload 0 /* this */
            aload 1 /* metaAccess */
            aload 2 /* replacee */
            aload 3 /* replacer */
            aload 4 /* args */
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.instantiate:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;Z)Lorg/graalvm/util/UnmodifiableEconomicMap;
            areturn
        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    1     0        this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0    1     1  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0    1     2    replacee  Lorg/graalvm/compiler/nodes/FixedNode;
            0    1     3    replacer  Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            0    1     4        args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
    Signature: (Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/util/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
    MethodParameters:
            Name  Flags
      metaAccess  
      replacee    
      replacer    
      args        

  public org.graalvm.util.UnmodifiableEconomicMap<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, boolean);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;Z)Lorg/graalvm/util/UnmodifiableEconomicMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=24, 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.FixedNode replacee
        start local 3 // org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer replacer
        start local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        start local 5 // boolean killReplacee
         0: .line 1389
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 6 /* debug */
        start local 6 // org.graalvm.compiler.debug.DebugContext debug
         1: .line 1390
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.assertSnippetKills:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1391
      StackMap locals: org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            aconst_null
            astore 7
            aconst_null
            astore 8
         3: 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/TimerKey;
            aload 6 /* debug */
            invokeinterface org.graalvm.compiler.debug.TimerKey.start:(Lorg/graalvm/compiler/debug/DebugContext;)Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 9 /* a */
        start local 9 // org.graalvm.compiler.debug.DebugCloseable a
         4: .line 1392
            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/CounterKey;
            aload 6 /* debug */
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         5: .line 1394
            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 10 /* entryPointNode */
        start local 10 // org.graalvm.compiler.nodes.StartNode entryPointNode
         6: .line 1395
            aload 10 /* entryPointNode */
            invokevirtual org.graalvm.compiler.nodes.StartNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 11 /* firstCFGNode */
        start local 11 // org.graalvm.compiler.nodes.FixedNode firstCFGNode
         7: .line 1396
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 12 /* replaceeGraph */
        start local 12 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
         8: .line 1397
            aload 0 /* this */
            aload 12 /* 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;)Lorg/graalvm/util/EconomicMap;
            astore 13 /* replacements */
        start local 13 // org.graalvm.util.EconomicMap replacements
         9: .line 1398
            aload 13 /* replacements */
            aload 10 /* entryPointNode */
            aload 2 /* replacee */
            invokestatic org.graalvm.compiler.nodes.AbstractBeginNode.prevBegin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokeinterface org.graalvm.util.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1399
            aload 12 /* 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 13 /* replacements */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addDuplicates:(Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph;ILorg/graalvm/util/EconomicMap;)Lorg/graalvm/util/UnmodifiableEconomicMap;
            astore 14 /* duplicates */
        start local 14 // org.graalvm.util.UnmodifiableEconomicMap duplicates
        11: .line 1400
            aload 6 /* debug */
            iconst_4
            aload 12 /* 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;
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        12: .line 1403
            aload 14 /* duplicates */
            aload 11 /* firstCFGNode */
            invokeinterface org.graalvm.util.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.FixedNode
            astore 15 /* firstCFGNodeDuplicate */
        start local 15 // org.graalvm.compiler.nodes.FixedNode firstCFGNodeDuplicate
        13: .line 1404
            aload 2 /* replacee */
            aload 15 /* firstCFGNodeDuplicate */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
        14: .line 1406
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireFrameStates:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap;)V
        15: .line 1408
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode
            ifeq 52
        16: .line 1409
            aload 2 /* replacee */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            astore 16 /* replaceeDeopt */
        start local 16 // org.graalvm.compiler.nodes.DeoptimizingNode replaceeDeopt
        17: .line 1411
            aconst_null
            astore 17 /* stateBefore */
        start local 17 // org.graalvm.compiler.nodes.FrameState stateBefore
        18: .line 1412
            aconst_null
            astore 18 /* stateDuring */
        start local 18 // org.graalvm.compiler.nodes.FrameState stateDuring
        19: .line 1413
            aconst_null
            astore 19 /* stateAfter */
        start local 19 // org.graalvm.compiler.nodes.FrameState stateAfter
        20: .line 1414
            aload 16 /* replaceeDeopt */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode.canDeoptimize:()Z
            ifeq 27
        21: .line 1415
            aload 16 /* replaceeDeopt */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            ifeq 23
        22: .line 1416
            aload 16 /* replaceeDeopt */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore.stateBefore:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 17 /* stateBefore */
        23: .line 1418
      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 int org.graalvm.compiler.debug.DebugContext 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 org.graalvm.util.EconomicMap org.graalvm.util.UnmodifiableEconomicMap 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 16 /* replaceeDeopt */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
            ifeq 25
        24: .line 1419
            aload 16 /* replaceeDeopt */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.stateDuring:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 18 /* stateDuring */
        25: .line 1421
      StackMap locals:
      StackMap stack:
            aload 16 /* replaceeDeopt */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
            ifeq 27
        26: .line 1422
            aload 16 /* replaceeDeopt */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 19 /* stateAfter */
        27: .line 1426
      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 21
            goto 51
      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 int org.graalvm.compiler.debug.DebugContext 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 org.graalvm.util.EconomicMap org.graalvm.util.UnmodifiableEconomicMap 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:
        28: aload 21
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            astore 20 /* deoptNode */
        start local 20 // org.graalvm.compiler.nodes.DeoptimizingNode deoptNode
        29: .line 1427
            aload 14 /* duplicates */
            aload 20 /* deoptNode */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokeinterface org.graalvm.util.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            astore 22 /* deoptDup */
        start local 22 // org.graalvm.compiler.nodes.DeoptimizingNode deoptDup
        30: .line 1428
            aload 22 /* deoptDup */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode.canDeoptimize:()Z
            ifeq 51
        31: .line 1429
            aload 22 /* deoptDup */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            ifeq 33
        32: .line 1430
            aload 22 /* deoptDup */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            aload 17 /* stateBefore */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore.setStateBefore:(Lorg/graalvm/compiler/nodes/FrameState;)V
        33: .line 1432
      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 int org.graalvm.compiler.debug.DebugContext 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 org.graalvm.util.EconomicMap org.graalvm.util.UnmodifiableEconomicMap 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 22 /* deoptDup */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
            ifeq 44
        34: .line 1433
            aload 22 /* deoptDup */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
            astore 23 /* deoptDupDuring */
        start local 23 // org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring deoptDupDuring
        35: .line 1434
            aload 18 /* stateDuring */
            ifnull 38
        36: .line 1435
            aload 23 /* deoptDupDuring */
            aload 18 /* stateDuring */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.setStateDuring:(Lorg/graalvm/compiler/nodes/FrameState;)V
        37: .line 1436
            goto 44
      StackMap locals: org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
      StackMap stack:
        38: aload 19 /* stateAfter */
            ifnull 41
        39: .line 1437
            aload 23 /* deoptDupDuring */
            aload 19 /* stateAfter */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.computeStateDuring:(Lorg/graalvm/compiler/nodes/FrameState;)V
        40: .line 1438
            goto 44
      StackMap locals:
      StackMap stack:
        41: aload 17 /* stateBefore */
            ifnull 44
        42: .line 1439
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 43
            aload 23 /* deoptDupDuring */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.hasSideEffect:()Z
            ifeq 43
            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 23 /* 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
        43: .line 1440
      StackMap locals:
      StackMap stack:
            aload 23 /* deoptDupDuring */
            aload 17 /* stateBefore */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.setStateDuring:(Lorg/graalvm/compiler/nodes/FrameState;)V
        end local 23 // org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring deoptDupDuring
        44: .line 1443
      StackMap locals:
      StackMap stack:
            aload 22 /* deoptDup */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
            ifeq 51
        45: .line 1444
            aload 22 /* deoptDup */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
            astore 23 /* deoptDupAfter */
        start local 23 // org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter deoptDupAfter
        46: .line 1445
            aload 19 /* stateAfter */
            ifnull 49
        47: .line 1446
            aload 23 /* deoptDupAfter */
            aload 19 /* stateAfter */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        48: .line 1447
            goto 51
        49: .line 1448
      StackMap locals: org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 50
            aload 23 /* deoptDupAfter */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter.hasSideEffect:()Z
            ifeq 50
            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 23 /* 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
        50: .line 1449
      StackMap locals:
      StackMap stack:
            aload 23 /* deoptDupAfter */
            aload 17 /* stateBefore */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        end local 23 // org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter deoptDupAfter
        end local 22 // org.graalvm.compiler.nodes.DeoptimizingNode deoptDup
        end local 20 // org.graalvm.compiler.nodes.DeoptimizingNode deoptNode
        51: .line 1426
      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 int org.graalvm.compiler.debug.DebugContext 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 org.graalvm.util.EconomicMap org.graalvm.util.UnmodifiableEconomicMap 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 21
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        end local 19 // org.graalvm.compiler.nodes.FrameState stateAfter
        end local 18 // org.graalvm.compiler.nodes.FrameState stateDuring
        end local 17 // org.graalvm.compiler.nodes.FrameState stateBefore
        end local 16 // org.graalvm.compiler.nodes.DeoptimizingNode replaceeDeopt
        52: .line 1457
      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 int org.graalvm.compiler.debug.DebugContext 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 org.graalvm.util.EconomicMap org.graalvm.util.UnmodifiableEconomicMap org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.updateStamps:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap;)V
        53: .line 1459
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireMemoryGraph:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap;)V
        54: .line 1462
            aconst_null
            astore 16 /* returnValue */
        start local 16 // org.graalvm.compiler.nodes.ValueNode returnValue
        55: .line 1463
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            ifnull 70
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.ControlSinkNode
            ifne 70
        56: .line 1464
            aload 14 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            invokeinterface org.graalvm.util.UnmodifiableEconomicMap.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
        57: .line 1465
            aload 17 /* returnDuplicate */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 16 /* returnValue */
        58: .line 1466
            aload 16 /* returnValue */
            ifnonnull 61
            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 61
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.memory.MemoryCheckpoint
            ifeq 61
        59: .line 1467
            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
        60: .line 1468
            goto 63
        61: .line 1469
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ReturnNode
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 62
            aload 16 /* returnValue */
            ifnonnull 62
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.hasNoUsages:()Z
            ifne 62
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        62: .line 1470
      StackMap locals:
      StackMap stack:
            aload 3 /* replacer */
            aload 2 /* replacee */
            aload 16 /* returnValue */
            invokeinterface org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer.replace:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        63: .line 1472
      StackMap locals:
      StackMap stack:
            aload 17 /* returnDuplicate */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.isAlive:()Z
            ifeq 70
        64: .line 1473
            aconst_null
            astore 18 /* next */
        start local 18 // org.graalvm.compiler.nodes.FixedNode next
        65: .line 1474
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.FixedWithNextNode
            ifeq 69
        66: .line 1475
            aload 2 /* replacee */
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            astore 19 /* fwn */
        start local 19 // org.graalvm.compiler.nodes.FixedWithNextNode fwn
        67: .line 1476
            aload 19 /* fwn */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 18 /* next */
        68: .line 1477
            aload 19 /* fwn */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        end local 19 // org.graalvm.compiler.nodes.FixedWithNextNode fwn
        69: .line 1479
      StackMap locals: org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            aload 17 /* returnDuplicate */
            aload 18 /* next */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        end local 18 // org.graalvm.compiler.nodes.FixedNode next
        end local 17 // org.graalvm.compiler.nodes.ReturnNode returnDuplicate
        70: .line 1483
      StackMap locals:
      StackMap stack:
            iload 5 /* killReplacee */
            ifeq 72
        71: .line 1485
            aload 2 /* replacee */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        72: .line 1488
      StackMap locals:
      StackMap stack:
            aload 6 /* debug */
            iconst_4
            aload 12 /* replaceeGraph */
            ldc "After lowering %s with %s"
            aload 2 /* replacee */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        73: .line 1489
            aload 14 /* duplicates */
        74: .line 1490
            aload 9 /* a */
            ifnull 75
            aload 9 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        75: .line 1489
      StackMap locals:
      StackMap stack: org.graalvm.util.UnmodifiableEconomicMap
            areturn
        end local 16 // org.graalvm.compiler.nodes.ValueNode returnValue
        end local 15 // org.graalvm.compiler.nodes.FixedNode firstCFGNodeDuplicate
        end local 14 // org.graalvm.util.UnmodifiableEconomicMap duplicates
        end local 13 // org.graalvm.util.EconomicMap replacements
        end local 12 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        end local 11 // org.graalvm.compiler.nodes.FixedNode firstCFGNode
        end local 10 // 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 int org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: java.lang.Throwable
        76: astore 7
        77: .line 1490
            aload 9 /* a */
            ifnull 78
            aload 9 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 9 // org.graalvm.compiler.debug.DebugCloseable a
      StackMap locals:
      StackMap stack:
        78: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        79: astore 8
            aload 7
            ifnonnull 80
            aload 8
            astore 7
            goto 81
      StackMap locals:
      StackMap stack:
        80: aload 7
            aload 8
            if_acmpeq 81
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        81: aload 7
            athrow
        end local 6 // org.graalvm.compiler.debug.DebugContext debug
        end local 5 // boolean killReplacee
        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   82     0                   this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   82     1             metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   82     2               replacee  Lorg/graalvm/compiler/nodes/FixedNode;
            0   82     3               replacer  Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            0   82     4                   args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            0   82     5           killReplacee  Z
            1   82     6                  debug  Lorg/graalvm/compiler/debug/DebugContext;
            4   78     9                      a  Lorg/graalvm/compiler/debug/DebugCloseable;
            6   76    10         entryPointNode  Lorg/graalvm/compiler/nodes/StartNode;
            7   76    11           firstCFGNode  Lorg/graalvm/compiler/nodes/FixedNode;
            8   76    12          replaceeGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            9   76    13           replacements  Lorg/graalvm/util/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           11   76    14             duplicates  Lorg/graalvm/util/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           13   76    15  firstCFGNodeDuplicate  Lorg/graalvm/compiler/nodes/FixedNode;
           17   52    16          replaceeDeopt  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
           18   52    17            stateBefore  Lorg/graalvm/compiler/nodes/FrameState;
           19   52    18            stateDuring  Lorg/graalvm/compiler/nodes/FrameState;
           20   52    19             stateAfter  Lorg/graalvm/compiler/nodes/FrameState;
           29   51    20              deoptNode  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
           30   51    22               deoptDup  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
           35   44    23         deoptDupDuring  Lorg/graalvm/compiler/nodes/DeoptimizingNode$DeoptDuring;
           46   51    23          deoptDupAfter  Lorg/graalvm/compiler/nodes/DeoptimizingNode$DeoptAfter;
           55   76    16            returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
           57   70    17        returnDuplicate  Lorg/graalvm/compiler/nodes/ReturnNode;
           65   70    18                   next  Lorg/graalvm/compiler/nodes/FixedNode;
           67   69    19                    fwn  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
      Exception table:
        from    to  target  type
           4    74      76  any
           3    75      79  any
          76    79      79  any
    Signature: (Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;Z)Lorg/graalvm/util/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
    MethodParameters:
              Name  Flags
      metaAccess    
      replacee      
      replacer      
      args          
      killReplacee  

  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 1494
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifeq 7
         1: .line 1495
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 2 /* phi */
        start local 2 // org.graalvm.compiler.nodes.PhiNode phi
         2: .line 1496
            aload 2 /* phi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.inferStamp:()Z
            ifeq 7
         3: .line 1497
            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 1498
            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 1497
      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 1502
      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, org.graalvm.util.UnmodifiableEconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap;)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 // org.graalvm.util.UnmodifiableEconomicMap duplicates
         0: .line 1505
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.placeholderStampedNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.util.UnmodifiableEconomicMap 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 /* node */
        start local 3 // org.graalvm.compiler.nodes.ValueNode node
         2: .line 1506
            aload 2 /* duplicates */
            aload 3 /* node */
            invokeinterface org.graalvm.util.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 5 /* dup */
        start local 5 // org.graalvm.compiler.nodes.ValueNode dup
         3: .line 1507
            aload 1 /* replacee */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 6 /* replaceeStamp */
        start local 6 // org.graalvm.compiler.core.common.type.Stamp replaceeStamp
         4: .line 1508
            aload 3 /* node */
            instanceof org.graalvm.compiler.nodes.PiNode$Placeholder
            ifeq 8
         5: .line 1509
            aload 5 /* dup */
            checkcast org.graalvm.compiler.nodes.PiNode$Placeholder
            astore 7 /* placeholderDup */
        start local 7 // org.graalvm.compiler.nodes.PiNode$Placeholder placeholderDup
         6: .line 1510
            aload 7 /* placeholderDup */
            aload 6 /* replaceeStamp */
            invokevirtual org.graalvm.compiler.nodes.PiNode$Placeholder.makeReplacement:(Lorg/graalvm/compiler/core/common/type/Stamp;)V
        end local 7 // org.graalvm.compiler.nodes.PiNode$Placeholder placeholderDup
         7: .line 1511
            goto 9
         8: .line 1512
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.util.UnmodifiableEconomicMap org.graalvm.compiler.nodes.ValueNode java.util.Iterator org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.core.common.type.Stamp
      StackMap stack:
            aload 5 /* dup */
            aload 6 /* replaceeStamp */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.setStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)V
        end local 6 // org.graalvm.compiler.core.common.type.Stamp replaceeStamp
        end local 5 // org.graalvm.compiler.nodes.ValueNode dup
        end local 3 // org.graalvm.compiler.nodes.ValueNode node
         9: .line 1505
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.util.UnmodifiableEconomicMap top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        10: .line 1515
            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 17
      StackMap locals:
      StackMap stack:
        11: 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
        12: .line 1516
            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 16
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.util.UnmodifiableEconomicMap org.graalvm.compiler.nodes.ParameterNode java.util.Iterator top java.util.Iterator
      StackMap stack:
        13: 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
        14: .line 1517
            aload 2 /* duplicates */
            aload 5 /* usage */
            invokeinterface org.graalvm.util.UnmodifiableEconomicMap.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
        15: .line 1518
            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
        16: .line 1516
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        end local 3 // org.graalvm.compiler.nodes.ParameterNode paramNode
        17: .line 1515
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.util.UnmodifiableEconomicMap top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        18: .line 1521
            return
        end local 2 // org.graalvm.util.UnmodifiableEconomicMap 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   19     0            this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   19     1        replacee  Lorg/graalvm/compiler/nodes/ValueNode;
            0   19     2      duplicates  Lorg/graalvm/util/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
            2    9     3            node  Lorg/graalvm/compiler/nodes/ValueNode;
            3    9     5             dup  Lorg/graalvm/compiler/nodes/ValueNode;
            4    9     6   replaceeStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            6    7     7  placeholderDup  Lorg/graalvm/compiler/nodes/PiNode$Placeholder;
           12   17     3       paramNode  Lorg/graalvm/compiler/nodes/ParameterNode;
           14   16     5           usage  Lorg/graalvm/compiler/graph/Node;
           15   16     7        usageDup  Lorg/graalvm/compiler/graph/Node;
    Signature: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;)V
    MethodParameters:
            Name  Flags
      replacee    
      duplicates  

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

  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=6, locals=20, 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 1541
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.calc.FloatingNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 6 /* debug */
        start local 6 // org.graalvm.compiler.debug.DebugContext debug
         1: .line 1542
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.assertSnippetKills:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1543
      StackMap locals: org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            aconst_null
            astore 7
            aconst_null
            astore 8
         3: 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/TimerKey;
            aload 6 /* debug */
            invokeinterface org.graalvm.compiler.debug.TimerKey.start:(Lorg/graalvm/compiler/debug/DebugContext;)Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 9 /* a */
        start local 9 // org.graalvm.compiler.debug.DebugCloseable a
         4: .line 1544
            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/CounterKey;
            aload 6 /* debug */
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         5: .line 1547
            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 10 /* entryPointNode */
        start local 10 // org.graalvm.compiler.nodes.StartNode entryPointNode
         6: .line 1548
            aload 10 /* entryPointNode */
            invokevirtual org.graalvm.compiler.nodes.StartNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 11 /* firstCFGNode */
        start local 11 // org.graalvm.compiler.nodes.FixedNode firstCFGNode
         7: .line 1549
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.calc.FloatingNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 12 /* replaceeGraph */
        start local 12 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
         8: .line 1550
            aload 0 /* this */
            aload 12 /* 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;)Lorg/graalvm/util/EconomicMap;
            astore 13 /* replacements */
        start local 13 // org.graalvm.util.EconomicMap replacements
         9: .line 1551
            aload 13 /* replacements */
            aload 10 /* 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 org.graalvm.util.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1552
            aload 12 /* 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 13 /* replacements */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addDuplicates:(Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph;ILorg/graalvm/util/EconomicMap;)Lorg/graalvm/util/UnmodifiableEconomicMap;
            astore 14 /* duplicates */
        start local 14 // org.graalvm.util.UnmodifiableEconomicMap duplicates
        11: .line 1553
            aload 6 /* debug */
            iconst_4
            aload 12 /* 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;
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        12: .line 1555
            aload 4 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.lastFixedNode:()Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            astore 15 /* lastFixedNode */
        start local 15 // org.graalvm.compiler.nodes.FixedWithNextNode lastFixedNode
        13: .line 1556
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 15
            aload 15 /* lastFixedNode */
            ifnull 14
            aload 15 /* 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 org.graalvm.compiler.debug.DebugContext 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 org.graalvm.util.EconomicMap org.graalvm.util.UnmodifiableEconomicMap 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 12 /* 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 15 /* 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 1557
      StackMap locals:
      StackMap stack:
            aload 15 /* lastFixedNode */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 16 /* next */
        start local 16 // org.graalvm.compiler.nodes.FixedNode next
        16: .line 1558
            aload 15 /* lastFixedNode */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        17: .line 1559
            aload 14 /* duplicates */
            aload 11 /* firstCFGNode */
            invokeinterface org.graalvm.util.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.FixedNode
            astore 17 /* firstCFGNodeDuplicate */
        start local 17 // org.graalvm.compiler.nodes.FixedNode firstCFGNodeDuplicate
        18: .line 1560
            aload 12 /* replaceeGraph */
            aload 15 /* lastFixedNode */
            aload 17 /* firstCFGNodeDuplicate */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        19: .line 1562
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireFrameStates:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap;)V
        20: .line 1563
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.updateStamps:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap;)V
        21: .line 1565
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireMemoryGraph:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap;)V
        22: .line 1568
            aload 14 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            invokeinterface org.graalvm.util.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            astore 18 /* returnDuplicate */
        start local 18 // org.graalvm.compiler.nodes.ReturnNode returnDuplicate
        23: .line 1569
            aload 18 /* returnDuplicate */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 19 /* returnValue */
        start local 19 // org.graalvm.compiler.nodes.ValueNode returnValue
        24: .line 1570
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 25
            aload 19 /* 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 1571
      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 org.graalvm.compiler.debug.DebugContext 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 org.graalvm.util.EconomicMap org.graalvm.util.UnmodifiableEconomicMap 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 19 /* returnValue */
            invokeinterface org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer.replace:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        26: .line 1573
            aload 18 /* returnDuplicate */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.isAlive:()Z
            ifeq 28
        27: .line 1574
            aload 18 /* returnDuplicate */
            aload 16 /* next */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        28: .line 1577
      StackMap locals:
      StackMap stack:
            aload 6 /* debug */
            iconst_4
            aload 12 /* replaceeGraph */
            ldc "After lowering %s with %s"
            aload 2 /* replacee */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 19 // org.graalvm.compiler.nodes.ValueNode returnValue
        end local 18 // org.graalvm.compiler.nodes.ReturnNode returnDuplicate
        end local 17 // org.graalvm.compiler.nodes.FixedNode firstCFGNodeDuplicate
        end local 16 // org.graalvm.compiler.nodes.FixedNode next
        end local 15 // org.graalvm.compiler.nodes.FixedWithNextNode lastFixedNode
        end local 14 // org.graalvm.util.UnmodifiableEconomicMap duplicates
        end local 13 // org.graalvm.util.EconomicMap replacements
        end local 12 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        end local 11 // org.graalvm.compiler.nodes.FixedNode firstCFGNode
        end local 10 // org.graalvm.compiler.nodes.StartNode entryPointNode
        29: .line 1578
            aload 9 /* a */
            ifnull 35
            aload 9 /* 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 org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: java.lang.Throwable
        30: astore 7
            aload 9 /* a */
            ifnull 31
            aload 9 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 9 // org.graalvm.compiler.debug.DebugCloseable a
      StackMap locals:
      StackMap stack:
        31: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 8
            aload 7
            ifnonnull 33
            aload 8
            astore 7
            goto 34
      StackMap locals:
      StackMap stack:
        33: aload 7
            aload 8
            if_acmpeq 34
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        34: aload 7
            athrow
        35: .line 1579
      StackMap locals:
      StackMap stack:
            return
        end local 6 // org.graalvm.compiler.debug.DebugContext debug
        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;
            1   36     6                  debug  Lorg/graalvm/compiler/debug/DebugContext;
            4   31     9                      a  Lorg/graalvm/compiler/debug/DebugCloseable;
            6   29    10         entryPointNode  Lorg/graalvm/compiler/nodes/StartNode;
            7   29    11           firstCFGNode  Lorg/graalvm/compiler/nodes/FixedNode;
            8   29    12          replaceeGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            9   29    13           replacements  Lorg/graalvm/util/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           11   29    14             duplicates  Lorg/graalvm/util/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           13   29    15          lastFixedNode  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
           16   29    16                   next  Lorg/graalvm/compiler/nodes/FixedNode;
           18   29    17  firstCFGNodeDuplicate  Lorg/graalvm/compiler/nodes/FixedNode;
           23   29    18        returnDuplicate  Lorg/graalvm/compiler/nodes/ReturnNode;
           24   29    19            returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
      Exception table:
        from    to  target  type
           4    29      30  any
           3    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=6, locals=16, 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 1593
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.calc.FloatingNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 5 /* debug */
        start local 5 // org.graalvm.compiler.debug.DebugContext debug
         1: .line 1594
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.assertSnippetKills:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1595
      StackMap locals: org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            aconst_null
            astore 6
            aconst_null
            astore 7
         3: 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/TimerKey;
            aload 5 /* debug */
            invokeinterface org.graalvm.compiler.debug.TimerKey.start:(Lorg/graalvm/compiler/debug/DebugContext;)Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 8 /* a */
        start local 8 // org.graalvm.compiler.debug.DebugCloseable a
         4: .line 1596
            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/CounterKey;
            aload 5 /* debug */
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         5: .line 1599
            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 1600
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 9
            aload 9 /* 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 org.graalvm.compiler.debug.DebugContext 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 org.graalvm.compiler.debug.DebugContext 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 9 /* 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 1601
      StackMap locals:
      StackMap stack:
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.calc.FloatingNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 10 /* replaceeGraph */
        start local 10 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        10: .line 1602
            aload 0 /* this */
            aload 10 /* 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;)Lorg/graalvm/util/EconomicMap;
            astore 11 /* replacements */
        start local 11 // org.graalvm.util.EconomicMap replacements
        11: .line 1603
            aconst_null
            astore 12 /* anchorDuplicate */
        start local 12 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchorDuplicate
        12: .line 1604
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            ifnull 15
        13: .line 1605
            aload 10 /* 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 12 /* anchorDuplicate */
        14: .line 1606
            aload 11 /* replacements */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            aload 12 /* anchorDuplicate */
            invokeinterface org.graalvm.util.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 1608
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph org.graalvm.util.EconomicMap 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 13 /* floatingNodes */
        start local 13 // java.util.List floatingNodes
        16: .line 1609
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.nodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 15
            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 org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.StructuredGraph org.graalvm.util.EconomicMap org.graalvm.compiler.nodes.memory.MemoryAnchorNode java.util.List top java.util.Iterator
      StackMap stack:
        17: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 14 /* n */
        start local 14 // org.graalvm.compiler.graph.Node n
        18: .line 1610
            aload 14 /* n */
            aload 9 /* entryPointNode */
            if_acmpeq 20
            aload 14 /* n */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            if_acmpeq 20
        19: .line 1611
            aload 13 /* floatingNodes */
            aload 14 /* n */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 14 // org.graalvm.compiler.graph.Node n
        20: .line 1609
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        21: .line 1614
            aload 10 /* replaceeGraph */
            aload 13 /* floatingNodes */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 13 /* floatingNodes */
            invokeinterface java.util.List.size:()I
            aload 11 /* replacements */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addDuplicates:(Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph;ILorg/graalvm/util/EconomicMap;)Lorg/graalvm/util/UnmodifiableEconomicMap;
            astore 14 /* duplicates */
        start local 14 // org.graalvm.util.UnmodifiableEconomicMap duplicates
        22: .line 1615
            aload 5 /* debug */
            iconst_4
            aload 10 /* 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;
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        23: .line 1617
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireFrameStates:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap;)V
        24: .line 1618
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.updateStamps:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap;)V
        25: .line 1620
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireMemoryGraph:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap;)V
        26: .line 1621
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 27
            aload 12 /* anchorDuplicate */
            ifnull 27
            aload 12 /* 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 1624
      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 org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.StructuredGraph org.graalvm.util.EconomicMap org.graalvm.compiler.nodes.memory.MemoryAnchorNode java.util.List org.graalvm.util.UnmodifiableEconomicMap
      StackMap stack:
            aload 14 /* 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 org.graalvm.util.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 15 /* returnValue */
        start local 15 // org.graalvm.compiler.nodes.ValueNode returnValue
        28: .line 1625
            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
        29: .line 1627
            aload 5 /* debug */
            iconst_4
            aload 10 /* replaceeGraph */
            ldc "After lowering %s with %s"
            aload 2 /* replacee */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 15 // org.graalvm.compiler.nodes.ValueNode returnValue
        end local 14 // org.graalvm.util.UnmodifiableEconomicMap duplicates
        end local 13 // java.util.List floatingNodes
        end local 12 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchorDuplicate
        end local 11 // org.graalvm.util.EconomicMap replacements
        end local 10 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        end local 9 // org.graalvm.compiler.nodes.StartNode entryPointNode
        30: .line 1628
            aload 8 /* a */
            ifnull 36
            aload 8 /* 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 org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: java.lang.Throwable
        31: astore 6
            aload 8 /* a */
            ifnull 32
            aload 8 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 8 // org.graalvm.compiler.debug.DebugCloseable a
      StackMap locals:
      StackMap stack:
        32: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        33: astore 7
            aload 6
            ifnonnull 34
            aload 7
            astore 6
            goto 35
      StackMap locals:
      StackMap stack:
        34: aload 6
            aload 7
            if_acmpeq 35
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        35: aload 6
            athrow
        36: .line 1629
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.graalvm.compiler.debug.DebugContext debug
        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;
            1   37     5            debug  Lorg/graalvm/compiler/debug/DebugContext;
            4   32     8                a  Lorg/graalvm/compiler/debug/DebugCloseable;
            6   30     9   entryPointNode  Lorg/graalvm/compiler/nodes/StartNode;
           10   30    10    replaceeGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           11   30    11     replacements  Lorg/graalvm/util/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           12   30    12  anchorDuplicate  Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
           16   30    13    floatingNodes  Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
           18   20    14                n  Lorg/graalvm/compiler/graph/Node;
           22   30    14       duplicates  Lorg/graalvm/util/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           28   30    15      returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
      Exception table:
        from    to  target  type
           4    30      31  any
           3    33      33  any
    MethodParameters:
            Name  Flags
      metaAccess  
      replacee    
      replacer    
      args        

  protected void rewireFrameStates(org.graalvm.compiler.nodes.ValueNode, org.graalvm.util.UnmodifiableEconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/util/UnmodifiableEconomicMap;)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 // org.graalvm.util.UnmodifiableEconomicMap duplicates
         0: .line 1632
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 7
         1: .line 1633
            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 org.graalvm.util.UnmodifiableEconomicMap 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 1634
            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 1635
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.util.UnmodifiableEconomicMap org.graalvm.compiler.nodes.StateSplit java.util.Iterator
      StackMap stack:
            aload 2 /* duplicates */
            aload 3 /* sideEffectNode */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokeinterface org.graalvm.util.UnmodifiableEconomicMap.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 1636
            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 1633
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.util.UnmodifiableEconomicMap top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 1639
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.util.UnmodifiableEconomicMap
      StackMap stack:
            return
        end local 2 // org.graalvm.util.UnmodifiableEconomicMap 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  Lorg/graalvm/util/UnmodifiableEconomicMap<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;Lorg/graalvm/util/UnmodifiableEconomicMap<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 1643
            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 1644
            ldc ""
            astore 2 /* sep */
        start local 2 // java.lang.String sep
         2: .line 1645
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 27
         4: .line 1646
      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 1647
            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 1648
            aload 1 /* buf */
            aload 2 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 1649
            ldc ", "
            astore 2 /* sep */
         8: .line 1650
            aload 5 /* value */
            ifnonnull 11
         9: .line 1651
            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 1652
            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 1653
            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 1654
            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 1655
            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 1656
            goto 26
      StackMap locals:
      StackMap stack:
        17: aload 5 /* value */
            instanceof org.graalvm.compiler.nodes.ParameterNode
            ifeq 21
        18: .line 1657
            aload 5 /* value */
            checkcast org.graalvm.compiler.nodes.ParameterNode
            astore 6 /* param */
        start local 6 // org.graalvm.compiler.nodes.ParameterNode param
        19: .line 1658
            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 1659
            goto 26
        21: .line 1660
      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 1661
            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 1662
            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 1645
      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 1665
            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 1669
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         1: goto 10
         2: .line 1670
      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 1671
            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 1672
            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 1674
      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 1675
            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 1676
      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 1677
            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 1669
      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 1680
            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 1684
            aload 0 /* this */
            iload 1 /* mayRemoveLocation */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.mayRemoveLocation:Z
         1: .line 1685
            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 abstract ConstantParameter = org.graalvm.compiler.api.replacements.Snippet$ConstantParameter of org.graalvm.compiler.api.replacements.Snippet
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  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 Placeholder = org.graalvm.compiler.nodes.PiNode$Placeholder of org.graalvm.compiler.nodes.PiNode
  public final PlaceholderStamp = org.graalvm.compiler.nodes.PiNode$PlaceholderStamp of org.graalvm.compiler.nodes.PiNode
  public Builder = org.graalvm.compiler.nodes.StructuredGraph$Builder 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