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.FixedWithNextNode unwindPath;
    descriptor: Lorg/graalvm/compiler/nodes/FixedWithNextNode;
    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 org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure frameStateAssignment;
    descriptor: Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure;
    flags: (0x0002) ACC_PRIVATE

  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

  private static volatile int[] $SWITCH_TABLE$org$graalvm$compiler$phases$common$SnippetFrameStateAssignment$NodeStateAssignment;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 188
            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 549
            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 550
            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 703
            ldc "UNUSED_PARAMETER"
            putstatic org.graalvm.compiler.replacements.SnippetTemplate.UNUSED_PARAMETER:Ljava/lang/Object;
         6: .line 704
            ldc "CONSTANT_PARAMETER"
            putstatic org.graalvm.compiler.replacements.SnippetTemplate.CONSTANT_PARAMETER:Ljava/lang/Object;
         7: .line 1342
            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 1352
            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 710
            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 711
            aload 1 /* p */
            ifnull 4
         3: .line 712
            iconst_1
            ireturn
        end local 1 // org.graalvm.compiler.api.replacements.Snippet$ConstantParameter p
         4: .line 710
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 715
            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, boolean, org.graalvm.compiler.graph.Node, org.graalvm.compiler.phases.PhaseSuite<org.graalvm.compiler.phases.util.Providers>);
    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;ZLorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/phases/PhaseSuite;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=43, args_size=9
        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
        start local 6 // boolean trackNodeSourcePosition
        start local 7 // org.graalvm.compiler.graph.Node replacee
        start local 8 // org.graalvm.compiler.phases.PhaseSuite midTierPhases
         0: .line 724
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 190
            aload 0 /* this */
            iconst_0
            putfield org.graalvm.compiler.replacements.SnippetTemplate.mayRemoveLocation:Z
         2: .line 726
            aload 0 /* this */
            aload 4 /* snippetReflection */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
         3: .line 727
            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 729
            aload 0 /* this */
            aload 5 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.getConstantArgs:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)[Ljava/lang/Object;
            astore 9 /* constantArgs */
        start local 9 // java.lang.Object[] constantArgs
         5: .line 730
            iload 6 /* trackNodeSourcePosition */
            ifne 7
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getCodeCache:()Ljdk/vm/ci/code/CodeCacheProvider;
            ifnull 6
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getCodeCache:()Ljdk/vm/ci/code/CodeCacheProvider;
            invokeinterface jdk.vm.ci.code.CodeCacheProvider.shouldDebugNonSafepoints:()Z
            ifne 7
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[]
      StackMap stack:
         6: iconst_0
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_1
      StackMap locals:
      StackMap stack: int
         8: istore 10 /* shouldTrackNodeSourcePosition1 */
        start local 10 // boolean shouldTrackNodeSourcePosition1
         9: .line 731
            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 9 /* constantArgs */
            iload 10 /* shouldTrackNodeSourcePosition1 */
            aload 7 /* replacee */
            invokevirtual org.graalvm.compiler.graph.Node.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
        10: .line 732
            aload 1 /* options */
        11: .line 731
            invokeinterface org.graalvm.compiler.nodes.spi.Replacements.getSnippet:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;ZLorg/graalvm/compiler/graph/NodeSourcePosition;Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 11 /* snippetGraph */
        start local 11 // org.graalvm.compiler.nodes.StructuredGraph snippetGraph
        12: .line 734
            aload 11 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 12 /* method */
        start local 12 // jdk.vm.ci.meta.ResolvedJavaMethod method
        13: .line 735
            aload 12 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
            astore 13 /* signature */
        start local 13 // jdk.vm.ci.meta.Signature signature
        14: .line 738
            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 11 /* 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 11 /* 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;
        15: .line 739
            aload 11 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.trackNodeSourcePosition:()Z
        16: .line 738
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.trackNodeSourcePosition:(Z)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
        17: .line 739
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.setIsSubstitution:(Z)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.build:()Lorg/graalvm/compiler/nodes/StructuredGraph;
        18: .line 738
            astore 14 /* snippetCopy */
        start local 14 // org.graalvm.compiler.nodes.StructuredGraph snippetCopy
        19: .line 740
            aload 14 /* snippetCopy */
            aload 11 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setGuardsStage:(Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;)V
        20: .line 741
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 21
            getstatic org.graalvm.compiler.core.common.GraalOptions.TrackNodeSourcePosition:Lorg/graalvm/compiler/options/OptionKey;
            aload 1 /* options */
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 21
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.trackNodeSourcePosition:()Z
            ifne 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 742
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack:
            aconst_null
            astore 15
            aconst_null
            astore 16
        22: aload 2 /* debug */
            ldc "SpecializeSnippet"
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 17 /* scope */
        start local 17 // org.graalvm.compiler.debug.DebugContext$Scope scope
        23: .line 743
            aload 11 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isUnsafeAccessTrackingEnabled:()Z
            ifne 25
        24: .line 744
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.disableUnsafeAccessTracking:()V
        25: .line 746
      StackMap locals: java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 26
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isSubstitution:()Z
            ifne 26
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        26: .line 748
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
            astore 18 /* nodeReplacements */
        start local 18 // jdk.internal.vm.compiler.collections.EconomicMap nodeReplacements
        27: .line 749
            aload 18 /* nodeReplacements */
            aload 11 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 751
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            astore 19 /* metaAccess */
        start local 19 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        29: .line 752
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 30
            aload 19 /* metaAccess */
            aload 5 /* args */
            aload 12 /* method */
            aload 13 /* 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 30
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        30: .line 754
      StackMap locals: jdk.internal.vm.compiler.collections.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 20 /* parameterCount */
        start local 20 // int parameterCount
        31: .line 755
            iload 20 /* parameterCount */
            anewarray org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode
            astore 21 /* placeholders */
        start local 21 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] placeholders
        32: .line 757
            iconst_0
            istore 22 /* i */
        start local 22 // int i
        33: goto 59
        34: .line 758
      StackMap locals: int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int
      StackMap stack:
            aload 11 /* snippetGraph */
            iload 22 /* i */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getParameter:(I)Lorg/graalvm/compiler/nodes/ParameterNode;
            astore 23 /* parameter */
        start local 23 // org.graalvm.compiler.nodes.ParameterNode parameter
        35: .line 759
            aload 23 /* parameter */
            ifnull 58
        36: .line 760
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 22 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isConstantParameter:(I)Z
            ifeq 50
        37: .line 761
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 22 /* i */
            aaload
            astore 24 /* arg */
        start local 24 // java.lang.Object arg
        38: .line 762
            aload 13 /* signature */
            iload 22 /* i */
            invokeinterface jdk.vm.ci.meta.Signature.getParameterKind:(I)Ljdk/vm/ci/meta/JavaKind;
            astore 25 /* kind */
        start local 25 // jdk.vm.ci.meta.JavaKind kind
        39: .line 764
            aload 24 /* arg */
            instanceof jdk.vm.ci.meta.Constant
            ifeq 47
        40: .line 765
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.constStamps:[Lorg/graalvm/compiler/core/common/type/Stamp;
            iload 22 /* i */
            aaload
            astore 27 /* stamp */
        start local 27 // org.graalvm.compiler.core.common.type.Stamp stamp
        41: .line 766
            aload 27 /* stamp */
            ifnonnull 45
        42: .line 767
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 43
            aload 24 /* arg */
            instanceof jdk.vm.ci.meta.JavaConstant
            ifne 43
            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 24 /* 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
        43: .line 768
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.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 24 /* arg */
            checkcast jdk.vm.ci.meta.JavaConstant
            aload 19 /* metaAccess */
            aload 14 /* 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 26 /* constantNode */
        start local 26 // org.graalvm.compiler.nodes.ConstantNode constantNode
        44: .line 769
            goto 48
        end local 26 // org.graalvm.compiler.nodes.ConstantNode constantNode
        45: .line 770
      StackMap locals:
      StackMap stack:
            aload 27 /* stamp */
            aload 24 /* arg */
            checkcast jdk.vm.ci.meta.Constant
            aload 19 /* metaAccess */
            aload 14 /* 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 26 /* constantNode */
        end local 27 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 26 // org.graalvm.compiler.nodes.ConstantNode constantNode
        46: .line 772
            goto 48
        end local 26 // org.graalvm.compiler.nodes.ConstantNode constantNode
        47: .line 773
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.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 25 /* kind */
            aload 24 /* arg */
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.forBoxed:(Ljdk/vm/ci/meta/JavaKind;Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            aload 19 /* metaAccess */
            aload 14 /* 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 26 /* constantNode */
        start local 26 // org.graalvm.compiler.nodes.ConstantNode constantNode
        48: .line 775
      StackMap locals: org.graalvm.compiler.nodes.ConstantNode
      StackMap stack:
            aload 18 /* nodeReplacements */
            aload 23 /* parameter */
            aload 26 /* constantNode */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 26 // org.graalvm.compiler.nodes.ConstantNode constantNode
        end local 25 // jdk.vm.ci.meta.JavaKind kind
        end local 24 // java.lang.Object arg
        49: .line 776
            goto 58
      StackMap locals:
      StackMap stack:
        50: aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 22 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isVarargsParameter:(I)Z
            ifeq 56
        51: .line 777
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 22 /* i */
            aaload
            checkcast org.graalvm.compiler.replacements.SnippetTemplate$Varargs
            astore 24 /* varargs */
        start local 24 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        52: .line 778
            aload 14 /* snippetCopy */
            new org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode
            dup
            aload 24 /* 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 25 /* placeholder */
        start local 25 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode placeholder
        53: .line 779
            aload 18 /* nodeReplacements */
            aload 23 /* parameter */
            aload 25 /* placeholder */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        54: .line 780
            aload 21 /* placeholders */
            iload 22 /* i */
            aload 25 /* placeholder */
            aastore
        end local 25 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode placeholder
        end local 24 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        55: .line 781
            goto 58
      StackMap locals:
      StackMap stack:
        56: aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 22 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isNonNullParameter:(I)Z
            ifeq 58
        57: .line 782
            aload 23 /* parameter */
            aload 23 /* 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 23 // org.graalvm.compiler.nodes.ParameterNode parameter
        58: .line 757
      StackMap locals:
      StackMap stack:
            iinc 22 /* i */ 1
      StackMap locals:
      StackMap stack:
        59: iload 22 /* i */
            iload 20 /* parameterCount */
            if_icmplt 34
        end local 22 // int i
        60: .line 786
            aconst_null
            astore 22
            aconst_null
            astore 23
        61: aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getInliningLog:()Lorg/graalvm/compiler/nodes/InliningLog;
            invokevirtual org.graalvm.compiler.nodes.InliningLog.openDefaultUpdateScope:()Lorg/graalvm/compiler/nodes/InliningLog$UpdateScope;
            astore 24 /* updateScope */
        start local 24 // org.graalvm.compiler.nodes.InliningLog$UpdateScope updateScope
        62: .line 787
            aload 14 /* snippetCopy */
            aload 11 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            aload 11 /* snippetGraph */
            aload 11 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
            aload 18 /* nodeReplacements */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addDuplicates:(Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph;ILjdk/internal/vm/compiler/collections/EconomicMap;)Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;
            astore 25 /* duplicates */
        start local 25 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
        63: .line 788
            aload 24 /* updateScope */
            ifnull 65
        64: .line 789
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getInliningLog:()Lorg/graalvm/compiler/nodes/InliningLog;
            aload 25 /* duplicates */
            aload 11 /* snippetGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getInliningLog:()Lorg/graalvm/compiler/nodes/InliningLog;
            invokevirtual org.graalvm.compiler.nodes.InliningLog.replaceLog:(Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;Lorg/graalvm/compiler/nodes/InliningLog;)V
        end local 25 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
        65: .line 791
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.lang.Throwable java.lang.Throwable org.graalvm.compiler.nodes.InliningLog$UpdateScope
      StackMap stack:
            aload 24 /* updateScope */
            ifnull 71
            aload 24 /* updateScope */
            invokevirtual org.graalvm.compiler.nodes.InliningLog$UpdateScope.close:()V
            goto 71
      StackMap locals:
      StackMap stack: java.lang.Throwable
        66: astore 22
            aload 24 /* updateScope */
            ifnull 67
            aload 24 /* updateScope */
            invokevirtual org.graalvm.compiler.nodes.InliningLog$UpdateScope.close:()V
        end local 24 // org.graalvm.compiler.nodes.InliningLog$UpdateScope updateScope
      StackMap locals:
      StackMap stack:
        67: aload 22
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        68: astore 23
            aload 22
            ifnonnull 69
            aload 23
            astore 22
            goto 70
      StackMap locals:
      StackMap stack:
        69: aload 22
            aload 23
            if_acmpeq 70
            aload 22
            aload 23
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        70: aload 22
            athrow
        71: .line 793
      StackMap locals:
      StackMap stack:
            aload 2 /* debug */
            iconst_2
            aload 14 /* snippetCopy */
            ldc "Before specialization"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        72: .line 796
            aload 0 /* this */
            iload 20 /* parameterCount */
            anewarray java.lang.Object
            putfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
        73: .line 797
            iconst_0
            istore 22 /* i */
        start local 22 // int i
        74: goto 117
        75: .line 798
      StackMap locals: int
      StackMap stack:
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 22 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isConstantParameter:(I)Z
            ifeq 78
        76: .line 799
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 22 /* i */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.CONSTANT_PARAMETER:Ljava/lang/Object;
            aastore
        77: .line 800
            goto 116
      StackMap locals:
      StackMap stack:
        78: aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            iload 22 /* i */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.isVarargsParameter:(I)Z
            ifeq 111
        79: .line 801
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 80
            aload 14 /* snippetCopy */
            iload 22 /* i */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getParameter:(I)Lorg/graalvm/compiler/nodes/ParameterNode;
            ifnull 80
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        80: .line 802
      StackMap locals:
      StackMap stack:
            aload 5 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 22 /* i */
            aaload
            checkcast org.graalvm.compiler.replacements.SnippetTemplate$Varargs
            astore 23 /* varargs */
        start local 23 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        81: .line 803
            aload 23 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.length:I
            istore 24 /* length */
        start local 24 // int length
        82: .line 804
            iload 24 /* length */
            anewarray org.graalvm.compiler.nodes.ParameterNode
            astore 25 /* params */
        start local 25 // org.graalvm.compiler.nodes.ParameterNode[] params
        83: .line 805
            aload 23 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.stamp:Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 26 /* stamp */
        start local 26 // org.graalvm.compiler.core.common.type.Stamp stamp
        84: .line 806
            iconst_0
            istore 27 /* j */
        start local 27 // int j
        85: goto 92
        86: .line 808
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.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 87
            iload 20 /* parameterCount */
            sipush 10000
            if_icmplt 87
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        87: .line 809
      StackMap locals:
      StackMap stack:
            iload 22 /* i */
            iconst_1
            iadd
            sipush 10000
            imul
            iload 27 /* j */
            iadd
            istore 28 /* idx */
        start local 28 // int idx
        88: .line 810
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 89
            iload 28 /* idx */
            iload 20 /* parameterCount */
            if_icmpge 89
            new java.lang.AssertionError
            dup
            ldc "collision in parameter numbering"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        89: .line 811
      StackMap locals: int
      StackMap stack:
            aload 14 /* snippetCopy */
            new org.graalvm.compiler.nodes.ParameterNode
            dup
            iload 28 /* idx */
            aload 26 /* 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 29 /* local */
        start local 29 // org.graalvm.compiler.nodes.ParameterNode local
        90: .line 812
            aload 25 /* params */
            iload 27 /* j */
            aload 29 /* local */
            aastore
        end local 29 // org.graalvm.compiler.nodes.ParameterNode local
        end local 28 // int idx
        91: .line 806
            iinc 27 /* j */ 1
      StackMap locals:
      StackMap stack:
        92: iload 27 /* j */
            iload 24 /* length */
            if_icmplt 86
        end local 27 // int j
        93: .line 814
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 22 /* i */
            aload 25 /* params */
            aastore
        94: .line 816
            aload 21 /* placeholders */
            iload 22 /* i */
            aaload
            astore 27 /* placeholder */
        start local 27 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode placeholder
        95: .line 817
            aload 27 /* placeholder */
            ifnull 116
        96: .line 818
            aload 27 /* 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 29
            goto 109
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.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:
        97: aload 29
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 28 /* usage */
        start local 28 // org.graalvm.compiler.graph.Node usage
        98: .line 819
            aload 28 /* usage */
            instanceof org.graalvm.compiler.nodes.java.LoadIndexedNode
            ifeq 107
        99: .line 820
            aload 28 /* usage */
            checkcast org.graalvm.compiler.nodes.java.LoadIndexedNode
            astore 30 /* loadIndexed */
        start local 30 // org.graalvm.compiler.nodes.java.LoadIndexedNode loadIndexed
       100: .line 821
            aload 2 /* debug */
            iconst_2
            aload 14 /* snippetCopy */
            ldc "Before replacing %s"
            aload 30 /* loadIndexed */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
       101: .line 822
            aload 14 /* snippetCopy */
       102: .line 823
            new org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode
            dup
            aload 25 /* params */
            aload 30 /* loadIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.index:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 30 /* 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
       103: .line 822
            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 31 /* loadSnippetParameter */
        start local 31 // org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode loadSnippetParameter
       104: .line 824
            aload 14 /* snippetCopy */
            aload 30 /* loadIndexed */
            aload 31 /* loadSnippetParameter */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
       105: .line 825
            aload 2 /* debug */
            iconst_2
            aload 14 /* snippetCopy */
            ldc "After replacing %s"
            aload 30 /* loadIndexed */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        end local 31 // org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode loadSnippetParameter
        end local 30 // org.graalvm.compiler.nodes.java.LoadIndexedNode loadIndexed
       106: .line 826
            goto 109
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.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:
       107: aload 28 /* usage */
            instanceof org.graalvm.compiler.nodes.java.StoreIndexedNode
            ifeq 109
       108: .line 832
            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 28 // org.graalvm.compiler.graph.Node usage
       109: .line 818
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.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 29
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 97
        end local 27 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode placeholder
        end local 26 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 25 // org.graalvm.compiler.nodes.ParameterNode[] params
        end local 24 // int length
        end local 23 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
       110: .line 836
            goto 116
       111: .line 837
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] int
      StackMap stack:
            aload 14 /* snippetCopy */
            iload 22 /* i */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getParameter:(I)Lorg/graalvm/compiler/nodes/ParameterNode;
            astore 23 /* local */
        start local 23 // org.graalvm.compiler.nodes.ParameterNode local
       112: .line 838
            aload 23 /* local */
            ifnonnull 115
       113: .line 840
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 22 /* i */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.UNUSED_PARAMETER:Ljava/lang/Object;
            aastore
       114: .line 841
            goto 116
       115: .line 842
      StackMap locals: org.graalvm.compiler.nodes.ParameterNode
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.parameters:[Ljava/lang/Object;
            iload 22 /* i */
            aload 23 /* local */
            aastore
        end local 23 // org.graalvm.compiler.nodes.ParameterNode local
       116: .line 797
      StackMap locals:
      StackMap stack:
            iinc 22 /* i */ 1
      StackMap locals:
      StackMap stack:
       117: iload 22 /* i */
            iload 20 /* parameterCount */
            if_icmplt 75
        end local 22 // int i
       118: .line 847
            aload 14 /* snippetCopy */
            aload 3 /* providers */
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.explodeLoops:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/spi/CoreProviders;)V
       119: .line 849
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/UnwindNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            astore 22 /* unwindNodes */
        start local 22 // java.util.List unwindNodes
       120: .line 850
            aload 22 /* unwindNodes */
            invokeinterface java.util.List.size:()I
            ifne 123
       121: .line 851
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.SnippetTemplate.unwindPath:Lorg/graalvm/compiler/nodes/FixedWithNextNode;
       122: .line 852
            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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List
      StackMap stack:
       123: aload 22 /* unwindNodes */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 125
       124: .line 853
            ldc "Graph has more than one UnwindNode"
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
       125: .line 855
      StackMap locals:
      StackMap stack:
            aload 22 /* unwindNodes */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.UnwindNode
            astore 23 /* unwindNode */
        start local 23 // org.graalvm.compiler.nodes.UnwindNode unwindNode
       126: .line 856
            aload 23 /* unwindNode */
            invokevirtual org.graalvm.compiler.nodes.UnwindNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
            instanceof org.graalvm.compiler.nodes.java.ExceptionObjectNode
            ldc "Currently only a single direct exception unwind path is supported in snippets"
            invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;)V
       127: .line 857
            aload 23 /* unwindNode */
            invokevirtual org.graalvm.compiler.nodes.UnwindNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.java.ExceptionObjectNode
            astore 24 /* exceptionObjectNode */
        start local 24 // org.graalvm.compiler.nodes.java.ExceptionObjectNode exceptionObjectNode
       128: .line 863
            aload 0 /* this */
            aload 14 /* snippetCopy */
            new org.graalvm.compiler.nodes.BeginNode
            dup
            invokespecial org.graalvm.compiler.nodes.BeginNode.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            putfield org.graalvm.compiler.replacements.SnippetTemplate.unwindPath:Lorg/graalvm/compiler/nodes/FixedWithNextNode;
       129: .line 864
            aload 24 /* exceptionObjectNode */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.unwindPath:Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            invokevirtual org.graalvm.compiler.nodes.java.ExceptionObjectNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
       130: .line 865
            aload 24 /* exceptionObjectNode */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
       131: .line 866
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.unwindPath:Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            aload 14 /* snippetCopy */
            new org.graalvm.compiler.nodes.UnreachableControlSinkNode
            dup
            invokespecial org.graalvm.compiler.nodes.UnreachableControlSinkNode.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FixedNode
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        end local 24 // org.graalvm.compiler.nodes.java.ExceptionObjectNode exceptionObjectNode
        end local 23 // org.graalvm.compiler.nodes.UnwindNode unwindNode
       132: .line 870
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.common.GraalOptions.ImmutableCode:Lorg/graalvm/compiler/options/OptionKey;
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 135
       133: .line 871
            invokestatic org.graalvm.compiler.phases.common.CanonicalizerPhase.createWithoutReadCanonicalization:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            astore 23 /* canonicalizer */
        start local 23 // org.graalvm.compiler.phases.common.CanonicalizerPhase canonicalizer
       134: .line 872
            goto 136
        end local 23 // org.graalvm.compiler.phases.common.CanonicalizerPhase canonicalizer
       135: .line 873
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.phases.common.CanonicalizerPhase.create:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            astore 23 /* canonicalizer */
        start local 23 // org.graalvm.compiler.phases.common.CanonicalizerPhase canonicalizer
       136: .line 890
      StackMap locals: org.graalvm.compiler.phases.common.CanonicalizerPhase
      StackMap stack:
            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 24 /* guardsStage */
        start local 24 // org.graalvm.compiler.nodes.StructuredGraph$GuardsStage guardsStage
       137: .line 891
            iconst_0
            istore 25 /* needsPEA */
        start local 25 // boolean needsPEA
       138: .line 892
            iconst_0
            istore 26 /* needsCE */
        start local 26 // boolean needsCE
       139: .line 893
            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;
            astore 27 /* loweringStage */
        start local 27 // org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage loweringStage
       140: .line 894
            aload 14 /* 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 29
            goto 147
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage top java.util.Iterator
      StackMap stack:
       141: aload 29
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 28 /* n */
        start local 28 // org.graalvm.compiler.graph.Node n
       142: .line 895
            aload 28 /* n */
            instanceof org.graalvm.compiler.nodes.java.AbstractNewObjectNode
            ifne 143
            aload 28 /* n */
            instanceof org.graalvm.compiler.nodes.extended.AbstractBoxingNode
            ifeq 145
       143: .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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
            iconst_1
            istore 25 /* needsPEA */
       144: .line 897
            goto 148
       145: .line 898
      StackMap locals:
      StackMap stack:
            aload 28 /* n */
            instanceof org.graalvm.compiler.nodes.LogicNode
            ifeq 147
       146: .line 899
            iconst_1
            istore 26 /* needsCE */
        end local 28 // org.graalvm.compiler.graph.Node n
       147: .line 894
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage top java.util.Iterator
      StackMap stack:
            aload 29
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 141
       148: .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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage
      StackMap stack:
            iload 25 /* needsPEA */
            ifeq 150
       149: .line 914
            new org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase
            dup
            iconst_1
            iconst_1
            aload 23 /* canonicalizer */
            aconst_null
            aload 1 /* options */
            getstatic org.graalvm.compiler.phases.schedule.SchedulePhase$SchedulingStrategy.LATEST:Lorg/graalvm/compiler/phases/schedule/SchedulePhase$SchedulingStrategy;
            invokespecial org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.<init>:(ZZLorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/phases/BasePhase;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/phases/schedule/SchedulePhase$SchedulingStrategy;)V
            aload 14 /* snippetCopy */
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       150: .line 916
      StackMap locals:
      StackMap stack:
            iload 26 /* needsCE */
            ifeq 152
       151: .line 917
            new org.graalvm.compiler.phases.common.IterativeConditionalEliminationPhase
            dup
            aload 23 /* canonicalizer */
            iconst_0
            invokespecial org.graalvm.compiler.phases.common.IterativeConditionalEliminationPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Z)V
            aload 14 /* snippetCopy */
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.common.IterativeConditionalEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       152: .line 920
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 28
            aconst_null
            astore 29
       153: aload 2 /* debug */
            ldc "LoweringSnippetTemplate_HIGH_TIER"
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 30 /* s */
        start local 30 // org.graalvm.compiler.debug.DebugContext$Scope s
       154: .line 921
            new org.graalvm.compiler.phases.common.LoweringPhase
            dup
            aload 23 /* canonicalizer */
            getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.HIGH_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
            invokespecial org.graalvm.compiler.phases.common.LoweringPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
            aload 14 /* snippetCopy */
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.common.LoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       155: .line 922
            aload 30 /* s */
            ifnull 163
            aload 30 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 163
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
       156: astore 28
            aload 30 /* s */
            ifnull 157
            aload 30 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 30 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
       157: aload 28
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       158: astore 29
            aload 28
            ifnonnull 159
            aload 29
            astore 28
            goto 160
      StackMap locals:
      StackMap stack:
       159: aload 28
            aload 29
            if_acmpeq 160
            aload 28
            aload 29
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       160: aload 28
            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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage
      StackMap stack: java.lang.Throwable
       161: astore 28 /* e */
        start local 28 // java.lang.Throwable e
       162: .line 923
            aload 2 /* debug */
            aload 28 /* e */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 28 // java.lang.Throwable e
       163: .line 925
      StackMap locals:
      StackMap stack:
            aload 27 /* loweringStage */
            getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.HIGH_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
            if_acmpeq 197
       164: .line 927
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 165
            aload 24 /* guardsStage */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.allowsFloatingGuards:()Z
            ifeq 165
            new java.lang.AssertionError
            dup
            aload 24 /* guardsStage */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
       165: .line 929
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.phases.common.IncrementalCanonicalizerPhase
            dup
            aload 23 /* canonicalizer */
            new org.graalvm.compiler.phases.common.FloatingReadPhase
            dup
            iconst_1
            iconst_1
            invokespecial org.graalvm.compiler.phases.common.FloatingReadPhase.<init>:(ZZ)V
            invokespecial org.graalvm.compiler.phases.common.IncrementalCanonicalizerPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/phases/BasePhase;)V
            aload 14 /* snippetCopy */
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.common.IncrementalCanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       166: .line 930
            new org.graalvm.compiler.phases.common.GuardLoweringPhase
            dup
            invokespecial org.graalvm.compiler.phases.common.GuardLoweringPhase.<init>:()V
            aload 14 /* snippetCopy */
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.common.GuardLoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       167: .line 931
            new org.graalvm.compiler.phases.common.IncrementalCanonicalizerPhase
            dup
            aload 23 /* canonicalizer */
            new org.graalvm.compiler.phases.common.RemoveValueProxyPhase
            dup
            invokespecial org.graalvm.compiler.phases.common.RemoveValueProxyPhase.<init>:()V
            invokespecial org.graalvm.compiler.phases.common.IncrementalCanonicalizerPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/phases/BasePhase;)V
            aload 14 /* snippetCopy */
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.common.IncrementalCanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       168: .line 933
            aconst_null
            astore 28
            aconst_null
            astore 29
       169: aload 2 /* debug */
            ldc "LoweringSnippetTemplate_MID_TIER"
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 30 /* s */
        start local 30 // org.graalvm.compiler.debug.DebugContext$Scope s
       170: .line 934
            new org.graalvm.compiler.phases.common.LoweringPhase
            dup
            aload 23 /* canonicalizer */
            getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.MID_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
            invokespecial org.graalvm.compiler.phases.common.LoweringPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
            aload 14 /* snippetCopy */
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.common.LoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       171: .line 935
            aload 14 /* snippetCopy */
            getstatic org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.AFTER_FSA:Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setGuardsStage:(Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;)V
       172: .line 936
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.disableFrameStateVerification:()V
       173: .line 937
            aload 30 /* s */
            ifnull 181
            aload 30 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 181
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
       174: astore 28
            aload 30 /* s */
            ifnull 175
            aload 30 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 30 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
       175: aload 28
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       176: astore 29
            aload 28
            ifnonnull 177
            aload 29
            astore 28
            goto 178
      StackMap locals:
      StackMap stack:
       177: aload 28
            aload 29
            if_acmpeq 178
            aload 28
            aload 29
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       178: aload 28
            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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage
      StackMap stack: java.lang.Throwable
       179: astore 28 /* e */
        start local 28 // java.lang.Throwable e
       180: .line 938
            aload 2 /* debug */
            aload 28 /* e */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 28 // java.lang.Throwable e
       181: .line 940
      StackMap locals:
      StackMap stack:
            aload 27 /* loweringStage */
            getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.MID_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
            if_acmpeq 197
       182: .line 942
            aload 8 /* midTierPhases */
            ifnull 184
       183: .line 943
            aload 8 /* midTierPhases */
            aload 14 /* snippetCopy */
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.PhaseSuite.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       184: .line 945
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.phases.common.WriteBarrierAdditionPhase
            dup
            invokespecial org.graalvm.compiler.phases.common.WriteBarrierAdditionPhase.<init>:()V
            aload 14 /* snippetCopy */
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.common.WriteBarrierAdditionPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       185: .line 946
            aconst_null
            astore 28
            aconst_null
            astore 29
       186: aload 2 /* debug */
            ldc "LoweringSnippetTemplate_LOW_TIER"
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 30 /* s */
        start local 30 // org.graalvm.compiler.debug.DebugContext$Scope s
       187: .line 948
            new org.graalvm.compiler.phases.common.LoweringPhase
            dup
            aload 23 /* canonicalizer */
            getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.LOW_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
            invokespecial org.graalvm.compiler.phases.common.LoweringPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
            aload 14 /* snippetCopy */
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.phases.common.LoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
       188: .line 949
            aload 30 /* s */
            ifnull 196
            aload 30 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 196
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
       189: astore 28
            aload 30 /* s */
            ifnull 190
            aload 30 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 30 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
       190: aload 28
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       191: astore 29
            aload 28
            ifnonnull 192
            aload 29
            astore 28
            goto 193
      StackMap locals:
      StackMap stack:
       192: aload 28
            aload 29
            if_acmpeq 193
            aload 28
            aload 29
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       193: aload 28
            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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage
      StackMap stack: java.lang.Throwable
       194: astore 28 /* e */
        start local 28 // java.lang.Throwable e
       195: .line 950
            aload 2 /* debug */
            aload 28 /* e */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 28 // java.lang.Throwable e
       196: .line 953
      StackMap locals:
      StackMap stack:
            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 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
       197: .line 956
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 198
            iload 20 /* parameterCount */
            aload 21 /* placeholders */
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.checkAllVarargPlaceholdersAreDeleted:(I[Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;)Z
            ifne 198
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       198: .line 958
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 28 /* curSideEffectNodes */
        start local 28 // java.util.ArrayList curSideEffectNodes
       199: .line 959
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 29 /* curDeoptNodes */
        start local 29 // java.util.ArrayList curDeoptNodes
       200: .line 960
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 30 /* curPlaceholderStampedNodes */
        start local 30 // java.util.ArrayList curPlaceholderStampedNodes
       201: .line 962
            iconst_0
            istore 31 /* containsMerge */
        start local 31 // boolean containsMerge
       202: .line 963
            iconst_0
            istore 32 /* containsLoopExit */
        start local 32 // boolean containsLoopExit
       203: .line 965
            aload 14 /* 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 34
            goto 224
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int top java.util.Iterator
      StackMap stack:
       204: aload 34
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 33 /* node */
        start local 33 // org.graalvm.compiler.graph.Node node
       205: .line 966
            aload 33 /* node */
            instanceof org.graalvm.compiler.nodes.AbstractMergeNode
            ifeq 207
       206: .line 967
            iconst_1
            istore 31 /* containsMerge */
       207: .line 969
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
            aload 33 /* node */
            instanceof org.graalvm.compiler.nodes.LoopExitNode
            ifeq 209
       208: .line 970
            iconst_1
            istore 32 /* containsLoopExit */
       209: .line 972
      StackMap locals:
      StackMap stack:
            aload 33 /* node */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 213
       210: .line 973
            aload 33 /* node */
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 35 /* valueNode */
        start local 35 // org.graalvm.compiler.nodes.ValueNode valueNode
       211: .line 974
            aload 35 /* 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 213
       212: .line 975
            aload 30 /* curPlaceholderStampedNodes */
            aload 35 /* valueNode */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 35 // org.graalvm.compiler.nodes.ValueNode valueNode
       213: .line 979
      StackMap locals:
      StackMap stack:
            aload 33 /* node */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 220
       214: .line 980
            aload 33 /* node */
            checkcast org.graalvm.compiler.nodes.StateSplit
            astore 35 /* stateSplit */
        start local 35 // org.graalvm.compiler.nodes.StateSplit stateSplit
       215: .line 981
            aload 35 /* stateSplit */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 36 /* frameState */
        start local 36 // org.graalvm.compiler.nodes.FrameState frameState
       216: .line 982
            aload 35 /* stateSplit */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.hasSideEffect:()Z
            ifeq 218
       217: .line 983
            aload 28 /* curSideEffectNodes */
            aload 33 /* node */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       218: .line 985
      StackMap locals: org.graalvm.compiler.nodes.StateSplit org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 36 /* frameState */
            ifnull 220
       219: .line 986
            aload 35 /* stateSplit */
            aconst_null
            invokeinterface org.graalvm.compiler.nodes.StateSplit.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        end local 36 // org.graalvm.compiler.nodes.FrameState frameState
        end local 35 // org.graalvm.compiler.nodes.StateSplit stateSplit
       220: .line 989
      StackMap locals:
      StackMap stack:
            aload 33 /* node */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode
            ifeq 224
       221: .line 990
            aload 33 /* node */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            astore 35 /* deoptNode */
        start local 35 // org.graalvm.compiler.nodes.DeoptimizingNode deoptNode
       222: .line 991
            aload 35 /* deoptNode */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode.canDeoptimize:()Z
            ifeq 224
       223: .line 992
            aload 29 /* curDeoptNodes */
            aload 35 /* deoptNode */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 35 // org.graalvm.compiler.nodes.DeoptimizingNode deoptNode
        end local 33 // org.graalvm.compiler.graph.Node node
       224: .line 965
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int top java.util.Iterator
      StackMap stack:
            aload 34
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 204
       225: .line 996
            aload 0 /* this */
            aload 14 /* snippetCopy */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
       226: .line 997
            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 33 /* entryPointNode */
        start local 33 // org.graalvm.compiler.nodes.StartNode entryPointNode
       227: .line 998
            aload 14 /* snippetCopy */
            new org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.privateLocations:[Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokespecial org.graalvm.compiler.nodes.memory.MemoryAnchorNode.<init>:([Ljdk/internal/vm/compiler/word/LocationIdentity;)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 34 /* anchor */
        start local 34 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchor
       228: .line 999
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            aload 34 /* anchor */
            getstatic org.graalvm.compiler.nodeinfo.InputType.Memory:Lorg/graalvm/compiler/nodeinfo/InputType;
            invokevirtual org.graalvm.compiler.nodes.StartNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodeinfo/InputType;)V
       229: .line 1000
            aload 2 /* debug */
            iconst_5
            aload 14 /* snippetCopy */
            ldc "After adding memory anchor %s"
            aload 34 /* anchor */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
       230: .line 1001
            aload 34 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.hasNoUsages:()Z
            ifeq 234
       231: .line 1002
            aload 34 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.safeDelete:()V
       232: .line 1003
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
       233: .line 1004
            goto 263
       234: .line 1008
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode
      StackMap stack:
            iconst_0
            istore 35 /* needsMemoryMaps */
        start local 35 // boolean needsMemoryMaps
       235: .line 1009
            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 37
            goto 241
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode int top java.util.Iterator
      StackMap stack:
       236: aload 37
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            astore 36 /* retNode */
        start local 36 // org.graalvm.compiler.nodes.ReturnNode retNode
       237: .line 1010
            aload 36 /* retNode */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            astore 38 /* memoryMap */
        start local 38 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
       238: .line 1011
            aload 38 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLocations:()Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmpgt 239
            aload 38 /* memoryMap */
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLastLocationAccess:(Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryKill;
            aload 34 /* anchor */
            if_acmpeq 241
       239: .line 1012
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode int org.graalvm.compiler.nodes.ReturnNode java.util.Iterator org.graalvm.compiler.nodes.memory.MemoryMapNode
      StackMap stack:
            iconst_1
            istore 35 /* needsMemoryMaps */
       240: .line 1013
            goto 242
        end local 38 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
        end local 36 // org.graalvm.compiler.nodes.ReturnNode retNode
       241: .line 1009
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode int top java.util.Iterator
      StackMap stack:
            aload 37
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 236
       242: .line 1017
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode int
      StackMap stack:
            iload 35 /* needsMemoryMaps */
            ifeq 245
       243: .line 1018
            iconst_1
            istore 36 /* needsAnchor */
        start local 36 // boolean needsAnchor
       244: .line 1019
            goto 257
        end local 36 // boolean needsAnchor
       245: .line 1021
      StackMap locals:
      StackMap stack:
            aload 34 /* 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 36 /* needsAnchor */
        start local 36 // boolean needsAnchor
       246: .line 1023
            aconst_null
            astore 37 /* memoryMap */
        start local 37 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
       247: .line 1024
            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 39
            goto 254
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode int int org.graalvm.compiler.nodes.memory.MemoryMapNode top java.util.Iterator
      StackMap stack:
       248: aload 39
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            astore 38 /* retNode */
        start local 38 // org.graalvm.compiler.nodes.ReturnNode retNode
       249: .line 1025
            aload 37 /* memoryMap */
            ifnonnull 252
       250: .line 1026
            aload 38 /* retNode */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            astore 37 /* memoryMap */
       251: .line 1027
            goto 253
       252: .line 1028
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode 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 253
            aload 37 /* memoryMap */
            aload 38 /* retNode */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            if_acmpeq 253
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       253: .line 1030
      StackMap locals:
      StackMap stack:
            aload 38 /* retNode */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.setMemoryMap:(Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;)V
        end local 38 // org.graalvm.compiler.nodes.ReturnNode retNode
       254: .line 1024
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode int int org.graalvm.compiler.nodes.memory.MemoryMapNode top java.util.Iterator
      StackMap stack:
            aload 39
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 248
       255: .line 1032
            aload 37 /* memoryMap */
            ifnull 257
       256: .line 1033
            aload 37 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.safeDelete:()V
        end local 37 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
       257: .line 1036
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode int int
      StackMap stack:
            iload 36 /* needsAnchor */
            ifeq 261
       258: .line 1037
            aload 14 /* snippetCopy */
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            aload 34 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
       259: .line 1038
            aload 0 /* this */
            aload 34 /* anchor */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
       260: .line 1039
            goto 263
       261: .line 1040
      StackMap locals:
      StackMap stack:
            aload 34 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.safeDelete:()V
       262: .line 1041
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
        end local 36 // boolean needsAnchor
        end local 35 // boolean needsMemoryMaps
       263: .line 1044
      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
       264: .line 1045
            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 35 /* returnNodes */
        start local 35 // java.util.List returnNodes
       265: .line 1046
            aload 35 /* returnNodes */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 268
       266: .line 1047
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
       267: .line 1048
            goto 293
      StackMap locals: java.util.List
      StackMap stack:
       268: aload 35 /* returnNodes */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 271
       269: .line 1049
            aload 0 /* this */
            aload 35 /* 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;
       270: .line 1050
            goto 293
       271: .line 1051
      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 36 /* merge */
        start local 36 // org.graalvm.compiler.nodes.AbstractMergeNode merge
       272: .line 1052
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 37 /* memMaps */
        start local 37 // java.util.List memMaps
       273: .line 1053
            aload 35 /* returnNodes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 39
            goto 278
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode java.util.List org.graalvm.compiler.nodes.AbstractMergeNode java.util.List top java.util.Iterator
      StackMap stack:
       274: aload 39
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ReturnNode
            astore 38 /* retNode */
        start local 38 // org.graalvm.compiler.nodes.ReturnNode retNode
       275: .line 1054
            aload 38 /* retNode */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.getMemoryMap:()Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            astore 40 /* memoryMapNode */
        start local 40 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMapNode
       276: .line 1055
            aload 40 /* memoryMapNode */
            ifnull 278
       277: .line 1056
            aload 37 /* memMaps */
            aload 40 /* memoryMapNode */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 40 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMapNode
        end local 38 // org.graalvm.compiler.nodes.ReturnNode retNode
       278: .line 1053
      StackMap locals:
      StackMap stack:
            aload 39
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 274
       279: .line 1059
            iconst_1
            istore 31 /* containsMerge */
       280: .line 1060
            aload 36 /* merge */
            aload 35 /* returnNodes */
            invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.mergeReturns:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 38 /* returnValue */
        start local 38 // org.graalvm.compiler.nodes.ValueNode returnValue
       281: .line 1061
            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 38 /* 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;
       282: .line 1062
            aload 37 /* memMaps */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 292
       283: .line 1063
            aload 36 /* merge */
            aload 37 /* 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 39 /* mmap */
        start local 39 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl mmap
       284: .line 1064
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.memory.MemoryMapNode
            dup
            aload 39 /* mmap */
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.getMap:()Ljdk/internal/vm/compiler/collections/EconomicMap;
            invokespecial org.graalvm.compiler.nodes.memory.MemoryMapNode.<init>:(Ljdk/internal/vm/compiler/collections/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 40 /* memoryMap */
        start local 40 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
       285: .line 1065
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            aload 40 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.setMemoryMap:(Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;)V
       286: .line 1066
            aload 37 /* memMaps */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 42
            goto 291
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode 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:
       287: aload 42
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.memory.MemoryMapNode
            astore 41 /* mm */
        start local 41 // org.graalvm.compiler.nodes.memory.MemoryMapNode mm
       288: .line 1067
            aload 41 /* mm */
            aload 40 /* memoryMap */
            if_acmpeq 291
            aload 41 /* mm */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.isAlive:()Z
            ifeq 291
       289: .line 1068
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 290
            aload 41 /* mm */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.hasNoUsages:()Z
            ifne 290
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       290: .line 1069
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode 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 41 /* mm */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
        end local 41 // org.graalvm.compiler.nodes.memory.MemoryMapNode mm
       291: .line 1066
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode 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 42
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 287
        end local 40 // org.graalvm.compiler.nodes.memory.MemoryMapNode memoryMap
        end local 39 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl mmap
       292: .line 1073
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode java.util.List org.graalvm.compiler.nodes.AbstractMergeNode java.util.List org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 36 /* 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 38 // org.graalvm.compiler.nodes.ValueNode returnValue
        end local 37 // java.util.List memMaps
        end local 36 // org.graalvm.compiler.nodes.AbstractMergeNode merge
       293: .line 1075
      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 "After fixing returns"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
       294: .line 1077
            aload 24 /* guardsStage */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.areFrameStatesAtDeopts:()Z
            ifne 296
            iload 31 /* containsMerge */
            ifne 295
            iload 32 /* containsLoopExit */
            ifeq 296
      StackMap locals:
      StackMap stack:
       295: iconst_1
            goto 297
      StackMap locals:
      StackMap stack:
       296: iconst_0
      StackMap locals:
      StackMap stack: int
       297: istore 36 /* needsMergeStateMap */
        start local 36 // boolean needsMergeStateMap
       298: .line 1079
            iload 36 /* needsMergeStateMap */
            ifeq 302
       299: .line 1080
            aload 0 /* this */
            new org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure
            dup
            aload 14 /* snippetCopy */
            invokespecial org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
            putfield org.graalvm.compiler.replacements.SnippetTemplate.frameStateAssignment:Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure;
       300: .line 1081
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.frameStateAssignment:Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure;
            aload 14 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            getstatic org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment.BEFORE_BCI:Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$NodeStateAssignment;
            invokestatic org.graalvm.compiler.phases.graph.ReentrantNodeIterator.apply:(Lorg/graalvm/compiler/phases/graph/ReentrantNodeIterator$NodeIteratorClosure;Lorg/graalvm/compiler/nodes/FixedNode;Ljava/lang/Object;)V
       301: .line 1082
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 303
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.frameStateAssignment:Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure;
            invokevirtual org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure.verify:()Z
            ifne 303
            new java.lang.AssertionError
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
       302: .line 1084
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.replacements.SnippetTemplate.frameStateAssignment:Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure;
       303: .line 1087
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 304
            aload 14 /* snippetCopy */
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.verifyIntrinsicsProcessed:(Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
            ifne 304
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       304: .line 1089
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 28 /* curSideEffectNodes */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.sideEffectNodes:Ljava/util/ArrayList;
       305: .line 1090
            aload 0 /* this */
            aload 29 /* curDeoptNodes */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.deoptNodes:Ljava/util/ArrayList;
       306: .line 1091
            aload 0 /* this */
            aload 30 /* curPlaceholderStampedNodes */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.placeholderStampedNodes:Ljava/util/ArrayList;
       307: .line 1093
            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;
       308: .line 1094
            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 38
            goto 312
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode java.util.List int top java.util.Iterator
      StackMap stack:
       309: aload 38
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 37 /* node */
        start local 37 // org.graalvm.compiler.graph.Node node
       310: .line 1095
            aload 37 /* node */
            aload 33 /* entryPointNode */
            if_acmpeq 312
            aload 37 /* node */
            aload 33 /* entryPointNode */
            invokevirtual org.graalvm.compiler.nodes.StartNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            if_acmpeq 312
       311: .line 1096
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.nodes:Ljava/util/ArrayList;
            aload 37 /* node */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 37 // org.graalvm.compiler.graph.Node node
       312: .line 1094
      StackMap locals:
      StackMap stack:
            aload 38
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 309
       313: .line 1100
            aload 2 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.areMetricsEnabled:()Z
            ifeq 315
       314: .line 1101
            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
       315: .line 1103
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicMap jdk.vm.ci.meta.MetaAccessProvider int org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] java.util.List org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.nodes.StructuredGraph$GuardsStage int int org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage java.util.ArrayList java.util.ArrayList java.util.ArrayList int int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.memory.MemoryAnchorNode java.util.List int
      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
       316: .line 1104
            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 36 // boolean needsMergeStateMap
        end local 35 // java.util.List returnNodes
        end local 34 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchor
        end local 33 // org.graalvm.compiler.nodes.StartNode entryPointNode
        end local 32 // boolean containsLoopExit
        end local 31 // boolean containsMerge
        end local 30 // java.util.ArrayList curPlaceholderStampedNodes
        end local 29 // java.util.ArrayList curDeoptNodes
        end local 28 // java.util.ArrayList curSideEffectNodes
        end local 27 // org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage loweringStage
        end local 26 // boolean needsCE
        end local 25 // boolean needsPEA
        end local 24 // org.graalvm.compiler.nodes.StructuredGraph$GuardsStage guardsStage
        end local 23 // org.graalvm.compiler.phases.common.CanonicalizerPhase canonicalizer
        end local 22 // java.util.List unwindNodes
        end local 21 // org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode[] placeholders
        end local 20 // int parameterCount
        end local 19 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 18 // jdk.internal.vm.compiler.collections.EconomicMap nodeReplacements
       317: .line 1106
            aload 17 /* scope */
            ifnull 325
            aload 17 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 325
      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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
       318: astore 15
            aload 17 /* scope */
            ifnull 319
            aload 17 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 17 // org.graalvm.compiler.debug.DebugContext$Scope scope
      StackMap locals:
      StackMap stack:
       319: aload 15
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       320: astore 16
            aload 15
            ifnonnull 321
            aload 16
            astore 15
            goto 322
      StackMap locals:
      StackMap stack:
       321: aload 15
            aload 16
            if_acmpeq 322
            aload 15
            aload 16
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       322: aload 15
            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 int org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.PhaseSuite java.lang.Object[] int org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.Signature org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack: java.lang.Throwable
       323: astore 15 /* ex */
        start local 15 // java.lang.Throwable ex
       324: .line 1107
            aload 2 /* debug */
            aload 15 /* ex */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 15 // java.lang.Throwable ex
       325: .line 1109
      StackMap locals:
      StackMap stack:
            return
        end local 14 // org.graalvm.compiler.nodes.StructuredGraph snippetCopy
        end local 13 // jdk.vm.ci.meta.Signature signature
        end local 12 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 11 // org.graalvm.compiler.nodes.StructuredGraph snippetGraph
        end local 10 // boolean shouldTrackNodeSourcePosition1
        end local 9 // java.lang.Object[] constantArgs
        end local 8 // org.graalvm.compiler.phases.PhaseSuite midTierPhases
        end local 7 // org.graalvm.compiler.graph.Node replacee
        end local 6 // boolean trackNodeSourcePosition
        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  326     0                            this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0  326     1                         options  Lorg/graalvm/compiler/options/OptionValues;
            0  326     2                           debug  Lorg/graalvm/compiler/debug/DebugContext;
            0  326     3                       providers  Lorg/graalvm/compiler/phases/util/Providers;
            0  326     4               snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0  326     5                            args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            0  326     6         trackNodeSourcePosition  Z
            0  326     7                        replacee  Lorg/graalvm/compiler/graph/Node;
            0  326     8                   midTierPhases  Lorg/graalvm/compiler/phases/PhaseSuite<Lorg/graalvm/compiler/phases/util/Providers;>;
            5  326     9                    constantArgs  [Ljava/lang/Object;
            9  326    10  shouldTrackNodeSourcePosition1  Z
           12  326    11                    snippetGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           13  326    12                          method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           14  326    13                       signature  Ljdk/vm/ci/meta/Signature;
           19  326    14                     snippetCopy  Lorg/graalvm/compiler/nodes/StructuredGraph;
           23  319    17                           scope  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           27  317    18                nodeReplacements  Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           29  317    19                      metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
           31  317    20                  parameterCount  I
           32  317    21                    placeholders  [Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;
           33   60    22                               i  I
           35   58    23                       parameter  Lorg/graalvm/compiler/nodes/ParameterNode;
           38   49    24                             arg  Ljava/lang/Object;
           39   49    25                            kind  Ljdk/vm/ci/meta/JavaKind;
           44   45    26                    constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
           46   47    26                    constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
           48   49    26                    constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
           41   46    27                           stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
           52   55    24                         varargs  Lorg/graalvm/compiler/replacements/SnippetTemplate$Varargs;
           53   55    25                     placeholder  Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;
           62   67    24                     updateScope  Lorg/graalvm/compiler/nodes/InliningLog$UpdateScope;
           63   65    25                      duplicates  Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           74  118    22                               i  I
           81  110    23                         varargs  Lorg/graalvm/compiler/replacements/SnippetTemplate$Varargs;
           82  110    24                          length  I
           83  110    25                          params  [Lorg/graalvm/compiler/nodes/ParameterNode;
           84  110    26                           stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
           85   93    27                               j  I
           88   91    28                             idx  I
           90   91    29                           local  Lorg/graalvm/compiler/nodes/ParameterNode;
           95  110    27                     placeholder  Lorg/graalvm/compiler/replacements/SnippetTemplate$VarargsPlaceholderNode;
           98  109    28                           usage  Lorg/graalvm/compiler/graph/Node;
          100  106    30                     loadIndexed  Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
          104  106    31            loadSnippetParameter  Lorg/graalvm/compiler/replacements/nodes/LoadSnippetVarargParameterNode;
          112  116    23                           local  Lorg/graalvm/compiler/nodes/ParameterNode;
          120  317    22                     unwindNodes  Ljava/util/List<Lorg/graalvm/compiler/nodes/UnwindNode;>;
          126  132    23                      unwindNode  Lorg/graalvm/compiler/nodes/UnwindNode;
          128  132    24             exceptionObjectNode  Lorg/graalvm/compiler/nodes/java/ExceptionObjectNode;
          134  135    23                   canonicalizer  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
          136  317    23                   canonicalizer  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
          137  317    24                     guardsStage  Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
          138  317    25                        needsPEA  Z
          139  317    26                         needsCE  Z
          140  317    27                   loweringStage  Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
          142  147    28                               n  Lorg/graalvm/compiler/graph/Node;
          154  157    30                               s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
          162  163    28                               e  Ljava/lang/Throwable;
          170  175    30                               s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
          180  181    28                               e  Ljava/lang/Throwable;
          187  190    30                               s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
          195  196    28                               e  Ljava/lang/Throwable;
          199  317    28              curSideEffectNodes  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/StateSplit;>;
          200  317    29                   curDeoptNodes  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/DeoptimizingNode;>;
          201  317    30      curPlaceholderStampedNodes  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/ValueNode;>;
          202  317    31                   containsMerge  Z
          203  317    32                containsLoopExit  Z
          205  224    33                            node  Lorg/graalvm/compiler/graph/Node;
          211  213    35                       valueNode  Lorg/graalvm/compiler/nodes/ValueNode;
          215  220    35                      stateSplit  Lorg/graalvm/compiler/nodes/StateSplit;
          216  220    36                      frameState  Lorg/graalvm/compiler/nodes/FrameState;
          222  224    35                       deoptNode  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
          227  317    33                  entryPointNode  Lorg/graalvm/compiler/nodes/StartNode;
          228  317    34                          anchor  Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
          235  263    35                 needsMemoryMaps  Z
          237  241    36                         retNode  Lorg/graalvm/compiler/nodes/ReturnNode;
          238  241    38                       memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          244  245    36                     needsAnchor  Z
          246  263    36                     needsAnchor  Z
          247  257    37                       memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          249  254    38                         retNode  Lorg/graalvm/compiler/nodes/ReturnNode;
          265  317    35                     returnNodes  Ljava/util/List<Lorg/graalvm/compiler/nodes/ReturnNode;>;
          272  293    36                           merge  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
          273  293    37                         memMaps  Ljava/util/List<Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;>;
          275  278    38                         retNode  Lorg/graalvm/compiler/nodes/ReturnNode;
          276  278    40                   memoryMapNode  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          281  293    38                     returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
          284  292    39                            mmap  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
          285  292    40                       memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          288  291    41                              mm  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
          298  317    36              needsMergeStateMap  Z
          310  312    37                            node  Lorg/graalvm/compiler/graph/Node;
          324  325    15                              ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          62    65      66  any
          61    68      68  any
         154   155     156  any
         153   158     158  any
         152   161     161  Class java.lang.Throwable
         170   173     174  any
         169   176     176  any
         168   179     179  Class java.lang.Throwable
         187   188     189  any
         186   191     191  any
         185   194     194  Class java.lang.Throwable
          23   317     318  any
          22   320     320  any
          21   323     323  Class java.lang.Throwable
    Signature: (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;ZLorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/phases/PhaseSuite<Lorg/graalvm/compiler/phases/util/Providers;>;)V
    MethodParameters:
                         Name  Flags
      options                  
      debug                    
      providers                final
      snippetReflection        
      args                     
      trackNodeSourcePosition  
      replacee                 
      midTierPhases            

  private static boolean verifyIntrinsicsProcessed(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph snippetCopy
         0: .line 1112
            getstatic jdk.vm.ci.services.Services.IS_IN_NATIVE_IMAGE:Z
            ifeq 2
         1: .line 1113
            iconst_1
            ireturn
         2: .line 1115
      StackMap locals:
      StackMap stack:
            aload 0 /* snippetCopy */
            getstatic org.graalvm.compiler.nodes.java.MethodCallTargetNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 2
            goto 8
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.MethodCallTargetNode
            astore 1 /* target */
        start local 1 // org.graalvm.compiler.nodes.java.MethodCallTargetNode target
         4: .line 1116
            aload 1 /* target */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 3 /* targetMethod */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
         5: .line 1117
            aload 3 /* targetMethod */
            ifnull 8
         6: .line 1118
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 8
            aload 3 /* targetMethod */
            ldc Lorg/graalvm/compiler/api/replacements/Fold;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnonnull 7
            aload 3 /* targetMethod */
            ldc Lorg/graalvm/compiler/graph/Node$NodeIntrinsic;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 8
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.java.MethodCallTargetNode java.util.Iterator jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
         7: new java.lang.AssertionError
            dup
            ldc "plugin should have been processed"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 1 // org.graalvm.compiler.nodes.java.MethodCallTargetNode target
         8: .line 1115
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 1121
            iconst_1
            ireturn
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph snippetCopy
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0   snippetCopy  Lorg/graalvm/compiler/nodes/StructuredGraph;
            4    8     1        target  Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;
            5    8     3  targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
             Name  Flags
      snippetCopy  

  public static void explodeLoops(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.spi.CoreProviders);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/spi/CoreProviders;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph snippetCopy
        start local 1 // org.graalvm.compiler.nodes.spi.CoreProviders providers
         0: .line 1126
            iconst_0
            istore 2 /* exploded */
        start local 2 // boolean exploded
         1: .line 1128
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 2 /* exploded */
         2: .line 1129
            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 1130
            aload 3 /* explodeLoop */
            ifnull 18
         4: .line 1132
            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 1133
            aload 4 /* loopBegin */
            ifnull 16
         6: .line 1134
            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 1135
            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 1136
            aconst_null
            astore 7 /* canonicalizer */
        start local 7 // org.graalvm.compiler.phases.common.CanonicalizerPhase canonicalizer
         9: .line 1137
            getstatic org.graalvm.compiler.core.common.GraalOptions.ImmutableCode:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* snippetCopy */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 12
        10: .line 1138
            invokestatic org.graalvm.compiler.phases.common.CanonicalizerPhase.createWithoutReadCanonicalization:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            astore 7 /* canonicalizer */
        11: .line 1139
            goto 13
        12: .line 1140
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.spi.CoreProviders int org.graalvm.compiler.replacements.nodes.ExplodeLoopNode org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.Graph$Mark org.graalvm.compiler.phases.common.CanonicalizerPhase
      StackMap stack:
            invokestatic org.graalvm.compiler.phases.common.CanonicalizerPhase.create:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            astore 7 /* canonicalizer */
        13: .line 1142
      StackMap locals:
      StackMap stack:
            aload 5 /* loop */
            aload 1 /* providers */
            aload 7 /* canonicalizer */
            invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.fullUnroll:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;)V
        14: .line 1143
            invokestatic org.graalvm.compiler.phases.common.CanonicalizerPhase.create:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            aload 0 /* snippetCopy */
            aload 1 /* providers */
            aload 6 /* mark */
            iconst_0
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.applyIncremental:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/graph/Graph$Mark;Z)V
        15: .line 1144
            aload 5 /* loop */
            invokevirtual org.graalvm.compiler.loop.LoopEx.deleteUnusedNodes:()V
        end local 7 // org.graalvm.compiler.phases.common.CanonicalizerPhase canonicalizer
        end local 6 // org.graalvm.compiler.graph.Graph$Mark mark
        end local 5 // org.graalvm.compiler.loop.LoopEx loop
        16: .line 1146
      StackMap locals:
      StackMap stack:
            aload 3 /* explodeLoop */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        17: .line 1147
            iconst_1
            istore 2 /* exploded */
        end local 4 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
        end local 3 // org.graalvm.compiler.replacements.nodes.ExplodeLoopNode explodeLoop
        18: .line 1149
      StackMap locals:
      StackMap stack:
            iload 2 /* exploded */
            ifne 1
        19: .line 1150
            return
        end local 2 // boolean exploded
        end local 1 // org.graalvm.compiler.nodes.spi.CoreProviders providers
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph snippetCopy
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0    snippetCopy  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   20     1      providers  Lorg/graalvm/compiler/nodes/spi/CoreProviders;
            1   20     2       exploded  Z
            3   18     3    explodeLoop  Lorg/graalvm/compiler/replacements/nodes/ExplodeLoopNode;
            5   18     4      loopBegin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
            7   16     5           loop  Lorg/graalvm/compiler/loop/LoopEx;
            8   16     6           mark  Lorg/graalvm/compiler/graph/Graph$Mark;
            9   16     7  canonicalizer  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
    MethodParameters:
             Name  Flags
      snippetCopy  final
      providers    

  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 1153
            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 1154
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 8
         3: .line 1155
      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 1156
            aload 2 /* constantArgs */
            iload 3 /* i */
            aconst_null
            aastore
         5: .line 1157
            goto 7
         6: .line 1158
      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 1154
      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 1161
            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 1165
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 1166
      StackMap locals: int
      StackMap stack:
            aload 1 /* placeholders */
            iload 2 /* i */
            aaload
            ifnull 4
         3: .line 1167
            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 1165
      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 1170
            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 paramIndex
        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 1174
            aload 2 /* signature */
            iload 3 /* paramIndex */
            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 1175
            aload 0 /* metaAccess */
            ldc Ljdk/internal/vm/compiler/word/WordBase;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 7 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 4
         2: .line 1176
            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 1177
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            iconst_1
            ireturn
         4: .line 1179
      StackMap locals:
      StackMap stack:
            aload 6 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 10
         5: .line 1180
            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 1181
            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 1183
      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 paramIndex
        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  paramIndex  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   
      paramIndex  
      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 1187
            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 1188
            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 1189
      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 1190
            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 1191
      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 jdk.internal.vm.compiler.collections.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;)Ljdk/internal/vm/compiler/collections/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 1260
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
            astore 4 /* replacements */
        start local 4 // jdk.internal.vm.compiler.collections.EconomicMap replacements
         1: .line 1261
            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 1262
      StackMap locals: jdk.internal.vm.compiler.collections.EconomicMap
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 47
         4: .line 1263
      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 1264
            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 1265
      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 1266
            aload 6 /* parameter */
            instanceof org.graalvm.compiler.nodes.ParameterNode
            ifeq 16
         8: .line 1267
            aload 7 /* argument */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 11
         9: .line 1268
            aload 4 /* replacements */
            aload 6 /* parameter */
            checkcast org.graalvm.compiler.nodes.ParameterNode
            aload 7 /* argument */
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1269
            goto 46
        11: .line 1270
      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 1271
            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 1272
      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 1273
            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 jdk.internal.vm.compiler.collections.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 1275
            goto 46
      StackMap locals:
      StackMap stack:
        16: aload 6 /* parameter */
            instanceof org.graalvm.compiler.nodes.ParameterNode[]
            ifeq 45
        17: .line 1276
            aload 6 /* parameter */
            checkcast org.graalvm.compiler.nodes.ParameterNode[]
            astore 8 /* params */
        start local 8 // org.graalvm.compiler.nodes.ParameterNode[] params
        18: .line 1277
            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 1278
            aload 8 /* params */
            arraylength
            istore 10 /* length */
        start local 10 // int length
        20: .line 1279
            aconst_null
            astore 11 /* list */
        start local 11 // java.util.List list
        21: .line 1280
            aconst_null
            astore 12 /* array */
        start local 12 // java.lang.Object array
        22: .line 1281
            aload 9 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.value:Ljava/lang/Object;
            instanceof java.util.List
            ifeq 25
        23: .line 1282
            aload 9 /* varargs */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Varargs.value:Ljava/lang/Object;
            checkcast java.util.List
            astore 11 /* list */
        24: .line 1283
            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 1285
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments jdk.internal.vm.compiler.collections.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 1286
            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 1287
      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 1290
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* j */
        start local 13 // int j
        30: goto 43
        31: .line 1291
      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 1292
            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 1293
      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 1294
            aload 15 /* value */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 39
        37: .line 1295
            aload 4 /* replacements */
            aload 14 /* param */
            aload 15 /* value */
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        38: .line 1296
            goto 42
        39: .line 1297
      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 1298
            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 1299
            aload 4 /* replacements */
            aload 14 /* param */
            aload 17 /* element */
            invokeinterface jdk.internal.vm.compiler.collections.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 1290
      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 1302
            goto 46
        45: .line 1303
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.replacements.SnippetTemplate$Arguments jdk.internal.vm.compiler.collections.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 1262
      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 1306
            aload 4 /* replacements */
            areturn
        end local 4 // jdk.internal.vm.compiler.collections.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  Ljdk/internal/vm/compiler/collections/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;)Ljdk/internal/vm/compiler/collections/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 1318
            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 1319
      StackMap locals:
      StackMap stack:
            aload 2 /* localKind */
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 3
         2: .line 1320
            aload 1 /* argument */
            invokestatic jdk.vm.ci.meta.JavaConstant.forBoxedPrimitive:(Ljava/lang/Object;)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
         3: .line 1322
      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 1355
            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 1357
            iconst_1
            ireturn
         2: .line 1359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            ifnonnull 4
         3: .line 1361
            iconst_1
            ireturn
         4: .line 1363
      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 1364
            aload 2 /* memoryMap */
            ifnull 6
            aload 2 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.isEmpty:()Z
            ifeq 7
         6: .line 1366
      StackMap locals: org.graalvm.compiler.nodes.memory.MemoryMapNode
      StackMap stack:
            iconst_1
            ireturn
         7: .line 1369
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.vm.compiler.collections.Equivalence.DEFAULT:Ljdk/internal/vm/compiler/collections/Equivalence;
            invokestatic jdk.internal.vm.compiler.collections.EconomicSet.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicSet;
            astore 3 /* kills */
        start local 3 // jdk.internal.vm.compiler.collections.EconomicSet kills
         8: .line 1370
            aload 3 /* kills */
            aload 2 /* memoryMap */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLocations:()Ljava/util/Collection;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.addAll:(Ljava/lang/Iterable;)V
         9: .line 1372
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.memory.SingleMemoryKill
            ifeq 15
        10: .line 1374
            aload 1 /* replacee */
            checkcast org.graalvm.compiler.nodes.memory.SingleMemoryKill
            invokeinterface org.graalvm.compiler.nodes.memory.SingleMemoryKill.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            astore 4 /* locationIdentity */
        start local 4 // jdk.internal.vm.compiler.word.LocationIdentity locationIdentity
        11: .line 1375
            aload 4 /* locationIdentity */
            invokevirtual jdk.internal.vm.compiler.word.LocationIdentity.isAny:()Z
            ifeq 13
        12: .line 1377
            iconst_1
            ireturn
        13: .line 1379
      StackMap locals: jdk.internal.vm.compiler.collections.EconomicSet jdk.internal.vm.compiler.word.LocationIdentity
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 14
            aload 3 /* kills */
            aload 4 /* locationIdentity */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifne 14
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* replacee */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " kills "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* locationIdentity */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", but snippet doesn't contain a kill to this location"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        14: .line 1380
      StackMap locals:
      StackMap stack:
            aload 3 /* kills */
            aload 4 /* locationIdentity */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.remove:(Ljava/lang/Object;)V
        end local 4 // jdk.internal.vm.compiler.word.LocationIdentity locationIdentity
        15: .line 1382
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 16
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.memory.MultiMemoryKill
            ifeq 16
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* replacee */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " multi not supported (yet)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        16: .line 1385
      StackMap locals:
      StackMap stack:
            aload 2 /* memoryMap */
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryMapNode.getLastLocationAccess:(Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryKill;
            instanceof org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            ifeq 18
        17: .line 1386
            aload 3 /* kills */
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.remove:(Ljava/lang/Object;)V
        18: .line 1390
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 19
            aload 3 /* kills */
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 19
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "snippet graph contains a kill to ANY_LOCATION, but replacee ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* replacee */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ") doesn't kill ANY_LOCATION.  kills: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* kills */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        19: .line 1399
      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:[Ljdk/internal/vm/compiler/word/LocationIdentity;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 23
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.MemoryMapNode jdk.internal.vm.compiler.collections.EconomicSet top int int jdk.internal.vm.compiler.word.LocationIdentity[]
      StackMap stack:
        20: aload 7
            iload 5
            aaload
            astore 4 /* p */
        start local 4 // jdk.internal.vm.compiler.word.LocationIdentity p
        21: .line 1400
            aload 3 /* kills */
            aload 4 /* p */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.remove:(Ljava/lang/Object;)V
        end local 4 // jdk.internal.vm.compiler.word.LocationIdentity p
        22: .line 1399
            iinc 5 1
      StackMap locals:
      StackMap stack:
        23: iload 5
            iload 6
            if_icmplt 20
        24: .line 1403
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 25
            aload 3 /* kills */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.isEmpty:()Z
            ifne 25
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "snippet graph kills non-private locations "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* kills */
            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
        25: .line 1404
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.MemoryMapNode jdk.internal.vm.compiler.collections.EconomicSet
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // jdk.internal.vm.compiler.collections.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   26     0              this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   26     1          replacee  Lorg/graalvm/compiler/nodes/ValueNode;
            5   26     2         memoryMap  Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;
            8   26     3             kills  Ljdk/internal/vm/compiler/collections/EconomicSet<Ljdk/internal/vm/compiler/word/LocationIdentity;>;
           11   15     4  locationIdentity  Ljdk/internal/vm/compiler/word/LocationIdentity;
           21   22     4                 p  Ljdk/internal/vm/compiler/word/LocationIdentity;
    MethodParameters:
          Name  Flags
      replacee  

  private void rewireMemoryGraph(org.graalvm.compiler.nodes.ValueNode, jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/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 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
         0: .line 1471
            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 1473
            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;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;)V
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.replaceMemoryUsages:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/MemoryMap;)V
         2: .line 1475
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            ifnull 9
         3: .line 1476
            aload 2 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            invokeinterface jdk.internal.vm.compiler.collections.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 1477
            aload 3 /* ret */
            ifnull 9
         5: .line 1478
            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 1479
            aload 4 /* memoryMap */
            ifnull 9
         7: .line 1480
            aload 3 /* ret */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.setMemoryMap:(Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;)V
         8: .line 1481
            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 1485
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            ifnull 17
        10: .line 1487
            aload 2 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            invokeinterface jdk.internal.vm.compiler.collections.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 1488
            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 1490
            aload 3 /* memoryDuplicate */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.hasNoUsages:()Z
            ifeq 17
        13: .line 1491
            aload 3 /* memoryDuplicate */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            ifnull 16
        14: .line 1492
            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 1493
            goto 17
        16: .line 1496
      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 1501
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.internal.vm.compiler.collections.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  Ljdk/internal/vm/compiler/collections/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;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;)V
    MethodParameters:
            Name  Flags
      replacee    
      duplicates  

  private static jdk.internal.vm.compiler.word.LocationIdentity getLocationIdentity(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)Ljdk/internal/vm/compiler/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 1504
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryAccess
            ifeq 2
         1: .line 1505
            aload 0 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryAccess
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryAccess.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            areturn
         2: .line 1506
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.spi.MemoryEdgeProxy
            ifeq 4
         3: .line 1507
            aload 0 /* node */
            checkcast org.graalvm.compiler.nodes.spi.MemoryEdgeProxy
            invokeinterface org.graalvm.compiler.nodes.spi.MemoryEdgeProxy.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            areturn
         4: .line 1508
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryPhiNode
            ifeq 6
         5: .line 1509
            aload 0 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryPhiNode
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryPhiNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            areturn
         6: .line 1511
      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 1516
            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 1517
            aload 3 /* usage */
            instanceof org.graalvm.compiler.nodes.memory.MemoryMapNode
            ifeq 4
         3: .line 1518
            goto 17
         4: .line 1521
      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;)Ljdk/internal/vm/compiler/word/LocationIdentity;
            astore 5 /* location */
        start local 5 // jdk.internal.vm.compiler.word.LocationIdentity location
         5: .line 1522
            aload 5 /* location */
            ifnull 17
         6: .line 1523
            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 jdk.internal.vm.compiler.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 1524
            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 1525
            aload 2 /* map */
            aload 5 /* location */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryMap.getLastLocationAccess:(Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryKill;
            astore 8 /* replacement */
        start local 8 // org.graalvm.compiler.nodes.memory.MemoryKill replacement
        10: .line 1526
            aload 8 /* replacement */
            ifnonnull 15
        11: .line 1527
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 16
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.mayRemoveLocation:Z
            ifne 16
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 5 /* location */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 16
        12: .line 1528
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.privateLocations:[Ljdk/internal/vm/compiler/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 1529
            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 1530
            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 1532
      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 jdk.internal.vm.compiler.word.LocationIdentity org.graalvm.compiler.graph.Position java.util.Iterator org.graalvm.compiler.nodes.memory.MemoryKill
      StackMap stack:
            aload 6 /* pos */
            aload 3 /* usage */
            aload 8 /* replacement */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryKill.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.MemoryKill replacement
        end local 6 // org.graalvm.compiler.graph.Position pos
        16: .line 1523
      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 jdk.internal.vm.compiler.word.LocationIdentity top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 5 // jdk.internal.vm.compiler.word.LocationIdentity location
        end local 3 // org.graalvm.compiler.graph.Node usage
        17: .line 1516
      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 1538
            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  Ljdk/internal/vm/compiler/word/LocationIdentity;
            8   16     6          pos  Lorg/graalvm/compiler/graph/Position;
           10   16     8  replacement  Lorg/graalvm/compiler/nodes/memory/MemoryKill;
    MethodParameters:
      Name  Flags
      node  
      map   

  public jdk.internal.vm.compiler.collections.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;)Ljdk/internal/vm/compiler/collections/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 1551
            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)Ljdk/internal/vm/compiler/collections/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;)Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
    MethodParameters:
            Name  Flags
      metaAccess  
      replacee    
      replacer    
      args        

  public jdk.internal.vm.compiler.collections.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)Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=21, 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 1566
            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 1567
            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 1568
      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 1569
            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 1571
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FixedNode
            astore 10 /* replaceeGraphPredecessor */
        start local 10 // org.graalvm.compiler.nodes.FixedNode replaceeGraphPredecessor
         6: .line 1572
            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 11 /* entryPointNode */
        start local 11 // org.graalvm.compiler.nodes.StartNode entryPointNode
         7: .line 1573
            aload 11 /* entryPointNode */
            invokevirtual org.graalvm.compiler.nodes.StartNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 12 /* firstCFGNode */
        start local 12 // org.graalvm.compiler.nodes.FixedNode firstCFGNode
         8: .line 1574
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 13 /* replaceeGraph */
        start local 13 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
         9: .line 1575
            aload 0 /* this */
            aload 13 /* 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;)Ljdk/internal/vm/compiler/collections/EconomicMap;
            astore 14 /* replacements */
        start local 14 // jdk.internal.vm.compiler.collections.EconomicMap replacements
        10: .line 1576
            aload 14 /* replacements */
            aload 11 /* entryPointNode */
            aload 2 /* replacee */
            invokestatic org.graalvm.compiler.nodes.AbstractBeginNode.prevBegin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 1577
            aload 0 /* this */
            aload 2 /* replacee */
            aload 6 /* debug */
            aload 13 /* replaceeGraph */
            aload 14 /* replacements */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.inlineSnippet:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/internal/vm/compiler/collections/EconomicMap;)Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;
            astore 15 /* duplicates */
        start local 15 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
        12: .line 1580
            aload 15 /* duplicates */
            aload 12 /* firstCFGNode */
            invokeinterface jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.FixedNode
            astore 16 /* firstCFGNodeDuplicate */
        start local 16 // org.graalvm.compiler.nodes.FixedNode firstCFGNodeDuplicate
        13: .line 1581
            aload 2 /* replacee */
            aload 16 /* firstCFGNodeDuplicate */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
        14: .line 1583
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.areFrameStatesAtSideEffects:()Z
            ifeq 23
        15: .line 1584
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 16
            aload 2 /* replacee */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokeinterface org.graalvm.compiler.nodes.StateSplit.hasSideEffect:()Z
            ifeq 16
            iconst_1
            goto 17
      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.FixedNode org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StructuredGraph jdk.internal.vm.compiler.collections.EconomicMap jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 17 /* replaceeHasSideEffect */
        start local 17 // boolean replaceeHasSideEffect
        18: .line 1585
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.sideEffectNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 19
            iconst_0
            goto 20
      StackMap locals: int
      StackMap stack:
        19: iconst_1
      StackMap locals:
      StackMap stack: int
        20: istore 18 /* replacementHasSideEffect */
        start local 18 // boolean replacementHasSideEffect
        21: .line 1594
            iload 18 /* replacementHasSideEffect */
            ifeq 23
        22: .line 1595
            iload 17 /* replaceeHasSideEffect */
            ldc "Lowering node %s without side-effect to snippet %s with sideeffects=%s"
            aload 2 /* replacee */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.sideEffectNodes:Ljava/util/ArrayList;
            invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 18 // boolean replacementHasSideEffect
        end local 17 // boolean replaceeHasSideEffect
        23: .line 1599
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* replacee */
            aload 15 /* duplicates */
            aload 10 /* replaceeGraphPredecessor */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireFrameStates:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;Lorg/graalvm/compiler/nodes/FixedNode;)V
        24: .line 1601
            aload 0 /* this */
            aload 2 /* replacee */
            aload 15 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.updateStamps:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;)V
        25: .line 1603
            aload 0 /* this */
            aload 2 /* replacee */
            aload 15 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireMemoryGraph:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;)V
        26: .line 1606
            aconst_null
            astore 17 /* returnValue */
        start local 17 // org.graalvm.compiler.nodes.ValueNode returnValue
        27: .line 1607
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            ifnull 47
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.ControlSinkNode
            ifne 47
        28: .line 1608
            aload 15 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            invokeinterface jdk.internal.vm.compiler.collections.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
        29: .line 1609
            aload 18 /* returnDuplicate */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 17 /* returnValue */
        30: .line 1610
            aload 17 /* returnValue */
            ifnonnull 33
            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 33
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.memory.MemoryKill
            ifeq 33
        31: .line 1611
            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
        32: .line 1612
            goto 35
        33: .line 1613
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ReturnNode
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 34
            aload 17 /* returnValue */
            ifnonnull 34
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.hasNoUsages:()Z
            ifne 34
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        34: .line 1614
      StackMap locals:
      StackMap stack:
            aload 3 /* replacer */
            aload 2 /* replacee */
            aload 17 /* returnValue */
            invokeinterface org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer.replace:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        35: .line 1616
      StackMap locals:
      StackMap stack:
            aload 18 /* returnDuplicate */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.isAlive:()Z
            ifeq 47
        36: .line 1617
            aconst_null
            astore 19 /* next */
        start local 19 // org.graalvm.compiler.nodes.FixedNode next
        37: .line 1618
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.FixedWithNextNode
            ifeq 42
        38: .line 1619
            aload 2 /* replacee */
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            astore 20 /* fwn */
        start local 20 // org.graalvm.compiler.nodes.FixedWithNextNode fwn
        39: .line 1620
            aload 20 /* fwn */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 19 /* next */
        40: .line 1621
            aload 20 /* fwn */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        end local 20 // org.graalvm.compiler.nodes.FixedWithNextNode fwn
        41: .line 1622
            goto 46
      StackMap locals: org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
        42: aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.WithExceptionNode
            ifeq 46
        43: .line 1623
            aload 2 /* replacee */
            checkcast org.graalvm.compiler.nodes.WithExceptionNode
            astore 20 /* withExceptionNode */
        start local 20 // org.graalvm.compiler.nodes.WithExceptionNode withExceptionNode
        44: .line 1624
            aload 20 /* withExceptionNode */
            invokevirtual org.graalvm.compiler.nodes.WithExceptionNode.next:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            astore 19 /* next */
        45: .line 1625
            aload 20 /* withExceptionNode */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.WithExceptionNode.setNext:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
        end local 20 // org.graalvm.compiler.nodes.WithExceptionNode withExceptionNode
        46: .line 1627
      StackMap locals:
      StackMap stack:
            aload 18 /* returnDuplicate */
            aload 19 /* next */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        end local 19 // org.graalvm.compiler.nodes.FixedNode next
        end local 18 // org.graalvm.compiler.nodes.ReturnNode returnDuplicate
        47: .line 1630
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.unwindPath:Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            ifnull 59
        48: .line 1631
            aload 2 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isAfterFloatingReadPhase:()Z
            ifeq 49
            iconst_0
            goto 50
      StackMap locals:
      StackMap stack:
        49: iconst_1
      StackMap locals:
      StackMap stack: int
        50: ldc "Using a snippet with an UnwindNode after floating reads would require support for the memory graph"
            invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;)V
        51: .line 1632
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.WithExceptionNode
            ldc "Snippet has an UnwindNode, but replacee is not a node with an exception handler"
            invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;)V
        52: .line 1634
            aload 15 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.unwindPath:Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            invokeinterface jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            astore 18 /* unwindPathDuplicate */
        start local 18 // org.graalvm.compiler.nodes.FixedWithNextNode unwindPathDuplicate
        53: .line 1635
            aload 2 /* replacee */
            checkcast org.graalvm.compiler.nodes.WithExceptionNode
            astore 19 /* withExceptionNode */
        start local 19 // org.graalvm.compiler.nodes.WithExceptionNode withExceptionNode
        54: .line 1636
            aload 19 /* withExceptionNode */
            invokevirtual org.graalvm.compiler.nodes.WithExceptionNode.exceptionEdge:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            astore 20 /* exceptionEdge */
        start local 20 // org.graalvm.compiler.nodes.AbstractBeginNode exceptionEdge
        55: .line 1637
            aload 19 /* withExceptionNode */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.WithExceptionNode.setExceptionEdge:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
        56: .line 1638
            aload 18 /* unwindPathDuplicate */
            aload 20 /* exceptionEdge */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
        57: .line 1639
            aload 18 /* unwindPathDuplicate */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        end local 20 // org.graalvm.compiler.nodes.AbstractBeginNode exceptionEdge
        end local 19 // org.graalvm.compiler.nodes.WithExceptionNode withExceptionNode
        end local 18 // org.graalvm.compiler.nodes.FixedWithNextNode unwindPathDuplicate
        58: .line 1641
            goto 62
        59: .line 1642
      StackMap locals:
      StackMap stack:
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.WithExceptionNode
            ifeq 60
            iconst_0
            goto 61
      StackMap locals:
      StackMap stack:
        60: iconst_1
      StackMap locals:
      StackMap stack: int
        61: ldc "Snippet does not have an UnwindNode, but replacee is a node with an exception handler"
            invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;)V
        62: .line 1645
      StackMap locals:
      StackMap stack:
            iload 5 /* killReplacee */
            ifeq 64
        63: .line 1647
            aload 2 /* replacee */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        64: .line 1650
      StackMap locals:
      StackMap stack:
            aload 6 /* debug */
            iconst_4
            aload 13 /* 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
        65: .line 1651
            aload 15 /* duplicates */
        66: .line 1652
            aload 9 /* a */
            ifnull 67
            aload 9 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        67: .line 1651
      StackMap locals:
      StackMap stack: jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap
            areturn
        end local 17 // org.graalvm.compiler.nodes.ValueNode returnValue
        end local 16 // org.graalvm.compiler.nodes.FixedNode firstCFGNodeDuplicate
        end local 15 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
        end local 14 // jdk.internal.vm.compiler.collections.EconomicMap replacements
        end local 13 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        end local 12 // org.graalvm.compiler.nodes.FixedNode firstCFGNode
        end local 11 // org.graalvm.compiler.nodes.StartNode entryPointNode
        end local 10 // org.graalvm.compiler.nodes.FixedNode replaceeGraphPredecessor
      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
        68: astore 7
        69: .line 1652
            aload 9 /* a */
            ifnull 70
            aload 9 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 9 // org.graalvm.compiler.debug.DebugCloseable a
      StackMap locals:
      StackMap stack:
        70: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        71: astore 8
            aload 7
            ifnonnull 72
            aload 8
            astore 7
            goto 73
      StackMap locals:
      StackMap stack:
        72: aload 7
            aload 8
            if_acmpeq 73
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        73: 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   74     0                      this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   74     1                metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   74     2                  replacee  Lorg/graalvm/compiler/nodes/FixedNode;
            0   74     3                  replacer  Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            0   74     4                      args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            0   74     5              killReplacee  Z
            1   74     6                     debug  Lorg/graalvm/compiler/debug/DebugContext;
            4   70     9                         a  Lorg/graalvm/compiler/debug/DebugCloseable;
            6   68    10  replaceeGraphPredecessor  Lorg/graalvm/compiler/nodes/FixedNode;
            7   68    11            entryPointNode  Lorg/graalvm/compiler/nodes/StartNode;
            8   68    12              firstCFGNode  Lorg/graalvm/compiler/nodes/FixedNode;
            9   68    13             replaceeGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           10   68    14              replacements  Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           12   68    15                duplicates  Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           13   68    16     firstCFGNodeDuplicate  Lorg/graalvm/compiler/nodes/FixedNode;
           18   23    17     replaceeHasSideEffect  Z
           21   23    18  replacementHasSideEffect  Z
           27   68    17               returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
           29   47    18           returnDuplicate  Lorg/graalvm/compiler/nodes/ReturnNode;
           37   47    19                      next  Lorg/graalvm/compiler/nodes/FixedNode;
           39   41    20                       fwn  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
           44   46    20         withExceptionNode  Lorg/graalvm/compiler/nodes/WithExceptionNode;
           53   58    18       unwindPathDuplicate  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
           54   58    19         withExceptionNode  Lorg/graalvm/compiler/nodes/WithExceptionNode;
           55   58    20             exceptionEdge  Lorg/graalvm/compiler/nodes/AbstractBeginNode;
      Exception table:
        from    to  target  type
           4    66      68  any
           3    67      71  any
          68    71      71  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)Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
    MethodParameters:
              Name  Flags
      metaAccess    
      replacee      
      replacer      
      args          
      killReplacee  

  private jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node> inlineSnippet(org.graalvm.compiler.graph.Node, org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.nodes.StructuredGraph, jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>);
    descriptor: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/internal/vm/compiler/collections/EconomicMap;)Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.graph.Node replacee
        start local 2 // org.graalvm.compiler.debug.DebugContext debug
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        start local 4 // jdk.internal.vm.compiler.collections.EconomicMap replacements
         0: .line 1656
            aload 3 /* replaceeGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getMark:()Lorg/graalvm/compiler/graph/Graph$Mark;
            astore 5 /* mark */
        start local 5 // org.graalvm.compiler.graph.Graph$Mark mark
         1: .line 1657
            aconst_null
            astore 6
            aconst_null
            astore 7
         2: aload 3 /* replaceeGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getInliningLog:()Lorg/graalvm/compiler/nodes/InliningLog;
            aload 3 /* replaceeGraph */
            invokedynamic accept(Lorg/graalvm/compiler/nodes/StructuredGraph;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/graalvm/compiler/replacements/SnippetTemplate.lambda$0(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/Invokable;Lorg/graalvm/compiler/nodes/Invokable;)V (6)
                  (Lorg/graalvm/compiler/nodes/Invokable;Lorg/graalvm/compiler/nodes/Invokable;)V
            invokevirtual org.graalvm.compiler.nodes.InliningLog.openUpdateScope:(Ljava/util/function/BiConsumer;)Lorg/graalvm/compiler/nodes/InliningLog$UpdateScope;
            astore 8 /* scope */
        start local 8 // org.graalvm.compiler.nodes.InliningLog$UpdateScope scope
         3: .line 1663
            aload 3 /* 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 4 /* replacements */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addDuplicates:(Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph;ILjdk/internal/vm/compiler/collections/EconomicMap;)Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;
            astore 9 /* duplicates */
        start local 9 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
         4: .line 1664
            aload 8 /* scope */
            ifnull 6
         5: .line 1665
            aload 3 /* replaceeGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getInliningLog:()Lorg/graalvm/compiler/nodes/InliningLog;
            aload 9 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getInliningLog:()Lorg/graalvm/compiler/nodes/InliningLog;
            invokevirtual org.graalvm.compiler.nodes.InliningLog.addLog:(Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;Lorg/graalvm/compiler/nodes/InliningLog;)V
         6: .line 1667
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.StructuredGraph jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.graph.Graph$Mark java.lang.Throwable java.lang.Throwable org.graalvm.compiler.nodes.InliningLog$UpdateScope jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap
      StackMap stack:
            aload 1 /* replacee */
            invokevirtual org.graalvm.compiler.graph.Node.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
            astore 10 /* position */
        start local 10 // org.graalvm.compiler.graph.NodeSourcePosition position
         7: .line 1668
            aload 3 /* replaceeGraph */
            aload 9 /* duplicates */
            aload 5 /* mark */
            aload 10 /* position */
            iconst_1
            invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.updateSourcePosition:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;Lorg/graalvm/compiler/graph/Graph$Mark;Lorg/graalvm/compiler/graph/NodeSourcePosition;Z)V
         8: .line 1669
            aload 2 /* debug */
            iconst_4
            aload 3 /* 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
         9: .line 1670
            aload 9 /* duplicates */
        10: .line 1671
            aload 8 /* scope */
            ifnull 11
            aload 8 /* scope */
            invokevirtual org.graalvm.compiler.nodes.InliningLog$UpdateScope.close:()V
        11: .line 1670
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.StructuredGraph jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.graph.Graph$Mark java.lang.Throwable java.lang.Throwable org.graalvm.compiler.nodes.InliningLog$UpdateScope jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap org.graalvm.compiler.graph.NodeSourcePosition
      StackMap stack: jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap
            areturn
        end local 10 // org.graalvm.compiler.graph.NodeSourcePosition position
        end local 9 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.StructuredGraph jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.graph.Graph$Mark java.lang.Throwable java.lang.Throwable org.graalvm.compiler.nodes.InliningLog$UpdateScope
      StackMap stack: java.lang.Throwable
        12: astore 6
        13: .line 1671
            aload 8 /* scope */
            ifnull 14
            aload 8 /* scope */
            invokevirtual org.graalvm.compiler.nodes.InliningLog$UpdateScope.close:()V
        end local 8 // org.graalvm.compiler.nodes.InliningLog$UpdateScope scope
      StackMap locals:
      StackMap stack:
        14: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 7
            aload 6
            ifnonnull 16
            aload 7
            astore 6
            goto 17
      StackMap locals:
      StackMap stack:
        16: aload 6
            aload 7
            if_acmpeq 17
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        17: aload 6
            athrow
        end local 5 // org.graalvm.compiler.graph.Graph$Mark mark
        end local 4 // jdk.internal.vm.compiler.collections.EconomicMap replacements
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        end local 2 // org.graalvm.compiler.debug.DebugContext debug
        end local 1 // org.graalvm.compiler.graph.Node 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/graph/Node;
            0   18     2          debug  Lorg/graalvm/compiler/debug/DebugContext;
            0   18     3  replaceeGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   18     4   replacements  Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
            1   18     5           mark  Lorg/graalvm/compiler/graph/Graph$Mark;
            3   14     8          scope  Lorg/graalvm/compiler/nodes/InliningLog$UpdateScope;
            4   12     9     duplicates  Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
            7   12    10       position  Lorg/graalvm/compiler/graph/NodeSourcePosition;
      Exception table:
        from    to  target  type
           3    10      12  any
           2    11      15  any
          12    15      15  any
    Signature: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;)Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
    MethodParameters:
               Name  Flags
      replacee       
      debug          
      replaceeGraph  
      replacements   

  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 1675
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifeq 7
         1: .line 1676
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 2 /* phi */
        start local 2 // org.graalvm.compiler.nodes.PhiNode phi
         2: .line 1677
            aload 2 /* phi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.inferStamp:()Z
            ifeq 7
         3: .line 1678
            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 1679
            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 1678
      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 1683
      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, jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/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 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
         0: .line 1686
            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 jdk.internal.vm.compiler.collections.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 1687
            aload 2 /* duplicates */
            aload 3 /* node */
            invokeinterface jdk.internal.vm.compiler.collections.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 1688
            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 1689
            aload 3 /* node */
            instanceof org.graalvm.compiler.nodes.PiNode$Placeholder
            ifeq 8
         5: .line 1690
            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 1691
            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 1692
            goto 9
         8: .line 1693
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode jdk.internal.vm.compiler.collections.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 1686
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        10: .line 1696
            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 1697
            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 jdk.internal.vm.compiler.collections.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 1698
            aload 2 /* duplicates */
            aload 5 /* usage */
            invokeinterface jdk.internal.vm.compiler.collections.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 1699
            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 1697
      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 1696
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        18: .line 1702
            return
        end local 2 // jdk.internal.vm.compiler.collections.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  Ljdk/internal/vm/compiler/collections/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;Ljdk/internal/vm/compiler/collections/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 1708
            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 1722
            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 1723
            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 1724
      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 1725
            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 1728
            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 1729
            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 1730
            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 1731
            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;)Ljdk/internal/vm/compiler/collections/EconomicMap;
            astore 13 /* replacements */
        start local 13 // jdk.internal.vm.compiler.collections.EconomicMap replacements
         9: .line 1732
            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 jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1733
            aload 0 /* this */
            aload 2 /* replacee */
            aload 6 /* debug */
            aload 12 /* replaceeGraph */
            aload 13 /* replacements */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.inlineSnippet:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/internal/vm/compiler/collections/EconomicMap;)Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;
            astore 14 /* duplicates */
        start local 14 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
        11: .line 1735
            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
        12: .line 1736
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 14
            aload 15 /* lastFixedNode */
            ifnull 13
            aload 15 /* lastFixedNode */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.isAlive:()Z
            ifne 14
      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 jdk.internal.vm.compiler.collections.EconomicMap jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap org.graalvm.compiler.nodes.FixedWithNextNode
      StackMap stack:
        13: 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
        14: .line 1737
      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
        15: .line 1738
            aload 15 /* lastFixedNode */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        16: .line 1739
            aload 14 /* duplicates */
            aload 11 /* firstCFGNode */
            invokeinterface jdk.internal.vm.compiler.collections.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
        17: .line 1740
            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
        18: .line 1746
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 19
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 1747
      StackMap locals: org.graalvm.compiler.nodes.FixedNode 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;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;)V
        20: .line 1749
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireMemoryGraph:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;)V
        21: .line 1751
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            aload 15 /* lastFixedNode */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireFrameStates:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;Lorg/graalvm/compiler/nodes/FixedNode;)V
        22: .line 1754
            aload 14 /* duplicates */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.returnNode:Lorg/graalvm/compiler/nodes/ReturnNode;
            invokeinterface jdk.internal.vm.compiler.collections.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 1755
            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 1756
            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 1757
      StackMap locals: 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 1759
            aload 18 /* returnDuplicate */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.isAlive:()Z
            ifeq 28
        27: .line 1760
            aload 18 /* returnDuplicate */
            aload 16 /* next */
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        28: .line 1763
      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 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
        end local 13 // jdk.internal.vm.compiler.collections.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 1764
            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 1765
      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  Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           11   29    14             duplicates  Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           12   29    15          lastFixedNode  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
           15   29    16                   next  Lorg/graalvm/compiler/nodes/FixedNode;
           17   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 1779
            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 1780
            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 1781
      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 1782
            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 1785
            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 1786
            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 1787
      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 1788
            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;)Ljdk/internal/vm/compiler/collections/EconomicMap;
            astore 11 /* replacements */
        start local 11 // jdk.internal.vm.compiler.collections.EconomicMap replacements
        11: .line 1789
            aconst_null
            astore 12 /* anchorDuplicate */
        start local 12 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchorDuplicate
        12: .line 1790
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            ifnull 15
        13: .line 1791
            aload 10 /* replaceeGraph */
            new org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.privateLocations:[Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokespecial org.graalvm.compiler.nodes.memory.MemoryAnchorNode.<init>:([Ljdk/internal/vm/compiler/word/LocationIdentity;)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 1792
            aload 11 /* replacements */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.memoryAnchor:Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            aload 12 /* anchorDuplicate */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 1794
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph jdk.internal.vm.compiler.collections.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 1795
            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 jdk.internal.vm.compiler.collections.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 1796
            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 1797
            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 1795
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        21: .line 1800
            aload 0 /* this */
            aload 2 /* replacee */
            aload 5 /* debug */
            aload 10 /* replaceeGraph */
            aload 11 /* replacements */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.inlineSnippet:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/internal/vm/compiler/collections/EconomicMap;)Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;
            astore 14 /* duplicates */
        start local 14 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
        22: .line 1803
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 23
            aload 2 /* replacee */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 23
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        23: .line 1804
      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 jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.memory.MemoryAnchorNode java.util.List jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap
      StackMap stack:
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.updateStamps:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;)V
        24: .line 1806
            aload 0 /* this */
            aload 2 /* replacee */
            aload 14 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireMemoryGraph:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;)V
        25: .line 1807
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 26
            aload 12 /* anchorDuplicate */
            ifnull 26
            aload 12 /* anchorDuplicate */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.isDeleted:()Z
            ifne 26
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        26: .line 1810
      StackMap locals:
      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 jdk.internal.vm.compiler.collections.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
        27: .line 1811
            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
        28: .line 1813
            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 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
        end local 13 // java.util.List floatingNodes
        end local 12 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchorDuplicate
        end local 11 // jdk.internal.vm.compiler.collections.EconomicMap replacements
        end local 10 // org.graalvm.compiler.nodes.StructuredGraph replaceeGraph
        end local 9 // org.graalvm.compiler.nodes.StartNode entryPointNode
        29: .line 1814
            aload 8 /* a */
            ifnull 35
            aload 8 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
            goto 35
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer org.graalvm.compiler.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 6
            aload 8 /* a */
            ifnull 31
            aload 8 /* a */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 8 // org.graalvm.compiler.debug.DebugCloseable a
      StackMap locals:
      StackMap stack:
        31: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 7
            aload 6
            ifnonnull 33
            aload 7
            astore 6
            goto 34
      StackMap locals:
      StackMap stack:
        33: aload 6
            aload 7
            if_acmpeq 34
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        34: aload 6
            athrow
        35: .line 1815
      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   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             args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            1   36     5            debug  Lorg/graalvm/compiler/debug/DebugContext;
            4   31     8                a  Lorg/graalvm/compiler/debug/DebugCloseable;
            6   29     9   entryPointNode  Lorg/graalvm/compiler/nodes/StartNode;
           10   29    10    replaceeGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           11   29    11     replacements  Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           12   29    12  anchorDuplicate  Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
           16   29    13    floatingNodes  Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
           18   20    14                n  Lorg/graalvm/compiler/graph/Node;
           22   29    14       duplicates  Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
           27   29    15      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    
      args        

  protected void rewireFrameStates(org.graalvm.compiler.nodes.ValueNode, jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>, org.graalvm.compiler.nodes.FixedNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;Lorg/graalvm/compiler/nodes/FixedNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.nodes.ValueNode replacee
        start local 2 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
        start local 3 // org.graalvm.compiler.nodes.FixedNode replaceeGraphCFGPredecessor
         0: .line 1818
            aload 1 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.areFrameStatesAtSideEffects:()Z
            ifeq 3
            aload 0 /* this */
            aload 1 /* replacee */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.requiresFrameStateProcessingBeforeFSA:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifeq 3
         1: .line 1819
            aload 0 /* this */
            aload 1 /* replacee */
            aload 2 /* duplicates */
            aload 3 /* replaceeGraphCFGPredecessor */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireFrameStatesBeforeFSA:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;Lorg/graalvm/compiler/nodes/FixedNode;)V
         2: .line 1820
            goto 5
      StackMap locals:
      StackMap stack:
         3: aload 1 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.areFrameStatesAtDeopts:()Z
            ifeq 5
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode
            ifeq 5
         4: .line 1821
            aload 0 /* this */
            aload 1 /* replacee */
            aload 2 /* duplicates */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.rewireFrameStatesAfterFSA:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;)V
         5: .line 1823
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.nodes.FixedNode replaceeGraphCFGPredecessor
        end local 2 // jdk.internal.vm.compiler.collections.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    6     0                         this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0    6     1                     replacee  Lorg/graalvm/compiler/nodes/ValueNode;
            0    6     2                   duplicates  Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
            0    6     3  replaceeGraphCFGPredecessor  Lorg/graalvm/compiler/nodes/FixedNode;
    Signature: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;Lorg/graalvm/compiler/nodes/FixedNode;)V
    MethodParameters:
                             Name  Flags
      replacee                     
      duplicates                   
      replaceeGraphCFGPredecessor  

  private boolean requiresFrameStateProcessingBeforeFSA(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.nodes.ValueNode replacee
         0: .line 1826
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifne 1
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.frameStateAssignment:Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure;
            ifnonnull 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        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    2     0      this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0    2     1  replacee  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
          Name  Flags
      replacee  

  private void rewireFrameStatesBeforeFSA(org.graalvm.compiler.nodes.ValueNode, jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>, org.graalvm.compiler.nodes.FixedNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;Lorg/graalvm/compiler/nodes/FixedNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.nodes.ValueNode replacee
        start local 2 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
        start local 3 // org.graalvm.compiler.nodes.FixedNode replaceeGraphCFGPredecessor
         0: .line 1830
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 22
            aload 1 /* replacee */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokeinterface org.graalvm.compiler.nodes.StateSplit.hasSideEffect:()Z
            ifeq 22
            aload 1 /* replacee */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            ifnull 22
         1: .line 1841
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.sideEffectNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 21
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap org.graalvm.compiler.nodes.FixedNode top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.StateSplit
            astore 4 /* sideEffectNode */
        start local 4 // org.graalvm.compiler.nodes.StateSplit sideEffectNode
         3: .line 1842
            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 1843
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StateSplit java.util.Iterator
      StackMap stack:
            aload 2 /* duplicates */
            aload 4 /* sideEffectNode */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokeinterface jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 6 /* sideEffectDup */
        start local 6 // org.graalvm.compiler.graph.Node sideEffectDup
         5: .line 1844
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 6
            aload 6 /* sideEffectDup */
            ifnonnull 6
            new java.lang.AssertionError
            dup
            aload 4 /* sideEffectNode */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 1845
      StackMap locals: org.graalvm.compiler.graph.Node
      StackMap stack:
            aload 1 /* replacee */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 7 /* stateAfter */
        start local 7 // org.graalvm.compiler.nodes.FrameState stateAfter
         7: .line 1846
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 8
            aload 7 /* stateAfter */
            ifnonnull 8
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "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 " has no state after"
            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
         8: .line 1848
      StackMap locals: org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 6 /* sideEffectDup */
            instanceof org.graalvm.compiler.nodes.DeoptBciSupplier
            ifeq 11
         9: .line 1849
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.DeoptBciSupplier
            ifeq 11
        10: .line 1850
            aload 6 /* sideEffectDup */
            checkcast org.graalvm.compiler.nodes.DeoptBciSupplier
            aload 1 /* replacee */
            checkcast org.graalvm.compiler.nodes.DeoptBciSupplier
            invokeinterface org.graalvm.compiler.nodes.DeoptBciSupplier.bci:()I
            invokeinterface org.graalvm.compiler.nodes.DeoptBciSupplier.setBci:(I)V
        11: .line 1853
      StackMap locals:
      StackMap stack:
            aload 7 /* stateAfter */
            invokevirtual org.graalvm.compiler.nodes.FrameState.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            aload 1 /* replacee */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.contains:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 20
        12: .line 1854
            aload 7 /* stateAfter */
            invokevirtual org.graalvm.compiler.nodes.FrameState.duplicate:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 8 /* duplicated */
        start local 8 // org.graalvm.compiler.nodes.FrameState duplicated
        13: .line 1855
            aload 2 /* 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 jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 9 /* valueInReplacement */
        start local 9 // org.graalvm.compiler.nodes.ValueNode valueInReplacement
        14: .line 1856
            aload 9 /* valueInReplacement */
            instanceof org.graalvm.compiler.nodes.ValuePhiNode
            ifeq 16
        15: .line 1857
            aload 6 /* sideEffectDup */
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 9 /* valueInReplacement */
        16: .line 1859
      StackMap locals: org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 9 /* valueInReplacement */
            astore 10 /* replacement */
        start local 10 // org.graalvm.compiler.nodes.ValueNode replacement
        17: .line 1860
            aload 8 /* duplicated */
            new org.graalvm.compiler.replacements.SnippetTemplate$2
            dup
            aload 0 /* this */
            aload 1 /* replacee */
            aload 10 /* replacement */
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$2.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.FrameState.applyToNonVirtual:(Lorg/graalvm/compiler/nodes/VirtualState$NodePositionClosure;)V
        18: .line 1868
            aload 6 /* sideEffectDup */
            checkcast org.graalvm.compiler.nodes.StateSplit
            aload 8 /* duplicated */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        end local 10 // org.graalvm.compiler.nodes.ValueNode replacement
        end local 9 // org.graalvm.compiler.nodes.ValueNode valueInReplacement
        end local 8 // org.graalvm.compiler.nodes.FrameState duplicated
        19: .line 1869
            goto 21
        20: .line 1870
      StackMap locals:
      StackMap stack:
            aload 6 /* 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 7 // org.graalvm.compiler.nodes.FrameState stateAfter
        end local 6 // org.graalvm.compiler.graph.Node sideEffectDup
        end local 4 // org.graalvm.compiler.nodes.StateSplit sideEffectNode
        21: .line 1841
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap org.graalvm.compiler.nodes.FixedNode top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        22: .line 1874
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.frameStateAssignment:Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure;
            ifnull 24
        23: .line 1875
            aload 0 /* this */
            aload 1 /* replacee */
            aload 2 /* duplicates */
            aload 3 /* replaceeGraphCFGPredecessor */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.assignNecessaryFrameStates:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;Lorg/graalvm/compiler/nodes/FixedNode;)V
        24: .line 1877
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.nodes.FixedNode replaceeGraphCFGPredecessor
        end local 2 // jdk.internal.vm.compiler.collections.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   25     0                         this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   25     1                     replacee  Lorg/graalvm/compiler/nodes/ValueNode;
            0   25     2                   duplicates  Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
            0   25     3  replaceeGraphCFGPredecessor  Lorg/graalvm/compiler/nodes/FixedNode;
            3   21     4               sideEffectNode  Lorg/graalvm/compiler/nodes/StateSplit;
            5   21     6                sideEffectDup  Lorg/graalvm/compiler/graph/Node;
            7   21     7                   stateAfter  Lorg/graalvm/compiler/nodes/FrameState;
           13   19     8                   duplicated  Lorg/graalvm/compiler/nodes/FrameState;
           14   19     9           valueInReplacement  Lorg/graalvm/compiler/nodes/ValueNode;
           17   19    10                  replacement  Lorg/graalvm/compiler/nodes/ValueNode;
    Signature: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;Lorg/graalvm/compiler/nodes/FixedNode;)V
    MethodParameters:
                             Name  Flags
      replacee                     
      duplicates                   
      replaceeGraphCFGPredecessor  

  private void assignNecessaryFrameStates(org.graalvm.compiler.nodes.ValueNode, jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>, org.graalvm.compiler.nodes.FixedNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;Lorg/graalvm/compiler/nodes/FixedNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.nodes.ValueNode replacee
        start local 2 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
        start local 3 // org.graalvm.compiler.nodes.FixedNode replaceeGraphCFGPredecessor
         0: .line 1880
            aconst_null
            astore 4 /* stateAfter */
        start local 4 // org.graalvm.compiler.nodes.FrameState stateAfter
         1: .line 1881
            aload 1 /* replacee */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 4
            aload 1 /* replacee */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokeinterface org.graalvm.compiler.nodes.StateSplit.hasSideEffect:()Z
            ifeq 4
         2: .line 1882
            aload 1 /* replacee */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 4 /* stateAfter */
         3: .line 1883
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 5
            aload 4 /* stateAfter */
            ifnonnull 5
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Statesplit with side-effect needs a framestate "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* replacee */
            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 1889
      StackMap locals: org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 3 /* replaceeGraphCFGPredecessor */
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.findLastFrameState:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/FrameState;
            astore 4 /* stateAfter */
         5: .line 1891
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate.frameStateAssignment:Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure;
            invokevirtual org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure.getStateMapping:()Lorg/graalvm/compiler/graph/NodeMap;
            astore 5 /* assignedStateMappings */
        start local 5 // org.graalvm.compiler.graph.NodeMap assignedStateMappings
         6: .line 1892
            aload 5 /* assignedStateMappings */
            invokevirtual org.graalvm.compiler.graph.NodeMap.getEntries:()Ljdk/internal/vm/compiler/collections/MapCursor;
            astore 6 /* stateAssignments */
        start local 6 // jdk.internal.vm.compiler.collections.MapCursor stateAssignments
         7: .line 1893
            goto 25
         8: .line 1894
      StackMap locals: org.graalvm.compiler.graph.NodeMap jdk.internal.vm.compiler.collections.MapCursor
      StackMap stack:
            aload 6 /* stateAssignments */
            invokeinterface jdk.internal.vm.compiler.collections.MapCursor.getKey:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 7 /* nodeRequiringState */
        start local 7 // org.graalvm.compiler.graph.Node nodeRequiringState
         9: .line 1895
            aload 6 /* stateAssignments */
            invokeinterface jdk.internal.vm.compiler.collections.MapCursor.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment
            astore 8 /* assignment */
        start local 8 // org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment assignment
        10: .line 1896
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.$SWITCH_TABLE$org$graalvm$compiler$phases$common$SnippetFrameStateAssignment$NodeStateAssignment:()[I
            aload 8 /* assignment */
            invokevirtual org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 17
                    2: 11
                    3: 20
              default: 21
          }
        11: .line 1898
      StackMap locals: org.graalvm.compiler.graph.Node org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment
      StackMap stack:
            aload 4 /* stateAfter */
            invokevirtual org.graalvm.compiler.nodes.FrameState.duplicate:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 9 /* newState */
        start local 9 // org.graalvm.compiler.nodes.FrameState newState
        12: .line 1899
            aload 4 /* stateAfter */
            invokevirtual org.graalvm.compiler.nodes.FrameState.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            aload 1 /* replacee */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.contains:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 15
        13: .line 1900
            aload 2 /* 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 jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 10 /* valueInReplacement */
        start local 10 // org.graalvm.compiler.nodes.ValueNode valueInReplacement
        14: .line 1901
            aload 9 /* newState */
            new org.graalvm.compiler.replacements.SnippetTemplate$3
            dup
            aload 0 /* this */
            aload 1 /* replacee */
            aload 10 /* valueInReplacement */
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$3.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.FrameState.applyToNonVirtual:(Lorg/graalvm/compiler/nodes/VirtualState$NodePositionClosure;)V
        end local 10 // org.graalvm.compiler.nodes.ValueNode valueInReplacement
        15: .line 1910
      StackMap locals: org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 2 /* duplicates */
            aload 7 /* nodeRequiringState */
            invokeinterface jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.StateSplit
            aload 9 /* newState */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        16: .line 1911
            goto 22
        end local 9 // org.graalvm.compiler.nodes.FrameState newState
        17: .line 1913
      StackMap locals:
      StackMap stack:
            aload 3 /* replaceeGraphCFGPredecessor */
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.findLastFrameState:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/FrameState;
            astore 10 /* stateBeforeSnippet */
        start local 10 // org.graalvm.compiler.nodes.FrameState stateBeforeSnippet
        18: .line 1914
            aload 2 /* duplicates */
            aload 7 /* nodeRequiringState */
            invokeinterface jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.StateSplit
            aload 10 /* stateBeforeSnippet */
            invokevirtual org.graalvm.compiler.nodes.FrameState.duplicate:()Lorg/graalvm/compiler/nodes/FrameState;
            invokeinterface org.graalvm.compiler.nodes.StateSplit.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        19: .line 1915
            goto 22
        end local 10 // org.graalvm.compiler.nodes.FrameState stateBeforeSnippet
        20: .line 1921
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Invalid snippet replacing a node before frame state assignment with node "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* nodeRequiringState */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " for 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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        21: .line 1923
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Unknown StateAssigment:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* assignment */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        22: .line 1925
      StackMap locals:
      StackMap stack:
            aload 1 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            iconst_5
        23: .line 1926
            aload 1 /* replacee */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "After duplicating after state for node %s in snippet"
            aload 2 /* duplicates */
            aload 7 /* nodeRequiringState */
            invokeinterface jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
        24: .line 1925
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        end local 8 // org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment assignment
        end local 7 // org.graalvm.compiler.graph.Node nodeRequiringState
        25: .line 1893
      StackMap locals:
      StackMap stack:
            aload 6 /* stateAssignments */
            invokeinterface jdk.internal.vm.compiler.collections.MapCursor.advance:()Z
            ifne 8
        26: .line 1928
            return
        end local 6 // jdk.internal.vm.compiler.collections.MapCursor stateAssignments
        end local 5 // org.graalvm.compiler.graph.NodeMap assignedStateMappings
        end local 4 // org.graalvm.compiler.nodes.FrameState stateAfter
        end local 3 // org.graalvm.compiler.nodes.FixedNode replaceeGraphCFGPredecessor
        end local 2 // jdk.internal.vm.compiler.collections.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   27     0                         this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   27     1                     replacee  Lorg/graalvm/compiler/nodes/ValueNode;
            0   27     2                   duplicates  Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
            0   27     3  replaceeGraphCFGPredecessor  Lorg/graalvm/compiler/nodes/FixedNode;
            1   27     4                   stateAfter  Lorg/graalvm/compiler/nodes/FrameState;
            6   27     5        assignedStateMappings  Lorg/graalvm/compiler/graph/NodeMap<Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$NodeStateAssignment;>;
            7   27     6             stateAssignments  Ljdk/internal/vm/compiler/collections/MapCursor<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$NodeStateAssignment;>;
            9   25     7           nodeRequiringState  Lorg/graalvm/compiler/graph/Node;
           10   25     8                   assignment  Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$NodeStateAssignment;
           12   17     9                     newState  Lorg/graalvm/compiler/nodes/FrameState;
           14   15    10           valueInReplacement  Lorg/graalvm/compiler/nodes/ValueNode;
           18   20    10           stateBeforeSnippet  Lorg/graalvm/compiler/nodes/FrameState;
    Signature: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;Lorg/graalvm/compiler/nodes/FixedNode;)V
    MethodParameters:
                             Name  Flags
      replacee                     
      duplicates                   
      replaceeGraphCFGPredecessor  

  private void rewireFrameStatesAfterFSA(org.graalvm.compiler.nodes.ValueNode, jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node>);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate this
        start local 1 // org.graalvm.compiler.nodes.ValueNode replacee
        start local 2 // jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap duplicates
         0: .line 1931
            aload 1 /* replacee */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            astore 3 /* replaceeDeopt */
        start local 3 // org.graalvm.compiler.nodes.DeoptimizingNode replaceeDeopt
         1: .line 1932
            aconst_null
            astore 4 /* stateBefore */
        start local 4 // org.graalvm.compiler.nodes.FrameState stateBefore
         2: .line 1933
            aconst_null
            astore 5 /* stateDuring */
        start local 5 // org.graalvm.compiler.nodes.FrameState stateDuring
         3: .line 1934
            aconst_null
            astore 6 /* stateAfter */
        start local 6 // org.graalvm.compiler.nodes.FrameState stateAfter
         4: .line 1935
            aload 3 /* replaceeDeopt */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode.canDeoptimize:()Z
            ifeq 11
         5: .line 1936
            aload 3 /* replaceeDeopt */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            ifeq 7
         6: .line 1937
            aload 3 /* replaceeDeopt */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore.stateBefore:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 4 /* stateBefore */
         7: .line 1939
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap org.graalvm.compiler.nodes.DeoptimizingNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 3 /* replaceeDeopt */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
            ifeq 9
         8: .line 1940
            aload 3 /* replaceeDeopt */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.stateDuring:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 5 /* stateDuring */
         9: .line 1942
      StackMap locals:
      StackMap stack:
            aload 3 /* replaceeDeopt */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
            ifeq 11
        10: .line 1943
            aload 3 /* replaceeDeopt */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 6 /* stateAfter */
        11: .line 1947
      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 8
            goto 35
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap 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:
        12: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            astore 7 /* deoptNode */
        start local 7 // org.graalvm.compiler.nodes.DeoptimizingNode deoptNode
        13: .line 1948
            aload 2 /* duplicates */
            aload 7 /* deoptNode */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokeinterface jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            astore 9 /* deoptDup */
        start local 9 // org.graalvm.compiler.nodes.DeoptimizingNode deoptDup
        14: .line 1949
            aload 9 /* deoptDup */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode.canDeoptimize:()Z
            ifeq 35
        15: .line 1950
            aload 9 /* deoptDup */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            ifeq 17
        16: .line 1951
            aload 9 /* deoptDup */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            aload 4 /* stateBefore */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore.setStateBefore:(Lorg/graalvm/compiler/nodes/FrameState;)V
        17: .line 1953
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap 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 9 /* deoptDup */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
            ifeq 28
        18: .line 1959
            aload 9 /* deoptDup */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
            astore 10 /* deoptDupDuring */
        start local 10 // org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring deoptDupDuring
        19: .line 1960
            aload 5 /* stateDuring */
            ifnull 22
        20: .line 1961
            aload 10 /* deoptDupDuring */
            aload 5 /* stateDuring */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.setStateDuring:(Lorg/graalvm/compiler/nodes/FrameState;)V
        21: .line 1962
            goto 28
      StackMap locals: org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
      StackMap stack:
        22: aload 6 /* stateAfter */
            ifnull 25
        23: .line 1963
            aload 10 /* deoptDupDuring */
            aload 6 /* stateAfter */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.computeStateDuring:(Lorg/graalvm/compiler/nodes/FrameState;)V
        24: .line 1964
            goto 28
      StackMap locals:
      StackMap stack:
        25: aload 4 /* stateBefore */
            ifnull 28
        26: .line 1965
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 27
            aload 3 /* replaceeDeopt */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore.canUseAsStateDuring:()Z
            ifne 27
            aload 10 /* deoptDupDuring */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.hasSideEffect:()Z
            ifeq 27
            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 10 /* 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
        27: .line 1966
      StackMap locals:
      StackMap stack:
            aload 10 /* deoptDupDuring */
            aload 4 /* stateBefore */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring.setStateDuring:(Lorg/graalvm/compiler/nodes/FrameState;)V
        end local 10 // org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring deoptDupDuring
        28: .line 1969
      StackMap locals:
      StackMap stack:
            aload 9 /* deoptDup */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
            ifeq 35
        29: .line 1970
            aload 9 /* deoptDup */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
            astore 10 /* deoptDupAfter */
        start local 10 // org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter deoptDupAfter
        30: .line 1971
            aload 6 /* stateAfter */
            ifnull 33
        31: .line 1972
            aload 10 /* deoptDupAfter */
            aload 6 /* stateAfter */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        32: .line 1973
            goto 35
        33: .line 1974
      StackMap locals: org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 34
            aload 10 /* deoptDupAfter */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter.hasSideEffect:()Z
            ifeq 34
            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 10 /* 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
        34: .line 1975
      StackMap locals:
      StackMap stack:
            aload 10 /* deoptDupAfter */
            aload 4 /* stateBefore */
            invokeinterface org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        end local 10 // org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter deoptDupAfter
        end local 9 // org.graalvm.compiler.nodes.DeoptimizingNode deoptDup
        end local 7 // org.graalvm.compiler.nodes.DeoptimizingNode deoptNode
        35: .line 1947
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate org.graalvm.compiler.nodes.ValueNode jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap 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 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        36: .line 1981
            return
        end local 6 // org.graalvm.compiler.nodes.FrameState stateAfter
        end local 5 // org.graalvm.compiler.nodes.FrameState stateDuring
        end local 4 // org.graalvm.compiler.nodes.FrameState stateBefore
        end local 3 // org.graalvm.compiler.nodes.DeoptimizingNode replaceeDeopt
        end local 2 // jdk.internal.vm.compiler.collections.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   37     0            this  Lorg/graalvm/compiler/replacements/SnippetTemplate;
            0   37     1        replacee  Lorg/graalvm/compiler/nodes/ValueNode;
            0   37     2      duplicates  Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
            1   37     3   replaceeDeopt  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
            2   37     4     stateBefore  Lorg/graalvm/compiler/nodes/FrameState;
            3   37     5     stateDuring  Lorg/graalvm/compiler/nodes/FrameState;
            4   37     6      stateAfter  Lorg/graalvm/compiler/nodes/FrameState;
           13   35     7       deoptNode  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
           14   35     9        deoptDup  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
           19   28    10  deoptDupDuring  Lorg/graalvm/compiler/nodes/DeoptimizingNode$DeoptDuring;
           30   35    10   deoptDupAfter  Lorg/graalvm/compiler/nodes/DeoptimizingNode$DeoptAfter;
    Signature: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;)V
    MethodParameters:
            Name  Flags
      replacee    
      duplicates  

  public static org.graalvm.compiler.nodes.FrameState findLastFrameState(org.graalvm.compiler.nodes.FixedNode);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/FrameState;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.nodes.FixedNode start
         0: .line 1984
            aload 0 /* start */
            iconst_0
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.findLastFrameState:(Lorg/graalvm/compiler/nodes/FixedNode;Z)Lorg/graalvm/compiler/nodes/FrameState;
            astore 1 /* state */
        start local 1 // org.graalvm.compiler.nodes.FrameState state
         1: .line 1985
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 2
            aload 1 /* state */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Must find a prev state (this can be transitively broken) for node "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* start */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* start */
            iconst_1
            invokestatic org.graalvm.compiler.replacements.SnippetTemplate.findLastFrameState:(Lorg/graalvm/compiler/nodes/FixedNode;Z)Lorg/graalvm/compiler/nodes/FrameState;
            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
         2: .line 1986
      StackMap locals: org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 1 /* state */
            areturn
        end local 1 // org.graalvm.compiler.nodes.FrameState state
        end local 0 // org.graalvm.compiler.nodes.FixedNode start
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  start  Lorg/graalvm/compiler/nodes/FixedNode;
            1    3     1  state  Lorg/graalvm/compiler/nodes/FrameState;
    MethodParameters:
       Name  Flags
      start  

  public static org.graalvm.compiler.nodes.FrameState findLastFrameState(org.graalvm.compiler.nodes.FixedNode, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;Z)Lorg/graalvm/compiler/nodes/FrameState;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // org.graalvm.compiler.nodes.FixedNode start
        start local 1 // boolean log
         0: .line 1990
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 1
            aload 0 /* start */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1991
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* lastFixedNode */
        start local 2 // org.graalvm.compiler.nodes.FixedNode lastFixedNode
         2: .line 1992
            aload 0 /* start */
            astore 3 /* currentStart */
        start local 3 // org.graalvm.compiler.nodes.FixedNode currentStart
         3: .line 1994
      StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            aload 3 /* currentStart */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.predecessorIterable:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.FixedNode
            astore 4 /* fixed */
        start local 4 // org.graalvm.compiler.nodes.FixedNode fixed
         5: .line 1995
            aload 4 /* fixed */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 10
         6: .line 1996
            aload 4 /* fixed */
            checkcast org.graalvm.compiler.nodes.StateSplit
            astore 6 /* stateSplit */
        start local 6 // org.graalvm.compiler.nodes.StateSplit stateSplit
         7: .line 1997
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 8
            aload 6 /* stateSplit */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.hasSideEffect:()Z
            ifeq 8
            aload 6 /* stateSplit */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            ifnonnull 8
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Found state split with side-effect without framestate="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* stateSplit */
            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
         8: .line 1998
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode java.util.Iterator org.graalvm.compiler.nodes.StateSplit
      StackMap stack:
            aload 6 /* stateSplit */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            ifnull 10
         9: .line 1999
            aload 6 /* stateSplit */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            areturn
        end local 6 // org.graalvm.compiler.nodes.StateSplit stateSplit
        10: .line 2002
      StackMap locals:
      StackMap stack:
            aload 4 /* fixed */
            astore 2 /* lastFixedNode */
        end local 4 // org.graalvm.compiler.nodes.FixedNode fixed
        11: .line 1994
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        12: .line 2004
            aload 2 /* lastFixedNode */
            instanceof org.graalvm.compiler.nodes.LoopBeginNode
            ifeq 15
        13: .line 2005
            aload 2 /* lastFixedNode */
            checkcast org.graalvm.compiler.nodes.LoopBeginNode
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
            astore 3 /* currentStart */
        14: .line 2006
            goto 3
        15: .line 2008
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            iload 1 /* log */
            ifeq 35
        16: .line 2009
            aload 2 /* lastFixedNode */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
            astore 4 /* p */
        start local 4 // org.graalvm.compiler.graph.NodeSourcePosition p
        17: .line 2010
            aload 0 /* start */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 5 /* debug */
        start local 5 // org.graalvm.compiler.debug.DebugContext debug
        18: .line 2011
            aload 5 /* debug */
            iconst_5
            ldc "Last fixed node %s\n with source position -> %s"
            aload 2 /* lastFixedNode */
        19: .line 2012
            aload 4 /* p */
            ifnonnull 20
            ldc "null"
            goto 21
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.debug.DebugContext
      StackMap stack: org.graalvm.compiler.debug.DebugContext int java.lang.String org.graalvm.compiler.nodes.FixedNode
        20: aload 4 /* p */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.toString:()Ljava/lang/String;
        21: .line 2011
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.debug.DebugContext
      StackMap stack: org.graalvm.compiler.debug.DebugContext int java.lang.String org.graalvm.compiler.nodes.FixedNode java.lang.String
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        22: .line 2013
            aload 2 /* lastFixedNode */
            instanceof org.graalvm.compiler.nodes.MergeNode
            ifeq 35
        23: .line 2014
            aload 2 /* lastFixedNode */
            checkcast org.graalvm.compiler.nodes.MergeNode
            astore 6 /* merge */
        start local 6 // org.graalvm.compiler.nodes.MergeNode merge
        24: .line 2015
            aload 5 /* debug */
            iconst_5
            ldc "Last fixed node is a merge with predecessors:"
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;)V
        25: .line 2016
            aload 6 /* merge */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.forwardEnds:()Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 34
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.MergeNode top java.util.Iterator
      StackMap stack:
        26: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.EndNode
            astore 7 /* end */
        start local 7 // org.graalvm.compiler.nodes.EndNode end
        27: .line 2017
            aload 7 /* end */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.predecessorIterable:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 10
            goto 33
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode java.util.Iterator top java.util.Iterator
      StackMap stack:
        28: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.FixedNode
            astore 9 /* fixed */
        start local 9 // org.graalvm.compiler.nodes.FixedNode fixed
        29: .line 2018
            aload 9 /* fixed */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
            astore 11 /* sp */
        start local 11 // org.graalvm.compiler.graph.NodeSourcePosition sp
        30: .line 2019
            aload 5 /* debug */
            iconst_5
            ldc "%s:source position%s"
            aload 9 /* fixed */
            aload 11 /* sp */
            ifnull 31
            aload 11 /* sp */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.toString:()Ljava/lang/String;
            goto 32
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode java.util.Iterator org.graalvm.compiler.nodes.FixedNode java.util.Iterator org.graalvm.compiler.graph.NodeSourcePosition
      StackMap stack: org.graalvm.compiler.debug.DebugContext int java.lang.String org.graalvm.compiler.nodes.FixedNode
        31: ldc "null"
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode java.util.Iterator org.graalvm.compiler.nodes.FixedNode java.util.Iterator org.graalvm.compiler.graph.NodeSourcePosition
      StackMap stack: org.graalvm.compiler.debug.DebugContext int java.lang.String org.graalvm.compiler.nodes.FixedNode java.lang.String
        32: invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 11 // org.graalvm.compiler.graph.NodeSourcePosition sp
        end local 9 // org.graalvm.compiler.nodes.FixedNode fixed
        33: .line 2017
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        end local 7 // org.graalvm.compiler.nodes.EndNode end
        34: .line 2016
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.MergeNode top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        end local 6 // org.graalvm.compiler.nodes.MergeNode merge
        end local 5 // org.graalvm.compiler.debug.DebugContext debug
        end local 4 // org.graalvm.compiler.graph.NodeSourcePosition p
        35: .line 2026
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.graalvm.compiler.nodes.FixedNode currentStart
        end local 2 // org.graalvm.compiler.nodes.FixedNode lastFixedNode
        end local 1 // boolean log
        end local 0 // org.graalvm.compiler.nodes.FixedNode start
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   36     0          start  Lorg/graalvm/compiler/nodes/FixedNode;
            0   36     1            log  Z
            2   36     2  lastFixedNode  Lorg/graalvm/compiler/nodes/FixedNode;
            3   36     3   currentStart  Lorg/graalvm/compiler/nodes/FixedNode;
            5   11     4          fixed  Lorg/graalvm/compiler/nodes/FixedNode;
            7   10     6     stateSplit  Lorg/graalvm/compiler/nodes/StateSplit;
           17   35     4              p  Lorg/graalvm/compiler/graph/NodeSourcePosition;
           18   35     5          debug  Lorg/graalvm/compiler/debug/DebugContext;
           24   35     6          merge  Lorg/graalvm/compiler/nodes/MergeNode;
           27   34     7            end  Lorg/graalvm/compiler/nodes/EndNode;
           29   33     9          fixed  Lorg/graalvm/compiler/nodes/FixedNode;
           30   33    11             sp  Lorg/graalvm/compiler/graph/NodeSourcePosition;
    MethodParameters:
       Name  Flags
      start  
      log    

  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 2031
            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 2032
            ldc ""
            astore 2 /* sep */
        start local 2 // java.lang.String sep
         2: .line 2033
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 27
         4: .line 2034
      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 2035
            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 2036
            aload 1 /* buf */
            aload 2 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 2037
            ldc ", "
            astore 2 /* sep */
         8: .line 2038
            aload 5 /* value */
            ifnonnull 11
         9: .line 2039
            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 2040
            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 2041
            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 2042
            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 2043
            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 2044
            goto 26
      StackMap locals:
      StackMap stack:
        17: aload 5 /* value */
            instanceof org.graalvm.compiler.nodes.ParameterNode
            ifeq 21
        18: .line 2045
            aload 5 /* value */
            checkcast org.graalvm.compiler.nodes.ParameterNode
            astore 6 /* param */
        start local 6 // org.graalvm.compiler.nodes.ParameterNode param
        19: .line 2046
            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 2047
            goto 26
        21: .line 2048
      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 2049
            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 2050
            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 2033
      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 2053
            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=7, 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 2057
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.hasReceiver:()Z
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 4 /* offset */
        start local 4 // int offset
         3: .line 2058
            iload 4 /* offset */
            istore 5 /* i */
        start local 5 // int i
         4: goto 13
         5: .line 2059
      StackMap locals: int int
      StackMap stack:
            aload 1 /* 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.isConstantParameter:(I)Z
            ifeq 8
         6: .line 2060
            aload 3 /* signature */
            iload 5 /* i */
            iload 4 /* offset */
            isub
            invokeinterface jdk.vm.ci.meta.Signature.getParameterKind:(I)Ljdk/vm/ci/meta/JavaKind;
            astore 6 /* kind */
        start local 6 // jdk.vm.ci.meta.JavaKind kind
         7: .line 2061
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 12
            aload 0 /* metaAccess */
            aload 2 /* method */
            aload 3 /* signature */
            iload 5 /* i */
            iload 4 /* offset */
            isub
            aload 1 /* 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;
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 5 /* i */
            aaload
            aload 6 /* 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 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 6 // jdk.vm.ci.meta.JavaKind kind
         8: .line 2063
      StackMap locals:
      StackMap stack:
            aload 1 /* 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.isVarargsParameter:(I)Z
            ifeq 12
         9: .line 2064
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 10
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 5 /* i */
            aaload
            instanceof org.graalvm.compiler.replacements.SnippetTemplate$Varargs
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 2065
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.values:[Ljava/lang/Object;
            iload 5 /* i */
            aaload
            checkcast org.graalvm.compiler.replacements.SnippetTemplate$Varargs
            astore 6 /* varargs */
        start local 6 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        11: .line 2066
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$assertionsDisabled:Z
            ifne 12
            aload 0 /* metaAccess */
            aload 2 /* method */
            aload 3 /* signature */
            iload 5 /* i */
            iload 4 /* offset */
            isub
            aload 1 /* 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;
            aload 6 /* 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 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 6 // org.graalvm.compiler.replacements.SnippetTemplate$Varargs varargs
        12: .line 2058
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* 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 5
        end local 5 // int i
        14: .line 2069
            iconst_1
            ireturn
        end local 4 // int offset
        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   15     0  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   15     1        args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            0   15     2      method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   15     3   signature  Ljdk/vm/ci/meta/Signature;
            3   15     4      offset  I
            4   14     5           i  I
            7    8     6        kind  Ljdk/vm/ci/meta/JavaKind;
           11   12     6     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 2073
            aload 0 /* this */
            iload 1 /* mayRemoveLocation */
            putfield org.graalvm.compiler.replacements.SnippetTemplate.mayRemoveLocation:Z
         1: .line 2074
            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  

  static int[] $SWITCH_TABLE$org$graalvm$compiler$phases$common$SnippetFrameStateAssignment$NodeStateAssignment();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 188
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.$SWITCH_TABLE$org$graalvm$compiler$phases$common$SnippetFrameStateAssignment$NodeStateAssignment:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment.values:()[Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$NodeStateAssignment;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment.AFTER_BCI:Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$NodeStateAssignment;
            invokevirtual org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment.BEFORE_BCI:Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$NodeStateAssignment;
            invokevirtual org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment.INVALID:Lorg/graalvm/compiler/phases/common/SnippetFrameStateAssignment$NodeStateAssignment;
            invokevirtual org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic org.graalvm.compiler.replacements.SnippetTemplate.$SWITCH_TABLE$org$graalvm$compiler$phases$common$SnippetFrameStateAssignment$NodeStateAssignment:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError

  private static void lambda$0(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.Invokable, org.graalvm.compiler.nodes.Invokable);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/Invokable;Lorg/graalvm/compiler/nodes/Invokable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 1 // org.graalvm.compiler.nodes.Invokable oldNode
        start local 2 // org.graalvm.compiler.nodes.Invokable newNode
         0: .line 1658
            aload 0
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getInliningLog:()Lorg/graalvm/compiler/nodes/InliningLog;
            astore 3 /* log */
        start local 3 // org.graalvm.compiler.nodes.InliningLog log
         1: .line 1659
            aload 1 /* oldNode */
            ifnonnull 3
         2: .line 1660
            aload 3 /* log */
            aload 2 /* newNode */
            invokevirtual org.graalvm.compiler.nodes.InliningLog.trackNewCallsite:(Lorg/graalvm/compiler/nodes/Invokable;)V
        end local 3 // org.graalvm.compiler.nodes.InliningLog log
         3: .line 1662
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.nodes.Invokable newNode
        end local 1 // org.graalvm.compiler.nodes.Invokable oldNode
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     1  oldNode  Lorg/graalvm/compiler/nodes/Invokable;
            0    4     2  newNode  Lorg/graalvm/compiler/nodes/Invokable;
            1    3     3      log  Lorg/graalvm/compiler/nodes/InliningLog;
}
SourceFile: "SnippetTemplate.java"
NestMembers:
  org.graalvm.compiler.replacements.SnippetTemplate$1  org.graalvm.compiler.replacements.SnippetTemplate$2  org.graalvm.compiler.replacements.SnippetTemplate$3  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$UsageReplacer  org.graalvm.compiler.replacements.SnippetTemplate$Varargs  org.graalvm.compiler.replacements.SnippetTemplate$VarargsPlaceholderNode
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract ConstantParameter = org.graalvm.compiler.api.replacements.Snippet$ConstantParameter of org.graalvm.compiler.api.replacements.Snippet
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  public Mark = org.graalvm.compiler.graph.Graph$Mark of org.graalvm.compiler.graph.Graph
  public abstract NodeIntrinsic = org.graalvm.compiler.graph.Node$NodeIntrinsic of org.graalvm.compiler.graph.Node
  public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
  public final NegativeTypePredicate = org.graalvm.compiler.graph.iterators.NodePredicates$NegativeTypePredicate of org.graalvm.compiler.graph.iterators.NodePredicates
  public abstract DeoptAfter = org.graalvm.compiler.nodes.DeoptimizingNode$DeoptAfter of org.graalvm.compiler.nodes.DeoptimizingNode
  public abstract DeoptBefore = org.graalvm.compiler.nodes.DeoptimizingNode$DeoptBefore of org.graalvm.compiler.nodes.DeoptimizingNode
  public abstract DeoptDuring = org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring of org.graalvm.compiler.nodes.DeoptimizingNode
  public final UpdateScope = org.graalvm.compiler.nodes.InliningLog$UpdateScope of org.graalvm.compiler.nodes.InliningLog
  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 NodePositionClosure = org.graalvm.compiler.nodes.VirtualState$NodePositionClosure of org.graalvm.compiler.nodes.VirtualState
  public abstract LoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool
  public final StandardLoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage 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
  public final NodeStateAssignment = org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$NodeStateAssignment of org.graalvm.compiler.phases.common.SnippetFrameStateAssignment
  public SnippetFrameStateAssignmentClosure = org.graalvm.compiler.phases.common.SnippetFrameStateAssignment$SnippetFrameStateAssignmentClosure of org.graalvm.compiler.phases.common.SnippetFrameStateAssignment
  public abstract NodeIteratorClosure = org.graalvm.compiler.phases.graph.ReentrantNodeIterator$NodeIteratorClosure of org.graalvm.compiler.phases.graph.ReentrantNodeIterator
  public final SchedulingStrategy = org.graalvm.compiler.phases.schedule.SchedulePhase$SchedulingStrategy of org.graalvm.compiler.phases.schedule.SchedulePhase
  org.graalvm.compiler.replacements.SnippetTemplate$1
  org.graalvm.compiler.replacements.SnippetTemplate$2
  org.graalvm.compiler.replacements.SnippetTemplate$3
  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