All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.oracle.graal.python.nodes.argument.CreateArgumentsNodeGen Maven / Gradle / Ivy

There is a newer version: 24.1.1
Show newest version
// CheckStyle: start generated
package com.oracle.graal.python.nodes.argument;

import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction;
import com.oracle.graal.python.builtins.objects.function.PFunction;
import com.oracle.graal.python.builtins.objects.function.PKeyword;
import com.oracle.graal.python.builtins.objects.function.Signature;
import com.oracle.graal.python.builtins.objects.method.PMethodBase;
import com.oracle.graal.python.builtins.objects.object.PythonObject;
import com.oracle.graal.python.nodes.PRaiseNode;
import com.oracle.graal.python.nodes.PRaiseNode.Lazy;
import com.oracle.graal.python.nodes.PRaiseNodeGen.LazyNodeGen;
import com.oracle.graal.python.nodes.builtins.FunctionNodes.GetCallTargetNode;
import com.oracle.graal.python.nodes.builtins.FunctionNodes.GetDefaultsNode;
import com.oracle.graal.python.nodes.builtins.FunctionNodes.GetKeywordDefaultsNode;
import com.oracle.graal.python.nodes.builtins.FunctionNodes.GetSignatureNode;
import com.oracle.graal.python.nodes.builtins.FunctionNodesFactory.GetCallTargetNodeGen;
import com.oracle.graal.python.nodes.builtins.FunctionNodesFactory.GetDefaultsNodeGen;
import com.oracle.graal.python.nodes.builtins.FunctionNodesFactory.GetKeywordDefaultsNodeGen;
import com.oracle.graal.python.nodes.builtins.FunctionNodesFactory.GetSignatureNodeGen;
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
import com.oracle.graal.python.nodes.object.GetClassNode;
import com.oracle.graal.python.nodes.object.GetClassNodeGen;
import com.oracle.graal.python.runtime.PythonOptions;
import com.oracle.graal.python.runtime.exception.PException;
import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.RootCallTarget;
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.dsl.DSLSupport;
import com.oracle.truffle.api.dsl.GeneratedBy;
import com.oracle.truffle.api.dsl.InlineSupport;
import com.oracle.truffle.api.dsl.NeverDefault;
import com.oracle.truffle.api.dsl.UnsupportedSpecializationException;
import com.oracle.truffle.api.dsl.DSLSupport.SpecializationDataNode;
import com.oracle.truffle.api.dsl.InlineSupport.InlineTarget;
import com.oracle.truffle.api.dsl.InlineSupport.IntField;
import com.oracle.truffle.api.dsl.InlineSupport.ReferenceField;
import com.oracle.truffle.api.dsl.InlineSupport.RequiredField;
import com.oracle.truffle.api.dsl.InlineSupport.StateField;
import com.oracle.truffle.api.dsl.InlineSupport.UnsafeAccessedField;
import com.oracle.truffle.api.nodes.DenyReplace;
import com.oracle.truffle.api.nodes.ExplodeLoop;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.NodeCost;
import com.oracle.truffle.api.profiles.InlinedBranchProfile;
import com.oracle.truffle.api.profiles.InlinedConditionProfile;
import com.oracle.truffle.api.profiles.InlinedIntValueProfile;
import com.oracle.truffle.api.strings.TruffleString;
import com.oracle.truffle.api.strings.TruffleString.EqualNode;
import com.oracle.truffle.api.utilities.TruffleWeakReference;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import java.lang.invoke.MethodHandles.Lookup;
import java.util.Objects;

/**
 * Debug Info: 
 *   Specialization {@link CreateArgumentsNode#doMethodCached}
 *     Activation probability: 0.23929
 *     With/without class size: 20/48 bytes
 *   Specialization {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
 *     Activation probability: 0.20714
 *     With/without class size: 19/56 bytes
 *   Specialization {@link CreateArgumentsNode#doMethodFunctionCached}
 *     Activation probability: 0.17500
 *     With/without class size: 15/48 bytes
 *   Specialization {@link CreateArgumentsNode#doFunctionCached}
 *     Activation probability: 0.14286
 *     With/without class size: 13/48 bytes
 *   Specialization {@link CreateArgumentsNode#doBuiltinFunctionCached}
 *     Activation probability: 0.11071
 *     With/without class size: 11/48 bytes
 *   Specialization {@link CreateArgumentsNode#doCallTargetCached}
 *     Activation probability: 0.07857
 *     With/without class size: 10/63 bytes
 *   Specialization {@link CreateArgumentsNode#uncached}
 *     Activation probability: 0.04643
 *     With/without class size: 7/51 bytes
 * 
*/ @GeneratedBy(CreateArgumentsNode.class) @SuppressWarnings("javadoc") public final class CreateArgumentsNodeGen extends CreateArgumentsNode { private static final StateField METHOD_CACHED__CREATE_ARGUMENTS_NODE_METHOD_CACHED_STATE_0_UPDATER = StateField.create(MethodCachedData.lookup_(), "methodCached_state_0_"); private static final StateField METHOD_FUNCTION_AND_SELF_CACHED__CREATE_ARGUMENTS_NODE_METHOD_FUNCTION_AND_SELF_CACHED_STATE_0_UPDATER = StateField.create(MethodFunctionAndSelfCachedData.lookup_(), "methodFunctionAndSelfCached_state_0_"); private static final StateField METHOD_FUNCTION_CACHED__CREATE_ARGUMENTS_NODE_METHOD_FUNCTION_CACHED_STATE_0_UPDATER = StateField.create(MethodFunctionCachedData.lookup_(), "methodFunctionCached_state_0_"); private static final StateField FUNCTION_CACHED__CREATE_ARGUMENTS_NODE_FUNCTION_CACHED_STATE_0_UPDATER = StateField.create(FunctionCachedData.lookup_(), "functionCached_state_0_"); private static final StateField BUILTIN_FUNCTION_CACHED__CREATE_ARGUMENTS_NODE_BUILTIN_FUNCTION_CACHED_STATE_0_UPDATER = StateField.create(BuiltinFunctionCachedData.lookup_(), "builtinFunctionCached_state_0_"); private static final StateField CALL_TARGET_CACHED__CREATE_ARGUMENTS_NODE_CALL_TARGET_CACHED_STATE_0_UPDATER = StateField.create(CallTargetCachedData.lookup_(), "callTargetCached_state_0_"); private static final StateField CALL_TARGET_CACHED__CREATE_ARGUMENTS_NODE_CALL_TARGET_CACHED_STATE_1_UPDATER = StateField.create(CallTargetCachedData.lookup_(), "callTargetCached_state_1_"); private static final StateField UNCACHED__CREATE_ARGUMENTS_NODE_UNCACHED_STATE_0_UPDATER = StateField.create(UncachedData.lookup_(), "uncached_state_0_"); private static final StateField UNCACHED__CREATE_ARGUMENTS_NODE_UNCACHED_STATE_1_UPDATER = StateField.create(UncachedData.lookup_(), "uncached_state_1_"); static final ReferenceField METHOD_CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "methodCached_cache", MethodCachedData.class); static final ReferenceField METHOD_FUNCTION_AND_SELF_CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "methodFunctionAndSelfCached_cache", MethodFunctionAndSelfCachedData.class); static final ReferenceField METHOD_FUNCTION_CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "methodFunctionCached_cache", MethodFunctionCachedData.class); static final ReferenceField FUNCTION_CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "functionCached_cache", FunctionCachedData.class); static final ReferenceField BUILTIN_FUNCTION_CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "builtinFunctionCached_cache", BuiltinFunctionCachedData.class); static final ReferenceField CALL_TARGET_CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "callTargetCached_cache", CallTargetCachedData.class); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#doMethodCached}
     *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
     *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
*/ private static final CreateAndCheckArgumentsNode INLINED_METHOD_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_ = CreateAndCheckArgumentsNodeGen.inline(InlineTarget.create(CreateAndCheckArgumentsNode.class, METHOD_CACHED__CREATE_ARGUMENTS_NODE_METHOD_CACHED_STATE_0_UPDATER.subUpdater(0, 32), IntField.create(MethodCachedData.lookup_(), "methodCached_createAndCheckArgumentsNode__field1_"), IntField.create(MethodCachedData.lookup_(), "methodCached_createAndCheckArgumentsNode__field2_"), IntField.create(MethodCachedData.lookup_(), "methodCached_createAndCheckArgumentsNode__field3_"), ReferenceField.create(MethodCachedData.lookup_(), "methodCached_createAndCheckArgumentsNode__field4_", Node.class), ReferenceField.create(MethodCachedData.lookup_(), "methodCached_createAndCheckArgumentsNode__field5_", Node.class), ReferenceField.create(MethodCachedData.lookup_(), "methodCached_createAndCheckArgumentsNode__field6_", Node.class), ReferenceField.create(MethodCachedData.lookup_(), "methodCached_createAndCheckArgumentsNode__field7_", Node.class), ReferenceField.create(MethodCachedData.lookup_(), "methodCached_createAndCheckArgumentsNode__field8_", Node.class), ReferenceField.create(MethodCachedData.lookup_(), "methodCached_createAndCheckArgumentsNode__field9_", Node.class), ReferenceField.create(MethodCachedData.lookup_(), "methodCached_createAndCheckArgumentsNode__field10_", Node.class))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
     *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
     *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
*/ private static final CreateAndCheckArgumentsNode INLINED_METHOD_FUNCTION_AND_SELF_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_ = CreateAndCheckArgumentsNodeGen.inline(InlineTarget.create(CreateAndCheckArgumentsNode.class, METHOD_FUNCTION_AND_SELF_CACHED__CREATE_ARGUMENTS_NODE_METHOD_FUNCTION_AND_SELF_CACHED_STATE_0_UPDATER.subUpdater(0, 32), IntField.create(MethodFunctionAndSelfCachedData.lookup_(), "methodFunctionAndSelfCached_createAndCheckArgumentsNode__field1_"), IntField.create(MethodFunctionAndSelfCachedData.lookup_(), "methodFunctionAndSelfCached_createAndCheckArgumentsNode__field2_"), IntField.create(MethodFunctionAndSelfCachedData.lookup_(), "methodFunctionAndSelfCached_createAndCheckArgumentsNode__field3_"), ReferenceField.create(MethodFunctionAndSelfCachedData.lookup_(), "methodFunctionAndSelfCached_createAndCheckArgumentsNode__field4_", Node.class), ReferenceField.create(MethodFunctionAndSelfCachedData.lookup_(), "methodFunctionAndSelfCached_createAndCheckArgumentsNode__field5_", Node.class), ReferenceField.create(MethodFunctionAndSelfCachedData.lookup_(), "methodFunctionAndSelfCached_createAndCheckArgumentsNode__field6_", Node.class), ReferenceField.create(MethodFunctionAndSelfCachedData.lookup_(), "methodFunctionAndSelfCached_createAndCheckArgumentsNode__field7_", Node.class), ReferenceField.create(MethodFunctionAndSelfCachedData.lookup_(), "methodFunctionAndSelfCached_createAndCheckArgumentsNode__field8_", Node.class), ReferenceField.create(MethodFunctionAndSelfCachedData.lookup_(), "methodFunctionAndSelfCached_createAndCheckArgumentsNode__field9_", Node.class), ReferenceField.create(MethodFunctionAndSelfCachedData.lookup_(), "methodFunctionAndSelfCached_createAndCheckArgumentsNode__field10_", Node.class))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
     *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
     *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
*/ private static final CreateAndCheckArgumentsNode INLINED_METHOD_FUNCTION_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_ = CreateAndCheckArgumentsNodeGen.inline(InlineTarget.create(CreateAndCheckArgumentsNode.class, METHOD_FUNCTION_CACHED__CREATE_ARGUMENTS_NODE_METHOD_FUNCTION_CACHED_STATE_0_UPDATER.subUpdater(0, 32), IntField.create(MethodFunctionCachedData.lookup_(), "methodFunctionCached_createAndCheckArgumentsNode__field1_"), IntField.create(MethodFunctionCachedData.lookup_(), "methodFunctionCached_createAndCheckArgumentsNode__field2_"), IntField.create(MethodFunctionCachedData.lookup_(), "methodFunctionCached_createAndCheckArgumentsNode__field3_"), ReferenceField.create(MethodFunctionCachedData.lookup_(), "methodFunctionCached_createAndCheckArgumentsNode__field4_", Node.class), ReferenceField.create(MethodFunctionCachedData.lookup_(), "methodFunctionCached_createAndCheckArgumentsNode__field5_", Node.class), ReferenceField.create(MethodFunctionCachedData.lookup_(), "methodFunctionCached_createAndCheckArgumentsNode__field6_", Node.class), ReferenceField.create(MethodFunctionCachedData.lookup_(), "methodFunctionCached_createAndCheckArgumentsNode__field7_", Node.class), ReferenceField.create(MethodFunctionCachedData.lookup_(), "methodFunctionCached_createAndCheckArgumentsNode__field8_", Node.class), ReferenceField.create(MethodFunctionCachedData.lookup_(), "methodFunctionCached_createAndCheckArgumentsNode__field9_", Node.class), ReferenceField.create(MethodFunctionCachedData.lookup_(), "methodFunctionCached_createAndCheckArgumentsNode__field10_", Node.class))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#doFunctionCached}
     *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
     *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
*/ private static final CreateAndCheckArgumentsNode INLINED_FUNCTION_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_ = CreateAndCheckArgumentsNodeGen.inline(InlineTarget.create(CreateAndCheckArgumentsNode.class, FUNCTION_CACHED__CREATE_ARGUMENTS_NODE_FUNCTION_CACHED_STATE_0_UPDATER.subUpdater(0, 32), IntField.create(FunctionCachedData.lookup_(), "functionCached_createAndCheckArgumentsNode__field1_"), IntField.create(FunctionCachedData.lookup_(), "functionCached_createAndCheckArgumentsNode__field2_"), IntField.create(FunctionCachedData.lookup_(), "functionCached_createAndCheckArgumentsNode__field3_"), ReferenceField.create(FunctionCachedData.lookup_(), "functionCached_createAndCheckArgumentsNode__field4_", Node.class), ReferenceField.create(FunctionCachedData.lookup_(), "functionCached_createAndCheckArgumentsNode__field5_", Node.class), ReferenceField.create(FunctionCachedData.lookup_(), "functionCached_createAndCheckArgumentsNode__field6_", Node.class), ReferenceField.create(FunctionCachedData.lookup_(), "functionCached_createAndCheckArgumentsNode__field7_", Node.class), ReferenceField.create(FunctionCachedData.lookup_(), "functionCached_createAndCheckArgumentsNode__field8_", Node.class), ReferenceField.create(FunctionCachedData.lookup_(), "functionCached_createAndCheckArgumentsNode__field9_", Node.class), ReferenceField.create(FunctionCachedData.lookup_(), "functionCached_createAndCheckArgumentsNode__field10_", Node.class))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
     *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
     *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
*/ private static final CreateAndCheckArgumentsNode INLINED_BUILTIN_FUNCTION_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_ = CreateAndCheckArgumentsNodeGen.inline(InlineTarget.create(CreateAndCheckArgumentsNode.class, BUILTIN_FUNCTION_CACHED__CREATE_ARGUMENTS_NODE_BUILTIN_FUNCTION_CACHED_STATE_0_UPDATER.subUpdater(0, 32), IntField.create(BuiltinFunctionCachedData.lookup_(), "builtinFunctionCached_createAndCheckArgumentsNode__field1_"), IntField.create(BuiltinFunctionCachedData.lookup_(), "builtinFunctionCached_createAndCheckArgumentsNode__field2_"), IntField.create(BuiltinFunctionCachedData.lookup_(), "builtinFunctionCached_createAndCheckArgumentsNode__field3_"), ReferenceField.create(BuiltinFunctionCachedData.lookup_(), "builtinFunctionCached_createAndCheckArgumentsNode__field4_", Node.class), ReferenceField.create(BuiltinFunctionCachedData.lookup_(), "builtinFunctionCached_createAndCheckArgumentsNode__field5_", Node.class), ReferenceField.create(BuiltinFunctionCachedData.lookup_(), "builtinFunctionCached_createAndCheckArgumentsNode__field6_", Node.class), ReferenceField.create(BuiltinFunctionCachedData.lookup_(), "builtinFunctionCached_createAndCheckArgumentsNode__field7_", Node.class), ReferenceField.create(BuiltinFunctionCachedData.lookup_(), "builtinFunctionCached_createAndCheckArgumentsNode__field8_", Node.class), ReferenceField.create(BuiltinFunctionCachedData.lookup_(), "builtinFunctionCached_createAndCheckArgumentsNode__field9_", Node.class), ReferenceField.create(BuiltinFunctionCachedData.lookup_(), "builtinFunctionCached_createAndCheckArgumentsNode__field10_", Node.class))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
     *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
     *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
*/ private static final CreateAndCheckArgumentsNode INLINED_CALL_TARGET_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_ = CreateAndCheckArgumentsNodeGen.inline(InlineTarget.create(CreateAndCheckArgumentsNode.class, CALL_TARGET_CACHED__CREATE_ARGUMENTS_NODE_CALL_TARGET_CACHED_STATE_0_UPDATER.subUpdater(0, 32), IntField.create(CallTargetCachedData.lookup_(), "callTargetCached_createAndCheckArgumentsNode__field1_"), IntField.create(CallTargetCachedData.lookup_(), "callTargetCached_createAndCheckArgumentsNode__field2_"), IntField.create(CallTargetCachedData.lookup_(), "callTargetCached_createAndCheckArgumentsNode__field3_"), ReferenceField.create(CallTargetCachedData.lookup_(), "callTargetCached_createAndCheckArgumentsNode__field4_", Node.class), ReferenceField.create(CallTargetCachedData.lookup_(), "callTargetCached_createAndCheckArgumentsNode__field5_", Node.class), ReferenceField.create(CallTargetCachedData.lookup_(), "callTargetCached_createAndCheckArgumentsNode__field6_", Node.class), ReferenceField.create(CallTargetCachedData.lookup_(), "callTargetCached_createAndCheckArgumentsNode__field7_", Node.class), ReferenceField.create(CallTargetCachedData.lookup_(), "callTargetCached_createAndCheckArgumentsNode__field8_", Node.class), ReferenceField.create(CallTargetCachedData.lookup_(), "callTargetCached_createAndCheckArgumentsNode__field9_", Node.class), ReferenceField.create(CallTargetCachedData.lookup_(), "callTargetCached_createAndCheckArgumentsNode__field10_", Node.class))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
     *   Parameter: {@link GetSignatureNode} getSignatureNode
     *   Inline method: {@link GetSignatureNodeGen#inline}
*/ private static final GetSignatureNode INLINED_CALL_TARGET_CACHED_GET_SIGNATURE_NODE_ = GetSignatureNodeGen.inline(InlineTarget.create(GetSignatureNode.class, CALL_TARGET_CACHED__CREATE_ARGUMENTS_NODE_CALL_TARGET_CACHED_STATE_1_UPDATER.subUpdater(0, 11), ReferenceField.create(CallTargetCachedData.lookup_(), "callTargetCached_getSignatureNode__field1_", Object.class))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
     *   Parameter: {@link InlinedConditionProfile} gotMethod
     *   Inline method: {@link InlinedConditionProfile#inline}
*/ private static final InlinedConditionProfile INLINED_CALL_TARGET_CACHED_GOT_METHOD_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, CALL_TARGET_CACHED__CREATE_ARGUMENTS_NODE_CALL_TARGET_CACHED_STATE_1_UPDATER.subUpdater(11, 2))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
     *   Parameter: {@link GetDefaultsNode} getDefaultsNode
     *   Inline method: {@link GetDefaultsNodeGen#inline}
*/ private static final GetDefaultsNode INLINED_CALL_TARGET_CACHED_GET_DEFAULTS_NODE_ = GetDefaultsNodeGen.inline(InlineTarget.create(GetDefaultsNode.class, CALL_TARGET_CACHED__CREATE_ARGUMENTS_NODE_CALL_TARGET_CACHED_STATE_1_UPDATER.subUpdater(13, 5))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
     *   Parameter: {@link GetKeywordDefaultsNode} getKwDefaultsNode
     *   Inline method: {@link GetKeywordDefaultsNodeGen#inline}
*/ private static final GetKeywordDefaultsNode INLINED_CALL_TARGET_CACHED_GET_KW_DEFAULTS_NODE_ = GetKeywordDefaultsNodeGen.inline(InlineTarget.create(GetKeywordDefaultsNode.class, CALL_TARGET_CACHED__CREATE_ARGUMENTS_NODE_CALL_TARGET_CACHED_STATE_1_UPDATER.subUpdater(18, 5))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#uncached}
     *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
     *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
*/ private static final CreateAndCheckArgumentsNode INLINED_UNCACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_ = CreateAndCheckArgumentsNodeGen.inline(InlineTarget.create(CreateAndCheckArgumentsNode.class, UNCACHED__CREATE_ARGUMENTS_NODE_UNCACHED_STATE_0_UPDATER.subUpdater(0, 32), IntField.create(UncachedData.lookup_(), "uncached_createAndCheckArgumentsNode__field1_"), IntField.create(UncachedData.lookup_(), "uncached_createAndCheckArgumentsNode__field2_"), IntField.create(UncachedData.lookup_(), "uncached_createAndCheckArgumentsNode__field3_"), ReferenceField.create(UncachedData.lookup_(), "uncached_createAndCheckArgumentsNode__field4_", Node.class), ReferenceField.create(UncachedData.lookup_(), "uncached_createAndCheckArgumentsNode__field5_", Node.class), ReferenceField.create(UncachedData.lookup_(), "uncached_createAndCheckArgumentsNode__field6_", Node.class), ReferenceField.create(UncachedData.lookup_(), "uncached_createAndCheckArgumentsNode__field7_", Node.class), ReferenceField.create(UncachedData.lookup_(), "uncached_createAndCheckArgumentsNode__field8_", Node.class), ReferenceField.create(UncachedData.lookup_(), "uncached_createAndCheckArgumentsNode__field9_", Node.class), ReferenceField.create(UncachedData.lookup_(), "uncached_createAndCheckArgumentsNode__field10_", Node.class))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#uncached}
     *   Parameter: {@link GetSignatureNode} getSignatureNode
     *   Inline method: {@link GetSignatureNodeGen#inline}
*/ private static final GetSignatureNode INLINED_UNCACHED_GET_SIGNATURE_NODE_ = GetSignatureNodeGen.inline(InlineTarget.create(GetSignatureNode.class, UNCACHED__CREATE_ARGUMENTS_NODE_UNCACHED_STATE_1_UPDATER.subUpdater(0, 11), ReferenceField.create(UncachedData.lookup_(), "uncached_getSignatureNode__field1_", Object.class))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#uncached}
     *   Parameter: {@link GetDefaultsNode} getDefaultsNode
     *   Inline method: {@link GetDefaultsNodeGen#inline}
*/ private static final GetDefaultsNode INLINED_UNCACHED_GET_DEFAULTS_NODE_ = GetDefaultsNodeGen.inline(InlineTarget.create(GetDefaultsNode.class, UNCACHED__CREATE_ARGUMENTS_NODE_UNCACHED_STATE_1_UPDATER.subUpdater(11, 5))); /** * Source Info:
     *   Specialization: {@link CreateArgumentsNode#uncached}
     *   Parameter: {@link GetKeywordDefaultsNode} getKwDefaultsNode
     *   Inline method: {@link GetKeywordDefaultsNodeGen#inline}
*/ private static final GetKeywordDefaultsNode INLINED_UNCACHED_GET_KW_DEFAULTS_NODE_ = GetKeywordDefaultsNodeGen.inline(InlineTarget.create(GetKeywordDefaultsNode.class, UNCACHED__CREATE_ARGUMENTS_NODE_UNCACHED_STATE_1_UPDATER.subUpdater(16, 5))); private static final Uncached UNCACHED = new Uncached(); /** * State Info:
     *   0: SpecializationActive {@link CreateArgumentsNode#doMethodCached}
     *   1: SpecializationActive {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
     *   2: SpecializationActive {@link CreateArgumentsNode#doMethodFunctionCached}
     *   3: SpecializationActive {@link CreateArgumentsNode#doFunctionCached}
     *   4: SpecializationActive {@link CreateArgumentsNode#doCallTargetCached}
     *   5: SpecializationActive {@link CreateArgumentsNode#uncached}
     *   6: SpecializationActive {@link CreateArgumentsNode#doBuiltinFunctionCached}
     * 
*/ @CompilationFinal private int state_0_; @UnsafeAccessedField @Child private MethodCachedData methodCached_cache; @UnsafeAccessedField @Child private MethodFunctionAndSelfCachedData methodFunctionAndSelfCached_cache; @UnsafeAccessedField @Child private MethodFunctionCachedData methodFunctionCached_cache; @UnsafeAccessedField @Child private FunctionCachedData functionCached_cache; @UnsafeAccessedField @Child private BuiltinFunctionCachedData builtinFunctionCached_cache; @UnsafeAccessedField @Child private CallTargetCachedData callTargetCached_cache; @Child private UncachedData uncached_cache; private CreateArgumentsNodeGen() { } @ExplodeLoop @Override public Object[] execute(PBuiltinFunction arg0Value, Object[] arg1Value, PKeyword[] arg2Value) { int state_0 = this.state_0_; if ((state_0 & 0b1110000) != 0 /* is SpecializationActive[CreateArgumentsNode.doBuiltinFunctionCached(PBuiltinFunction, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PBuiltinFunction)] || SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] || SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */) { if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[CreateArgumentsNode.doBuiltinFunctionCached(PBuiltinFunction, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PBuiltinFunction)] */) { assert DSLSupport.assertIdempotence((isSingleContext())); BuiltinFunctionCachedData s4_ = this.builtinFunctionCached_cache; while (s4_ != null) { { PBuiltinFunction cachedCallable__ = (s4_.weakCachedCallableGen__.get()); if ((cachedCallable__ != null) && (arg0Value == cachedCallable__)) { Node inliningTarget__ = (s4_); return CreateArgumentsNode.doBuiltinFunctionCached(arg0Value, arg1Value, arg2Value, inliningTarget__, INLINED_BUILTIN_FUNCTION_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, cachedCallable__); } } s4_ = s4_.next_; } } if ((state_0 & 0b110000) != 0 /* is SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] || SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */) { if ((state_0 & 0b10000) != 0 /* is SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] */) { CallTargetCachedData s5_ = this.callTargetCached_cache; while (s5_ != null) { if ((s5_.getCt_.execute(arg0Value) == s5_.cachedCallTarget_)) { Node inliningTarget__1 = (s5_); assert DSLSupport.assertIdempotence((s5_.cachedCallTarget_ != null)); return CreateArgumentsNode.doCallTargetCached(arg0Value, arg1Value, arg2Value, inliningTarget__1, s5_.getCt_, INLINED_CALL_TARGET_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, INLINED_CALL_TARGET_CACHED_GET_SIGNATURE_NODE_, s5_.signature_, INLINED_CALL_TARGET_CACHED_GOT_METHOD_, INLINED_CALL_TARGET_CACHED_GET_DEFAULTS_NODE_, INLINED_CALL_TARGET_CACHED_GET_KW_DEFAULTS_NODE_, s5_.cachedCallTarget_); } s5_ = s5_.next_; } } if ((state_0 & 0b100000) != 0 /* is SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */) { UncachedData s6_ = this.uncached_cache; if (s6_ != null) { { Node inliningTarget__2 = (s6_); return CreateArgumentsNode.uncached(arg0Value, arg1Value, arg2Value, inliningTarget__2, INLINED_UNCACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, INLINED_UNCACHED_GET_SIGNATURE_NODE_, INLINED_UNCACHED_GET_DEFAULTS_NODE_, INLINED_UNCACHED_GET_KW_DEFAULTS_NODE_); } } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value, arg1Value, arg2Value); } @ExplodeLoop @Override public Object[] execute(PFunction arg0Value, Object[] arg1Value, PKeyword[] arg2Value) { int state_0 = this.state_0_; if ((state_0 & 0b111000) != 0 /* is SpecializationActive[CreateArgumentsNode.doFunctionCached(PFunction, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PFunction)] || SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] || SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */) { if ((state_0 & 0b1000) != 0 /* is SpecializationActive[CreateArgumentsNode.doFunctionCached(PFunction, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PFunction)] */) { assert DSLSupport.assertIdempotence((isSingleContext())); FunctionCachedData s3_ = this.functionCached_cache; while (s3_ != null) { { PFunction cachedCallable__1 = (s3_.weakCachedCallableGen__.get()); if ((cachedCallable__1 != null) && (arg0Value == cachedCallable__1)) { Node inliningTarget__3 = (s3_); return CreateArgumentsNode.doFunctionCached(arg0Value, arg1Value, arg2Value, inliningTarget__3, INLINED_FUNCTION_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, cachedCallable__1); } } s3_ = s3_.next_; } } if ((state_0 & 0b110000) != 0 /* is SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] || SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */) { if ((state_0 & 0b10000) != 0 /* is SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] */) { CallTargetCachedData s5_ = this.callTargetCached_cache; while (s5_ != null) { if ((s5_.getCt_.execute(arg0Value) == s5_.cachedCallTarget_)) { Node inliningTarget__1 = (s5_); assert DSLSupport.assertIdempotence((s5_.cachedCallTarget_ != null)); return CreateArgumentsNode.doCallTargetCached(arg0Value, arg1Value, arg2Value, inliningTarget__1, s5_.getCt_, INLINED_CALL_TARGET_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, INLINED_CALL_TARGET_CACHED_GET_SIGNATURE_NODE_, s5_.signature_, INLINED_CALL_TARGET_CACHED_GOT_METHOD_, INLINED_CALL_TARGET_CACHED_GET_DEFAULTS_NODE_, INLINED_CALL_TARGET_CACHED_GET_KW_DEFAULTS_NODE_, s5_.cachedCallTarget_); } s5_ = s5_.next_; } } if ((state_0 & 0b100000) != 0 /* is SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */) { UncachedData s6_ = this.uncached_cache; if (s6_ != null) { { Node inliningTarget__2 = (s6_); return CreateArgumentsNode.uncached(arg0Value, arg1Value, arg2Value, inliningTarget__2, INLINED_UNCACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, INLINED_UNCACHED_GET_SIGNATURE_NODE_, INLINED_UNCACHED_GET_DEFAULTS_NODE_, INLINED_UNCACHED_GET_KW_DEFAULTS_NODE_); } } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value, arg1Value, arg2Value); } @ExplodeLoop @Override public Object[] execute(PMethodBase arg0Value, Object[] arg1Value, PKeyword[] arg2Value) { int state_0 = this.state_0_; if ((state_0 & 0b110111) != 0 /* is SpecializationActive[CreateArgumentsNode.doMethodCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PMethodBase)] || SpecializationActive[CreateArgumentsNode.doMethodFunctionAndSelfCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object, Object, Object)] || SpecializationActive[CreateArgumentsNode.doMethodFunctionCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object)] || SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] || SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */) { if ((state_0 & 0b111) != 0 /* is SpecializationActive[CreateArgumentsNode.doMethodCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PMethodBase)] || SpecializationActive[CreateArgumentsNode.doMethodFunctionAndSelfCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object, Object, Object)] || SpecializationActive[CreateArgumentsNode.doMethodFunctionCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[CreateArgumentsNode.doMethodCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PMethodBase)] */) { assert DSLSupport.assertIdempotence((isSingleContext())); MethodCachedData s0_ = this.methodCached_cache; while (s0_ != null) { { PMethodBase cachedMethod__ = (s0_.weakCachedMethodGen__.get()); if ((cachedMethod__ != null) && (arg0Value == cachedMethod__)) { Node inliningTarget__4 = (s0_); return CreateArgumentsNode.doMethodCached(arg0Value, arg1Value, arg2Value, inliningTarget__4, INLINED_METHOD_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, cachedMethod__); } } s0_ = s0_.next_; } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[CreateArgumentsNode.doMethodFunctionAndSelfCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object, Object, Object)] */) { assert DSLSupport.assertIdempotence((isSingleContext())); MethodFunctionAndSelfCachedData s1_ = this.methodFunctionAndSelfCached_cache; while (s1_ != null) { { Object cachedFunction__ = (s1_.weakCachedFunctionGen__.get()); if ((cachedFunction__ != null) && (CreateArgumentsNode.getFunction(arg0Value) == cachedFunction__)) { Object cachedSelf__ = (s1_.weakCachedSelfGen__.get()); if ((cachedSelf__ != null) && (CreateArgumentsNode.getSelf(arg0Value) == cachedSelf__)) { Object cachedClassObject__ = (s1_.weakCachedClassObjectGen__.get()); if ((cachedClassObject__ != null)) { Node inliningTarget__5 = (s1_); return CreateArgumentsNode.doMethodFunctionAndSelfCached(arg0Value, arg1Value, arg2Value, inliningTarget__5, INLINED_METHOD_FUNCTION_AND_SELF_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, cachedFunction__, cachedSelf__, cachedClassObject__); } } } } s1_ = s1_.next_; } } if ((state_0 & 0b100) != 0 /* is SpecializationActive[CreateArgumentsNode.doMethodFunctionCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object)] */) { assert DSLSupport.assertIdempotence((isSingleContext())); MethodFunctionCachedData s2_ = this.methodFunctionCached_cache; while (s2_ != null) { { Object cachedFunction__1 = (s2_.weakCachedFunctionGen__.get()); if ((cachedFunction__1 != null) && (CreateArgumentsNode.getFunction(arg0Value) == cachedFunction__1)) { Node inliningTarget__6 = (s2_); return CreateArgumentsNode.doMethodFunctionCached(arg0Value, arg1Value, arg2Value, inliningTarget__6, INLINED_METHOD_FUNCTION_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, cachedFunction__1); } } s2_ = s2_.next_; } } } if ((state_0 & 0b110000) != 0 /* is SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] || SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */) { if ((state_0 & 0b10000) != 0 /* is SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] */) { CallTargetCachedData s5_ = this.callTargetCached_cache; while (s5_ != null) { if ((s5_.getCt_.execute(arg0Value) == s5_.cachedCallTarget_)) { Node inliningTarget__1 = (s5_); assert DSLSupport.assertIdempotence((s5_.cachedCallTarget_ != null)); return CreateArgumentsNode.doCallTargetCached(arg0Value, arg1Value, arg2Value, inliningTarget__1, s5_.getCt_, INLINED_CALL_TARGET_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, INLINED_CALL_TARGET_CACHED_GET_SIGNATURE_NODE_, s5_.signature_, INLINED_CALL_TARGET_CACHED_GOT_METHOD_, INLINED_CALL_TARGET_CACHED_GET_DEFAULTS_NODE_, INLINED_CALL_TARGET_CACHED_GET_KW_DEFAULTS_NODE_, s5_.cachedCallTarget_); } s5_ = s5_.next_; } } if ((state_0 & 0b100000) != 0 /* is SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */) { UncachedData s6_ = this.uncached_cache; if (s6_ != null) { { Node inliningTarget__2 = (s6_); return CreateArgumentsNode.uncached(arg0Value, arg1Value, arg2Value, inliningTarget__2, INLINED_UNCACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, INLINED_UNCACHED_GET_SIGNATURE_NODE_, INLINED_UNCACHED_GET_DEFAULTS_NODE_, INLINED_UNCACHED_GET_KW_DEFAULTS_NODE_); } } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value, arg1Value, arg2Value); } @SuppressWarnings("unused") private Object[] executeAndSpecialize(PythonObject arg0Value, Object[] arg1Value, PKeyword[] arg2Value) { int state_0 = this.state_0_; if (arg0Value instanceof PMethodBase) { PMethodBase arg0Value_ = (PMethodBase) arg0Value; { PMethodBase cachedMethod__ = null; Node inliningTarget__4 = null; if (((state_0 & 0b110110)) == 0 /* is-not SpecializationActive[CreateArgumentsNode.doMethodFunctionAndSelfCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object, Object, Object)] && SpecializationActive[CreateArgumentsNode.doMethodFunctionCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object)] && SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] && SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */ && (isSingleContext())) { while (true) { int count0_ = 0; MethodCachedData s0_ = METHOD_CACHED_CACHE_UPDATER.getVolatile(this); MethodCachedData s0_original = s0_; while (s0_ != null) { { cachedMethod__ = (s0_.weakCachedMethodGen__.get()); if ((cachedMethod__ != null) && (arg0Value_ == cachedMethod__)) { inliningTarget__4 = (s0_); break; } } count0_++; s0_ = s0_.next_; } if (s0_ == null) { { TruffleWeakReference weakCachedMethodGen___ = (new TruffleWeakReference<>(arg0Value_)); cachedMethod__ = (weakCachedMethodGen___.get()); if ((cachedMethod__ != null) && (arg0Value_ == cachedMethod__) && count0_ < (PythonOptions.getVariableArgumentInlineCacheLimit())) { s0_ = this.insert(new MethodCachedData(s0_original)); s0_.weakCachedMethodGen__ = weakCachedMethodGen___; inliningTarget__4 = (s0_); if (!METHOD_CACHED_CACHE_UPDATER.compareAndSet(this, s0_original, s0_)) { continue; } state_0 = state_0 | 0b1 /* add SpecializationActive[CreateArgumentsNode.doMethodCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PMethodBase)] */; this.state_0_ = state_0; } } } if (s0_ != null) { return CreateArgumentsNode.doMethodCached(arg0Value_, arg1Value, arg2Value, inliningTarget__4, INLINED_METHOD_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, cachedMethod__); } break; } } } { Object cachedClassObject__ = null; Object cachedSelf__ = null; Object cachedFunction__ = null; Node inliningTarget__5 = null; if (((state_0 & 0b110100)) == 0 /* is-not SpecializationActive[CreateArgumentsNode.doMethodFunctionCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object)] && SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] && SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */ && (isSingleContext())) { while (true) { int count1_ = 0; MethodFunctionAndSelfCachedData s1_ = METHOD_FUNCTION_AND_SELF_CACHED_CACHE_UPDATER.getVolatile(this); MethodFunctionAndSelfCachedData s1_original = s1_; while (s1_ != null) { { cachedFunction__ = (s1_.weakCachedFunctionGen__.get()); if ((cachedFunction__ != null) && (CreateArgumentsNode.getFunction(arg0Value_) == cachedFunction__)) { cachedSelf__ = (s1_.weakCachedSelfGen__.get()); if ((cachedSelf__ != null) && (CreateArgumentsNode.getSelf(arg0Value_) == cachedSelf__)) { cachedClassObject__ = (s1_.weakCachedClassObjectGen__.get()); if ((cachedClassObject__ != null)) { inliningTarget__5 = (s1_); break; } } } } count1_++; s1_ = s1_.next_; } if (s1_ == null) { { TruffleWeakReference weakCachedFunctionGen___ = (new TruffleWeakReference<>(CreateArgumentsNode.getFunction(arg0Value_))); cachedFunction__ = (weakCachedFunctionGen___.get()); if ((cachedFunction__ != null) && (CreateArgumentsNode.getFunction(arg0Value_) == cachedFunction__)) { TruffleWeakReference weakCachedSelfGen___ = (new TruffleWeakReference<>(arg0Value_.getSelf())); cachedSelf__ = (weakCachedSelfGen___.get()); if ((cachedSelf__ != null) && (CreateArgumentsNode.getSelf(arg0Value_) == cachedSelf__)) { TruffleWeakReference weakCachedClassObjectGen___ = (new TruffleWeakReference<>(CreateArgumentsNode.getClassObject(arg0Value_))); cachedClassObject__ = (weakCachedClassObjectGen___.get()); if ((cachedClassObject__ != null) && count1_ < (PythonOptions.getVariableArgumentInlineCacheLimit())) { s1_ = this.insert(new MethodFunctionAndSelfCachedData(s1_original)); s1_.weakCachedClassObjectGen__ = weakCachedClassObjectGen___; s1_.weakCachedSelfGen__ = weakCachedSelfGen___; s1_.weakCachedFunctionGen__ = weakCachedFunctionGen___; inliningTarget__5 = (s1_); if (!METHOD_FUNCTION_AND_SELF_CACHED_CACHE_UPDATER.compareAndSet(this, s1_original, s1_)) { continue; } this.methodCached_cache = null; state_0 = state_0 & 0xfffffffe /* remove SpecializationActive[CreateArgumentsNode.doMethodCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PMethodBase)] */; state_0 = state_0 | 0b10 /* add SpecializationActive[CreateArgumentsNode.doMethodFunctionAndSelfCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object, Object, Object)] */; this.state_0_ = state_0; } } } } } if (s1_ != null) { return CreateArgumentsNode.doMethodFunctionAndSelfCached(arg0Value_, arg1Value, arg2Value, inliningTarget__5, INLINED_METHOD_FUNCTION_AND_SELF_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, cachedFunction__, cachedSelf__, cachedClassObject__); } break; } } } { Object cachedFunction__1 = null; Node inliningTarget__6 = null; if (((state_0 & 0b110000)) == 0 /* is-not SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] && SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */ && (isSingleContext())) { while (true) { int count2_ = 0; MethodFunctionCachedData s2_ = METHOD_FUNCTION_CACHED_CACHE_UPDATER.getVolatile(this); MethodFunctionCachedData s2_original = s2_; while (s2_ != null) { { cachedFunction__1 = (s2_.weakCachedFunctionGen__.get()); if ((cachedFunction__1 != null) && (CreateArgumentsNode.getFunction(arg0Value_) == cachedFunction__1)) { inliningTarget__6 = (s2_); break; } } count2_++; s2_ = s2_.next_; } if (s2_ == null) { { TruffleWeakReference weakCachedFunctionGen___1 = (new TruffleWeakReference<>(CreateArgumentsNode.getFunction(arg0Value_))); cachedFunction__1 = (weakCachedFunctionGen___1.get()); if ((cachedFunction__1 != null) && (CreateArgumentsNode.getFunction(arg0Value_) == cachedFunction__1) && count2_ < (PythonOptions.getVariableArgumentInlineCacheLimit())) { s2_ = this.insert(new MethodFunctionCachedData(s2_original)); s2_.weakCachedFunctionGen__ = weakCachedFunctionGen___1; inliningTarget__6 = (s2_); if (!METHOD_FUNCTION_CACHED_CACHE_UPDATER.compareAndSet(this, s2_original, s2_)) { continue; } this.methodCached_cache = null; this.methodFunctionAndSelfCached_cache = null; state_0 = state_0 & 0xfffffffc /* remove SpecializationActive[CreateArgumentsNode.doMethodCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PMethodBase)], SpecializationActive[CreateArgumentsNode.doMethodFunctionAndSelfCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object, Object, Object)] */; state_0 = state_0 | 0b100 /* add SpecializationActive[CreateArgumentsNode.doMethodFunctionCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object)] */; this.state_0_ = state_0; } } } if (s2_ != null) { return CreateArgumentsNode.doMethodFunctionCached(arg0Value_, arg1Value, arg2Value, inliningTarget__6, INLINED_METHOD_FUNCTION_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, cachedFunction__1); } break; } } } } { PFunction cachedCallable__1 = null; Node inliningTarget__3 = null; if (((state_0 & 0b110000)) == 0 /* is-not SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] && SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */ && arg0Value instanceof PFunction) { PFunction arg0Value_ = (PFunction) arg0Value; if ((isSingleContext())) { while (true) { int count3_ = 0; FunctionCachedData s3_ = FUNCTION_CACHED_CACHE_UPDATER.getVolatile(this); FunctionCachedData s3_original = s3_; while (s3_ != null) { { cachedCallable__1 = (s3_.weakCachedCallableGen__.get()); if ((cachedCallable__1 != null) && (arg0Value_ == cachedCallable__1)) { inliningTarget__3 = (s3_); break; } } count3_++; s3_ = s3_.next_; } if (s3_ == null) { { TruffleWeakReference weakCachedCallableGen___ = (new TruffleWeakReference<>(arg0Value_)); cachedCallable__1 = (weakCachedCallableGen___.get()); if ((cachedCallable__1 != null) && (arg0Value_ == cachedCallable__1) && count3_ < (PythonOptions.getVariableArgumentInlineCacheLimit())) { s3_ = this.insert(new FunctionCachedData(s3_original)); s3_.weakCachedCallableGen__ = weakCachedCallableGen___; inliningTarget__3 = (s3_); if (!FUNCTION_CACHED_CACHE_UPDATER.compareAndSet(this, s3_original, s3_)) { continue; } state_0 = state_0 | 0b1000 /* add SpecializationActive[CreateArgumentsNode.doFunctionCached(PFunction, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PFunction)] */; this.state_0_ = state_0; } } } if (s3_ != null) { return CreateArgumentsNode.doFunctionCached(arg0Value_, arg1Value, arg2Value, inliningTarget__3, INLINED_FUNCTION_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, cachedCallable__1); } break; } } } } { PBuiltinFunction cachedCallable__ = null; Node inliningTarget__ = null; if (arg0Value instanceof PBuiltinFunction) { PBuiltinFunction arg0Value_ = (PBuiltinFunction) arg0Value; if ((isSingleContext())) { while (true) { int count4_ = 0; BuiltinFunctionCachedData s4_ = BUILTIN_FUNCTION_CACHED_CACHE_UPDATER.getVolatile(this); BuiltinFunctionCachedData s4_original = s4_; while (s4_ != null) { { cachedCallable__ = (s4_.weakCachedCallableGen__.get()); if ((cachedCallable__ != null) && (arg0Value_ == cachedCallable__)) { inliningTarget__ = (s4_); break; } } count4_++; s4_ = s4_.next_; } if (s4_ == null) { { TruffleWeakReference weakCachedCallableGen___1 = (new TruffleWeakReference<>(arg0Value_)); cachedCallable__ = (weakCachedCallableGen___1.get()); if ((cachedCallable__ != null) && (arg0Value_ == cachedCallable__) && count4_ < (PythonOptions.getVariableArgumentInlineCacheLimit())) { s4_ = this.insert(new BuiltinFunctionCachedData(s4_original)); s4_.weakCachedCallableGen__ = weakCachedCallableGen___1; inliningTarget__ = (s4_); if (!BUILTIN_FUNCTION_CACHED_CACHE_UPDATER.compareAndSet(this, s4_original, s4_)) { continue; } state_0 = state_0 | 0b1000000 /* add SpecializationActive[CreateArgumentsNode.doBuiltinFunctionCached(PBuiltinFunction, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PBuiltinFunction)] */; this.state_0_ = state_0; } } } if (s4_ != null) { return CreateArgumentsNode.doBuiltinFunctionCached(arg0Value_, arg1Value, arg2Value, inliningTarget__, INLINED_BUILTIN_FUNCTION_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, cachedCallable__); } break; } } } } { Node inliningTarget__1 = null; if (((state_0 & 0b100000)) == 0 /* is-not SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */) { while (true) { int count5_ = 0; CallTargetCachedData s5_ = CALL_TARGET_CACHED_CACHE_UPDATER.getVolatile(this); CallTargetCachedData s5_original = s5_; while (s5_ != null) { if ((s5_.getCt_.execute(arg0Value) == s5_.cachedCallTarget_)) { assert DSLSupport.assertIdempotence((s5_.cachedCallTarget_ != null)); inliningTarget__1 = (s5_); break; } count5_++; s5_ = s5_.next_; } if (s5_ == null) { { GetCallTargetNode getCt__ = this.insert((GetCallTargetNodeGen.create())); RootCallTarget cachedCallTarget__ = (getCt__.execute(arg0Value)); if ((getCt__.execute(arg0Value) == cachedCallTarget__) && (cachedCallTarget__ != null) && count5_ < (PythonOptions.getVariableArgumentInlineCacheLimit())) { s5_ = this.insert(new CallTargetCachedData(s5_original)); inliningTarget__1 = (s5_); Objects.requireNonNull(s5_.insert(getCt__), "Specialization 'doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)' cache 'getCt' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s5_.getCt_ = getCt__; s5_.signature_ = (INLINED_CALL_TARGET_CACHED_GET_SIGNATURE_NODE_.execute(inliningTarget__1, arg0Value)); s5_.cachedCallTarget_ = cachedCallTarget__; if (!CALL_TARGET_CACHED_CACHE_UPDATER.compareAndSet(this, s5_original, s5_)) { continue; } this.methodCached_cache = null; this.methodFunctionAndSelfCached_cache = null; this.methodFunctionCached_cache = null; this.functionCached_cache = null; state_0 = state_0 & 0xfffffff0 /* remove SpecializationActive[CreateArgumentsNode.doMethodCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PMethodBase)], SpecializationActive[CreateArgumentsNode.doMethodFunctionAndSelfCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object, Object, Object)], SpecializationActive[CreateArgumentsNode.doMethodFunctionCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object)], SpecializationActive[CreateArgumentsNode.doFunctionCached(PFunction, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PFunction)] */; state_0 = state_0 | 0b10000 /* add SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] */; this.state_0_ = state_0; } } } if (s5_ != null) { return CreateArgumentsNode.doCallTargetCached(arg0Value, arg1Value, arg2Value, inliningTarget__1, s5_.getCt_, INLINED_CALL_TARGET_CACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, INLINED_CALL_TARGET_CACHED_GET_SIGNATURE_NODE_, s5_.signature_, INLINED_CALL_TARGET_CACHED_GOT_METHOD_, INLINED_CALL_TARGET_CACHED_GET_DEFAULTS_NODE_, INLINED_CALL_TARGET_CACHED_GET_KW_DEFAULTS_NODE_, s5_.cachedCallTarget_); } break; } } } { Node inliningTarget__2 = null; UncachedData s6_ = this.insert(new UncachedData()); inliningTarget__2 = (s6_); VarHandle.storeStoreFence(); this.uncached_cache = s6_; this.methodCached_cache = null; this.methodFunctionAndSelfCached_cache = null; this.methodFunctionCached_cache = null; this.functionCached_cache = null; this.callTargetCached_cache = null; state_0 = state_0 & 0xffffffe0 /* remove SpecializationActive[CreateArgumentsNode.doMethodCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PMethodBase)], SpecializationActive[CreateArgumentsNode.doMethodFunctionAndSelfCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object, Object, Object)], SpecializationActive[CreateArgumentsNode.doMethodFunctionCached(PMethodBase, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, Object)], SpecializationActive[CreateArgumentsNode.doFunctionCached(PFunction, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, PFunction)], SpecializationActive[CreateArgumentsNode.doCallTargetCached(PythonObject, Object[], PKeyword[], Node, GetCallTargetNode, CreateAndCheckArgumentsNode, GetSignatureNode, Signature, InlinedConditionProfile, GetDefaultsNode, GetKeywordDefaultsNode, RootCallTarget)] */; state_0 = state_0 | 0b100000 /* add SpecializationActive[CreateArgumentsNode.uncached(PythonObject, Object[], PKeyword[], Node, CreateAndCheckArgumentsNode, GetSignatureNode, GetDefaultsNode, GetKeywordDefaultsNode)] */; this.state_0_ = state_0; return CreateArgumentsNode.uncached(arg0Value, arg1Value, arg2Value, inliningTarget__2, INLINED_UNCACHED_CREATE_AND_CHECK_ARGUMENTS_NODE_, INLINED_UNCACHED_GET_SIGNATURE_NODE_, INLINED_UNCACHED_GET_DEFAULTS_NODE_, INLINED_UNCACHED_GET_KW_DEFAULTS_NODE_); } } @Override public NodeCost getCost() { int state_0 = this.state_0_; if (state_0 == 0) { return NodeCost.UNINITIALIZED; } else { if ((state_0 & (state_0 - 1)) == 0 /* is-single */) { MethodCachedData s0_ = this.methodCached_cache; MethodFunctionAndSelfCachedData s1_ = this.methodFunctionAndSelfCached_cache; MethodFunctionCachedData s2_ = this.methodFunctionCached_cache; FunctionCachedData s3_ = this.functionCached_cache; BuiltinFunctionCachedData s4_ = this.builtinFunctionCached_cache; CallTargetCachedData s5_ = this.callTargetCached_cache; if ((s0_ == null || s0_.next_ == null) && (s1_ == null || s1_.next_ == null) && (s2_ == null || s2_.next_ == null) && (s3_ == null || s3_.next_ == null) && (s4_ == null || s4_.next_ == null) && (s5_ == null || s5_.next_ == null)) { return NodeCost.MONOMORPHIC; } } } return NodeCost.POLYMORPHIC; } @NeverDefault public static CreateArgumentsNode create() { return new CreateArgumentsNodeGen(); } @NeverDefault public static CreateArgumentsNode getUncached() { return CreateArgumentsNodeGen.UNCACHED; } @GeneratedBy(CreateArgumentsNode.class) @DenyReplace private static final class MethodCachedData extends Node implements SpecializationDataNode { @Child MethodCachedData next_; /** * State Info:
         *   0-31: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#doMethodCached}
         *        Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *        Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int methodCached_state_0_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodCached}
         *   Parameter: {@link TruffleWeakReference} weakCachedMethodGen_
*/ @CompilationFinal TruffleWeakReference weakCachedMethodGen__; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field1
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int methodCached_createAndCheckArgumentsNode__field1_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int methodCached_createAndCheckArgumentsNode__field2_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int methodCached_createAndCheckArgumentsNode__field3_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodCached_createAndCheckArgumentsNode__field4_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodCached_createAndCheckArgumentsNode__field5_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodCached_createAndCheckArgumentsNode__field6_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field7
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodCached_createAndCheckArgumentsNode__field7_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field8
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodCached_createAndCheckArgumentsNode__field8_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field9
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodCached_createAndCheckArgumentsNode__field9_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field10
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodCached_createAndCheckArgumentsNode__field10_; MethodCachedData(MethodCachedData next_) { this.next_ = next_; } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(CreateArgumentsNode.class) @DenyReplace private static final class MethodFunctionAndSelfCachedData extends Node implements SpecializationDataNode { @Child MethodFunctionAndSelfCachedData next_; /** * State Info:
         *   0-31: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *        Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *        Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int methodFunctionAndSelfCached_state_0_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link TruffleWeakReference} weakCachedClassObjectGen_
*/ @CompilationFinal TruffleWeakReference weakCachedClassObjectGen__; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link TruffleWeakReference} weakCachedSelfGen_
*/ @CompilationFinal TruffleWeakReference weakCachedSelfGen__; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link TruffleWeakReference} weakCachedFunctionGen_
*/ @CompilationFinal TruffleWeakReference weakCachedFunctionGen__; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field1
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int methodFunctionAndSelfCached_createAndCheckArgumentsNode__field1_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int methodFunctionAndSelfCached_createAndCheckArgumentsNode__field2_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int methodFunctionAndSelfCached_createAndCheckArgumentsNode__field3_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionAndSelfCached_createAndCheckArgumentsNode__field4_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionAndSelfCached_createAndCheckArgumentsNode__field5_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionAndSelfCached_createAndCheckArgumentsNode__field6_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field7
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionAndSelfCached_createAndCheckArgumentsNode__field7_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field8
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionAndSelfCached_createAndCheckArgumentsNode__field8_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field9
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionAndSelfCached_createAndCheckArgumentsNode__field9_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionAndSelfCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field10
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionAndSelfCached_createAndCheckArgumentsNode__field10_; MethodFunctionAndSelfCachedData(MethodFunctionAndSelfCachedData next_) { this.next_ = next_; } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(CreateArgumentsNode.class) @DenyReplace private static final class MethodFunctionCachedData extends Node implements SpecializationDataNode { @Child MethodFunctionCachedData next_; /** * State Info:
         *   0-31: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
         *        Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *        Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int methodFunctionCached_state_0_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
         *   Parameter: {@link TruffleWeakReference} weakCachedFunctionGen_
*/ @CompilationFinal TruffleWeakReference weakCachedFunctionGen__; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field1
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int methodFunctionCached_createAndCheckArgumentsNode__field1_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int methodFunctionCached_createAndCheckArgumentsNode__field2_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int methodFunctionCached_createAndCheckArgumentsNode__field3_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionCached_createAndCheckArgumentsNode__field4_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionCached_createAndCheckArgumentsNode__field5_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionCached_createAndCheckArgumentsNode__field6_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field7
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionCached_createAndCheckArgumentsNode__field7_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field8
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionCached_createAndCheckArgumentsNode__field8_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field9
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionCached_createAndCheckArgumentsNode__field9_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doMethodFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field10
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node methodFunctionCached_createAndCheckArgumentsNode__field10_; MethodFunctionCachedData(MethodFunctionCachedData next_) { this.next_ = next_; } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(CreateArgumentsNode.class) @DenyReplace private static final class FunctionCachedData extends Node implements SpecializationDataNode { @Child FunctionCachedData next_; /** * State Info:
         *   0-31: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#doFunctionCached}
         *        Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *        Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int functionCached_state_0_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doFunctionCached}
         *   Parameter: {@link TruffleWeakReference} weakCachedCallableGen_
*/ @CompilationFinal TruffleWeakReference weakCachedCallableGen__; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field1
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int functionCached_createAndCheckArgumentsNode__field1_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int functionCached_createAndCheckArgumentsNode__field2_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int functionCached_createAndCheckArgumentsNode__field3_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node functionCached_createAndCheckArgumentsNode__field4_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node functionCached_createAndCheckArgumentsNode__field5_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node functionCached_createAndCheckArgumentsNode__field6_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field7
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node functionCached_createAndCheckArgumentsNode__field7_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field8
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node functionCached_createAndCheckArgumentsNode__field8_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field9
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node functionCached_createAndCheckArgumentsNode__field9_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field10
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node functionCached_createAndCheckArgumentsNode__field10_; FunctionCachedData(FunctionCachedData next_) { this.next_ = next_; } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(CreateArgumentsNode.class) @DenyReplace private static final class BuiltinFunctionCachedData extends Node implements SpecializationDataNode { @Child BuiltinFunctionCachedData next_; /** * State Info:
         *   0-31: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
         *        Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *        Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int builtinFunctionCached_state_0_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
         *   Parameter: {@link TruffleWeakReference} weakCachedCallableGen_
*/ @CompilationFinal TruffleWeakReference weakCachedCallableGen__; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field1
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int builtinFunctionCached_createAndCheckArgumentsNode__field1_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int builtinFunctionCached_createAndCheckArgumentsNode__field2_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int builtinFunctionCached_createAndCheckArgumentsNode__field3_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinFunctionCached_createAndCheckArgumentsNode__field4_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinFunctionCached_createAndCheckArgumentsNode__field5_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinFunctionCached_createAndCheckArgumentsNode__field6_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field7
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinFunctionCached_createAndCheckArgumentsNode__field7_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field8
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinFunctionCached_createAndCheckArgumentsNode__field8_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field9
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinFunctionCached_createAndCheckArgumentsNode__field9_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doBuiltinFunctionCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field10
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinFunctionCached_createAndCheckArgumentsNode__field10_; BuiltinFunctionCachedData(BuiltinFunctionCachedData next_) { this.next_ = next_; } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(CreateArgumentsNode.class) @DenyReplace private static final class CallTargetCachedData extends Node implements SpecializationDataNode { @Child CallTargetCachedData next_; /** * State Info:
         *   0-31: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *        Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *        Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int callTargetCached_state_0_; /** * State Info:
         *   0-10: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *        Parameter: {@link GetSignatureNode} getSignatureNode
         *        Inline method: {@link GetSignatureNodeGen#inline}
         *   11-12: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *        Parameter: {@link InlinedConditionProfile} gotMethod
         *        Inline method: {@link InlinedConditionProfile#inline}
         *   13-17: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *        Parameter: {@link GetDefaultsNode} getDefaultsNode
         *        Inline method: {@link GetDefaultsNodeGen#inline}
         *   18-22: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *        Parameter: {@link GetKeywordDefaultsNode} getKwDefaultsNode
         *        Inline method: {@link GetKeywordDefaultsNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int callTargetCached_state_1_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link GetCallTargetNode} getCt
*/ @Child GetCallTargetNode getCt_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field1
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int callTargetCached_createAndCheckArgumentsNode__field1_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int callTargetCached_createAndCheckArgumentsNode__field2_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int callTargetCached_createAndCheckArgumentsNode__field3_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node callTargetCached_createAndCheckArgumentsNode__field4_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node callTargetCached_createAndCheckArgumentsNode__field5_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node callTargetCached_createAndCheckArgumentsNode__field6_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field7
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node callTargetCached_createAndCheckArgumentsNode__field7_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field8
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node callTargetCached_createAndCheckArgumentsNode__field8_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field9
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node callTargetCached_createAndCheckArgumentsNode__field9_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field10
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node callTargetCached_createAndCheckArgumentsNode__field10_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link GetSignatureNode} getSignatureNode
         *   Inline method: {@link GetSignatureNodeGen#inline}
         *   Inline field: {@link Object} field1
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object callTargetCached_getSignatureNode__field1_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link Signature} signature
*/ @CompilationFinal Signature signature_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#doCallTargetCached}
         *   Parameter: {@link RootCallTarget} cachedCallTarget
*/ @CompilationFinal RootCallTarget cachedCallTarget_; CallTargetCachedData(CallTargetCachedData next_) { this.next_ = next_; } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(CreateArgumentsNode.class) @DenyReplace private static final class UncachedData extends Node implements SpecializationDataNode { /** * State Info:
         *   0-31: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#uncached}
         *        Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *        Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int uncached_state_0_; /** * State Info:
         *   0-10: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#uncached}
         *        Parameter: {@link GetSignatureNode} getSignatureNode
         *        Inline method: {@link GetSignatureNodeGen#inline}
         *   11-15: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#uncached}
         *        Parameter: {@link GetDefaultsNode} getDefaultsNode
         *        Inline method: {@link GetDefaultsNodeGen#inline}
         *   16-20: InlinedCache
         *        Specialization: {@link CreateArgumentsNode#uncached}
         *        Parameter: {@link GetKeywordDefaultsNode} getKwDefaultsNode
         *        Inline method: {@link GetKeywordDefaultsNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int uncached_state_1_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#uncached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field1
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int uncached_createAndCheckArgumentsNode__field1_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#uncached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int uncached_createAndCheckArgumentsNode__field2_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#uncached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: int field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int uncached_createAndCheckArgumentsNode__field3_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#uncached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node uncached_createAndCheckArgumentsNode__field4_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#uncached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node uncached_createAndCheckArgumentsNode__field5_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#uncached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node uncached_createAndCheckArgumentsNode__field6_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#uncached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field7
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node uncached_createAndCheckArgumentsNode__field7_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#uncached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field8
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node uncached_createAndCheckArgumentsNode__field8_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#uncached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field9
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node uncached_createAndCheckArgumentsNode__field9_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#uncached}
         *   Parameter: {@link CreateAndCheckArgumentsNode} createAndCheckArgumentsNode
         *   Inline method: {@link CreateAndCheckArgumentsNodeGen#inline}
         *   Inline field: {@link Node} field10
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node uncached_createAndCheckArgumentsNode__field10_; /** * Source Info:
         *   Specialization: {@link CreateArgumentsNode#uncached}
         *   Parameter: {@link GetSignatureNode} getSignatureNode
         *   Inline method: {@link GetSignatureNodeGen#inline}
         *   Inline field: {@link Object} field1
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object uncached_getSignatureNode__field1_; UncachedData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(CreateArgumentsNode.class) @DenyReplace private static final class Uncached extends CreateArgumentsNode { @TruffleBoundary @Override public Object[] execute(PBuiltinFunction arg0Value, Object[] arg1Value, PKeyword[] arg2Value) { if ((isSingleContext())) { if (((arg0Value) != null)) { // assert (arg0Value == (arg0Value)); return CreateArgumentsNode.doBuiltinFunctionCached(arg0Value, arg1Value, arg2Value, (this), (CreateAndCheckArgumentsNodeGen.getUncached()), (arg0Value)); } } return CreateArgumentsNode.uncached(arg0Value, arg1Value, arg2Value, (this), (CreateAndCheckArgumentsNodeGen.getUncached()), (GetSignatureNode.getUncached()), (GetDefaultsNodeGen.getUncached()), (GetKeywordDefaultsNodeGen.getUncached())); } @TruffleBoundary @Override public Object[] execute(PFunction arg0Value, Object[] arg1Value, PKeyword[] arg2Value) { return CreateArgumentsNode.uncached(arg0Value, arg1Value, arg2Value, (this), (CreateAndCheckArgumentsNodeGen.getUncached()), (GetSignatureNode.getUncached()), (GetDefaultsNodeGen.getUncached()), (GetKeywordDefaultsNodeGen.getUncached())); } @TruffleBoundary @Override public Object[] execute(PMethodBase arg0Value, Object[] arg1Value, PKeyword[] arg2Value) { return CreateArgumentsNode.uncached(arg0Value, arg1Value, arg2Value, (this), (CreateAndCheckArgumentsNodeGen.getUncached()), (GetSignatureNode.getUncached()), (GetDefaultsNodeGen.getUncached()), (GetKeywordDefaultsNodeGen.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } /** * Debug Info:
     *   Specialization {@link CreateAndCheckArgumentsNode#doIt}
     *     Activation probability: 1.00000
     *     With/without class size: 64/44 bytes
     * 
*/ @GeneratedBy(CreateAndCheckArgumentsNode.class) @SuppressWarnings("javadoc") public static final class CreateAndCheckArgumentsNodeGen { private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static CreateAndCheckArgumentsNode getUncached() { return CreateAndCheckArgumentsNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#lenProfile__field1_} *
  • {@link Inlined#maxPosProfile__field1_} *
  • {@link Inlined#numKwdsProfile__field1_} *
  • {@link Inlined#applyKeywords__field1_} *
  • {@link Inlined#handleTooManyArgumentsNode__field1_} *
  • {@link Inlined#fillDefaultsNode__field1_} *
  • {@link Inlined#fillKwDefaultsNode__field1_} *
  • {@link Inlined#checkEnclosingTypeNode__field1_} *
  • {@link Inlined#checkEnclosingTypeNode__field2_} *
  • {@link Inlined#checkEnclosingTypeNode__field3_} *
*/ @NeverDefault public static CreateAndCheckArgumentsNode inline(@RequiredField(bits = 32, value = StateField.class)@RequiredField(IntField.class)@RequiredField(IntField.class)@RequiredField(IntField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new CreateAndCheckArgumentsNodeGen.Inlined(target); } @GeneratedBy(CreateAndCheckArgumentsNode.class) @DenyReplace private static final class Inlined extends CreateAndCheckArgumentsNode { /** * State Info:
             *   0-1: InlinedCache
             *        Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *        Parameter: {@link InlinedIntValueProfile} lenProfile
             *        Inline method: {@link InlinedIntValueProfile#inline}
             *   2-3: InlinedCache
             *        Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *        Parameter: {@link InlinedIntValueProfile} maxPosProfile
             *        Inline method: {@link InlinedIntValueProfile#inline}
             *   4-5: InlinedCache
             *        Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *        Parameter: {@link InlinedIntValueProfile} numKwdsProfile
             *        Inline method: {@link InlinedIntValueProfile#inline}
             *   6: InlinedCache
             *        Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *        Parameter: {@link LazyApplyKeywordsNode} applyKeywords
             *        Inline method: {@link LazyApplyKeywordsNodeGen#inline}
             *   7: InlinedCache
             *        Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *        Parameter: {@link LazyHandleTooManyArgumentsNode} handleTooManyArgumentsNode
             *        Inline method: {@link LazyHandleTooManyArgumentsNodeGen#inline}
             *   8-9: InlinedCache
             *        Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *        Parameter: {@link ApplyPositionalArguments} applyPositional
             *        Inline method: {@link ApplyPositionalArgumentsNodeGen#inline}
             *   10: InlinedCache
             *        Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *        Parameter: {@link LazyFillDefaultsNode} fillDefaultsNode
             *        Inline method: {@link LazyFillDefaultsNodeGen#inline}
             *   11: InlinedCache
             *        Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *        Parameter: {@link LazyFillKwDefaultsNode} fillKwDefaultsNode
             *        Inline method: {@link LazyFillKwDefaultsNodeGen#inline}
             *   12-31: InlinedCache
             *        Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *        Parameter: {@link CheckEnclosingTypeNode} checkEnclosingTypeNode
             *        Inline method: {@link CheckEnclosingTypeNodeGen#inline}
             * 
*/ private final StateField state_0_; private final IntField lenProfile__field1_; private final IntField maxPosProfile__field1_; private final IntField numKwdsProfile__field1_; private final ReferenceField applyKeywords__field1_; private final ReferenceField handleTooManyArgumentsNode__field1_; private final ReferenceField fillDefaultsNode__field1_; private final ReferenceField fillKwDefaultsNode__field1_; private final ReferenceField checkEnclosingTypeNode__field1_; private final ReferenceField checkEnclosingTypeNode__field2_; private final ReferenceField checkEnclosingTypeNode__field3_; /** * Source Info:
             *   Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *   Parameter: {@link InlinedIntValueProfile} lenProfile
             *   Inline method: {@link InlinedIntValueProfile#inline}
*/ private final InlinedIntValueProfile lenProfile_; /** * Source Info:
             *   Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *   Parameter: {@link InlinedIntValueProfile} maxPosProfile
             *   Inline method: {@link InlinedIntValueProfile#inline}
*/ private final InlinedIntValueProfile maxPosProfile_; /** * Source Info:
             *   Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *   Parameter: {@link InlinedIntValueProfile} numKwdsProfile
             *   Inline method: {@link InlinedIntValueProfile#inline}
*/ private final InlinedIntValueProfile numKwdsProfile_; /** * Source Info:
             *   Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *   Parameter: {@link LazyApplyKeywordsNode} applyKeywords
             *   Inline method: {@link LazyApplyKeywordsNodeGen#inline}
*/ private final LazyApplyKeywordsNode applyKeywords_; /** * Source Info:
             *   Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *   Parameter: {@link LazyHandleTooManyArgumentsNode} handleTooManyArgumentsNode
             *   Inline method: {@link LazyHandleTooManyArgumentsNodeGen#inline}
*/ private final LazyHandleTooManyArgumentsNode handleTooManyArgumentsNode_; /** * Source Info:
             *   Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *   Parameter: {@link ApplyPositionalArguments} applyPositional
             *   Inline method: {@link ApplyPositionalArgumentsNodeGen#inline}
*/ private final ApplyPositionalArguments applyPositional_; /** * Source Info:
             *   Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *   Parameter: {@link LazyFillDefaultsNode} fillDefaultsNode
             *   Inline method: {@link LazyFillDefaultsNodeGen#inline}
*/ private final LazyFillDefaultsNode fillDefaultsNode_; /** * Source Info:
             *   Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *   Parameter: {@link LazyFillKwDefaultsNode} fillKwDefaultsNode
             *   Inline method: {@link LazyFillKwDefaultsNodeGen#inline}
*/ private final LazyFillKwDefaultsNode fillKwDefaultsNode_; /** * Source Info:
             *   Specialization: {@link CreateAndCheckArgumentsNode#doIt}
             *   Parameter: {@link CheckEnclosingTypeNode} checkEnclosingTypeNode
             *   Inline method: {@link CheckEnclosingTypeNodeGen#inline}
*/ private final CheckEnclosingTypeNode checkEnclosingTypeNode_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(CreateAndCheckArgumentsNode.class); this.state_0_ = target.getState(0, 32); this.lenProfile__field1_ = target.getPrimitive(1, IntField.class); this.maxPosProfile__field1_ = target.getPrimitive(2, IntField.class); this.numKwdsProfile__field1_ = target.getPrimitive(3, IntField.class); this.applyKeywords__field1_ = target.getReference(4, Node.class); this.handleTooManyArgumentsNode__field1_ = target.getReference(5, Node.class); this.fillDefaultsNode__field1_ = target.getReference(6, Node.class); this.fillKwDefaultsNode__field1_ = target.getReference(7, Node.class); this.checkEnclosingTypeNode__field1_ = target.getReference(8, Node.class); this.checkEnclosingTypeNode__field2_ = target.getReference(9, Node.class); this.checkEnclosingTypeNode__field3_ = target.getReference(10, Node.class); this.lenProfile_ = InlinedIntValueProfile.inline(InlineTarget.create(InlinedIntValueProfile.class, state_0_.subUpdater(0, 2), lenProfile__field1_)); this.maxPosProfile_ = InlinedIntValueProfile.inline(InlineTarget.create(InlinedIntValueProfile.class, state_0_.subUpdater(2, 2), maxPosProfile__field1_)); this.numKwdsProfile_ = InlinedIntValueProfile.inline(InlineTarget.create(InlinedIntValueProfile.class, state_0_.subUpdater(4, 2), numKwdsProfile__field1_)); this.applyKeywords_ = LazyApplyKeywordsNodeGen.inline(InlineTarget.create(LazyApplyKeywordsNode.class, state_0_.subUpdater(6, 1), applyKeywords__field1_)); this.handleTooManyArgumentsNode_ = LazyHandleTooManyArgumentsNodeGen.inline(InlineTarget.create(LazyHandleTooManyArgumentsNode.class, state_0_.subUpdater(7, 1), handleTooManyArgumentsNode__field1_)); this.applyPositional_ = ApplyPositionalArgumentsNodeGen.inline(InlineTarget.create(ApplyPositionalArguments.class, state_0_.subUpdater(8, 2))); this.fillDefaultsNode_ = LazyFillDefaultsNodeGen.inline(InlineTarget.create(LazyFillDefaultsNode.class, state_0_.subUpdater(10, 1), fillDefaultsNode__field1_)); this.fillKwDefaultsNode_ = LazyFillKwDefaultsNodeGen.inline(InlineTarget.create(LazyFillKwDefaultsNode.class, state_0_.subUpdater(11, 1), fillKwDefaultsNode__field1_)); this.checkEnclosingTypeNode_ = CheckEnclosingTypeNodeGen.inline(InlineTarget.create(CheckEnclosingTypeNode.class, state_0_.subUpdater(12, 20), checkEnclosingTypeNode__field1_, checkEnclosingTypeNode__field2_, checkEnclosingTypeNode__field3_)); } @Override public Object[] execute(Node arg0Value, PythonObject arg1Value, Object[] arg2Value, PKeyword[] arg3Value, Signature arg4Value, Object arg5Value, Object arg6Value, Object[] arg7Value, PKeyword[] arg8Value, boolean arg9Value) { assert InlineSupport.validate(arg0Value, this.state_0_, this.lenProfile__field1_, this.state_0_, this.maxPosProfile__field1_, this.state_0_, this.numKwdsProfile__field1_, this.state_0_, this.applyKeywords__field1_, this.state_0_, this.handleTooManyArgumentsNode__field1_, this.state_0_, this.state_0_, this.fillDefaultsNode__field1_, this.state_0_, this.fillKwDefaultsNode__field1_, this.state_0_, this.checkEnclosingTypeNode__field1_, this.checkEnclosingTypeNode__field2_, this.checkEnclosingTypeNode__field3_); return CreateAndCheckArgumentsNode.doIt(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, arg6Value, arg7Value, arg8Value, arg9Value, this.lenProfile_, this.maxPosProfile_, this.numKwdsProfile_, this.applyKeywords_, this.handleTooManyArgumentsNode_, this.applyPositional_, this.fillDefaultsNode_, this.fillKwDefaultsNode_, this.checkEnclosingTypeNode_); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(CreateAndCheckArgumentsNode.class) @DenyReplace private static final class Uncached extends CreateAndCheckArgumentsNode { @TruffleBoundary @Override public Object[] execute(Node arg0Value, PythonObject arg1Value, Object[] arg2Value, PKeyword[] arg3Value, Signature arg4Value, Object arg5Value, Object arg6Value, Object[] arg7Value, PKeyword[] arg8Value, boolean arg9Value) { return CreateAndCheckArgumentsNode.doIt(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, arg6Value, arg7Value, arg8Value, arg9Value, (InlinedIntValueProfile.getUncached()), (InlinedIntValueProfile.getUncached()), (InlinedIntValueProfile.getUncached()), (LazyApplyKeywordsNodeGen.getUncached()), (LazyHandleTooManyArgumentsNodeGen.getUncached()), (ApplyPositionalArguments.getUncached()), (LazyFillDefaultsNodeGen.getUncached()), (LazyFillKwDefaultsNodeGen.getUncached()), (CheckEnclosingTypeNodeGen.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link LazyHandleTooManyArgumentsNode#doIt}
     *     Activation probability: 1.00000
     *     With/without class size: 24/4 bytes
     * 
*/ @GeneratedBy(LazyHandleTooManyArgumentsNode.class) @SuppressWarnings("javadoc") public static final class LazyHandleTooManyArgumentsNodeGen { private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static LazyHandleTooManyArgumentsNode getUncached() { return LazyHandleTooManyArgumentsNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#node_} *
*/ @NeverDefault public static LazyHandleTooManyArgumentsNode inline(@RequiredField(bits = 1, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new LazyHandleTooManyArgumentsNodeGen.Inlined(target); } @GeneratedBy(LazyHandleTooManyArgumentsNode.class) @DenyReplace private static final class Inlined extends LazyHandleTooManyArgumentsNode { /** * State Info:
             *   0: SpecializationActive {@link LazyHandleTooManyArgumentsNode#doIt}
             * 
*/ private final StateField state_0_; private final ReferenceField node_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(LazyHandleTooManyArgumentsNode.class); this.state_0_ = target.getState(0, 1); this.node_ = target.getReference(1, HandleTooManyArgumentsNode.class); } @Override public HandleTooManyArgumentsNode execute(Node arg0Value) { int state_0 = this.state_0_.get(arg0Value); if (state_0 != 0 /* is SpecializationActive[CreateArgumentsNode.LazyHandleTooManyArgumentsNode.doIt(HandleTooManyArgumentsNode)] */) { { HandleTooManyArgumentsNode node__ = this.node_.get(arg0Value); if (node__ != null) { return LazyHandleTooManyArgumentsNode.doIt(node__); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value); } private HandleTooManyArgumentsNode executeAndSpecialize(Node arg0Value) { int state_0 = this.state_0_.get(arg0Value); HandleTooManyArgumentsNode node__ = arg0Value.insert((HandleTooManyArgumentsNodeGen.create())); Objects.requireNonNull(node__, "Specialization 'doIt(HandleTooManyArgumentsNode)' cache 'node' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.node_.set(arg0Value, node__); state_0 = state_0 | 0b1 /* add SpecializationActive[CreateArgumentsNode.LazyHandleTooManyArgumentsNode.doIt(HandleTooManyArgumentsNode)] */; this.state_0_.set(arg0Value, state_0); return LazyHandleTooManyArgumentsNode.doIt(node__); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(LazyHandleTooManyArgumentsNode.class) @DenyReplace private static final class Uncached extends LazyHandleTooManyArgumentsNode { @TruffleBoundary @Override public HandleTooManyArgumentsNode execute(Node arg0Value) { return LazyHandleTooManyArgumentsNode.doIt((HandleTooManyArgumentsNode.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link HandleTooManyArgumentsNode#doCached}
     *     Activation probability: 0.65000
     *     With/without class size: 17/4 bytes
     *   Specialization {@link HandleTooManyArgumentsNode#doUncached}
     *     Activation probability: 0.35000
     *     With/without class size: 8/0 bytes
     * 
*/ @GeneratedBy(HandleTooManyArgumentsNode.class) @SuppressWarnings("javadoc") protected static final class HandleTooManyArgumentsNodeGen extends HandleTooManyArgumentsNode { static final ReferenceField CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "cached_cache", CachedData.class); private static final Uncached UNCACHED = new Uncached(); /** * State Info:
         *   0: SpecializationActive {@link HandleTooManyArgumentsNode#doCached}
         *   1: SpecializationActive {@link HandleTooManyArgumentsNode#doUncached}
         * 
*/ @CompilationFinal private int state_0_; /** * Source Info:
         *   Specialization: {@link HandleTooManyArgumentsNode#doCached}
         *   Parameter: {@link PRaiseNode} raise
*/ @Child private PRaiseNode raise; /** * Source Info:
         *   Specialization: {@link HandleTooManyArgumentsNode#doCached}
         *   Parameter: {@link EqualNode} equalNode
*/ @Child private EqualNode equalNode; @UnsafeAccessedField @CompilationFinal private CachedData cached_cache; private HandleTooManyArgumentsNodeGen() { } @ExplodeLoop @Override public PException execute(Object[] arg0Value, Object arg1Value, Signature arg2Value, int arg3Value, int arg4Value, int arg5Value, int arg6Value, boolean arg7Value, int arg8Value) { int state_0 = this.state_0_; if (state_0 != 0 /* is SpecializationActive[CreateArgumentsNode.HandleTooManyArgumentsNode.doCached(Object[], Object, Signature, int, int, int, int, boolean, int, PRaiseNode, EqualNode, int)] || SpecializationActive[CreateArgumentsNode.HandleTooManyArgumentsNode.doUncached(Object[], Object, Signature, int, int, int, int, boolean, int, PRaiseNode, EqualNode)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[CreateArgumentsNode.HandleTooManyArgumentsNode.doCached(Object[], Object, Signature, int, int, int, int, boolean, int, PRaiseNode, EqualNode, int)] */) { CachedData s0_ = this.cached_cache; while (s0_ != null) { { PRaiseNode raise_ = this.raise; if (raise_ != null) { EqualNode equalNode_ = this.equalNode; if (equalNode_ != null) { if ((arg4Value == s0_.cachedKwOnlyArgCount_)) { assert DSLSupport.assertIdempotence((s0_.cachedKwOnlyArgCount_ <= 32)); return HandleTooManyArgumentsNode.doCached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, arg6Value, arg7Value, arg8Value, raise_, equalNode_, s0_.cachedKwOnlyArgCount_); } } } } s0_ = s0_.next_; } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[CreateArgumentsNode.HandleTooManyArgumentsNode.doUncached(Object[], Object, Signature, int, int, int, int, boolean, int, PRaiseNode, EqualNode)] */) { { PRaiseNode raise_1 = this.raise; if (raise_1 != null) { EqualNode equalNode_1 = this.equalNode; if (equalNode_1 != null) { return HandleTooManyArgumentsNode.doUncached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, arg6Value, arg7Value, arg8Value, raise_1, equalNode_1); } } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, arg6Value, arg7Value, arg8Value); } private PException executeAndSpecialize(Object[] arg0Value, Object arg1Value, Signature arg2Value, int arg3Value, int arg4Value, int arg5Value, int arg6Value, boolean arg7Value, int arg8Value) { int state_0 = this.state_0_; if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[CreateArgumentsNode.HandleTooManyArgumentsNode.doUncached(Object[], Object, Signature, int, int, int, int, boolean, int, PRaiseNode, EqualNode)] */) { while (true) { int count0_ = 0; CachedData s0_ = CACHED_CACHE_UPDATER.getVolatile(this); CachedData s0_original = s0_; while (s0_ != null) { { PRaiseNode raise_ = this.raise; if (raise_ != null) { EqualNode equalNode_ = this.equalNode; if (equalNode_ != null) { if ((arg4Value == s0_.cachedKwOnlyArgCount_)) { assert DSLSupport.assertIdempotence((s0_.cachedKwOnlyArgCount_ <= 32)); break; } } } } count0_++; s0_ = s0_.next_; } if (s0_ == null) { { int cachedKwOnlyArgCount__ = (arg4Value); // assert (arg4Value == s0_.cachedKwOnlyArgCount_); if ((cachedKwOnlyArgCount__ <= 32) && count0_ < (3)) { s0_ = new CachedData(s0_original); PRaiseNode raise_; PRaiseNode raise__shared = this.raise; if (raise__shared != null) { raise_ = raise__shared; } else { raise_ = this.insert((PRaiseNode.create())); if (raise_ == null) { throw new IllegalStateException("Specialization 'doCached(Object[], Object, Signature, int, int, int, int, boolean, int, PRaiseNode, EqualNode, int)' contains a shared cache with name 'raise' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } if (this.raise == null) { this.raise = raise_; } EqualNode equalNode_; EqualNode equalNode__shared = this.equalNode; if (equalNode__shared != null) { equalNode_ = equalNode__shared; } else { equalNode_ = this.insert((EqualNode.create())); if (equalNode_ == null) { throw new IllegalStateException("Specialization 'doCached(Object[], Object, Signature, int, int, int, int, boolean, int, PRaiseNode, EqualNode, int)' contains a shared cache with name 'equalNode' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } if (this.equalNode == null) { this.equalNode = equalNode_; } s0_.cachedKwOnlyArgCount_ = cachedKwOnlyArgCount__; if (!CACHED_CACHE_UPDATER.compareAndSet(this, s0_original, s0_)) { continue; } state_0 = state_0 | 0b1 /* add SpecializationActive[CreateArgumentsNode.HandleTooManyArgumentsNode.doCached(Object[], Object, Signature, int, int, int, int, boolean, int, PRaiseNode, EqualNode, int)] */; this.state_0_ = state_0; } } } if (s0_ != null) { return HandleTooManyArgumentsNode.doCached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, arg6Value, arg7Value, arg8Value, this.raise, this.equalNode, s0_.cachedKwOnlyArgCount_); } break; } } PRaiseNode raise_1; PRaiseNode raise_1_shared = this.raise; if (raise_1_shared != null) { raise_1 = raise_1_shared; } else { raise_1 = this.insert((PRaiseNode.create())); if (raise_1 == null) { throw new IllegalStateException("Specialization 'doUncached(Object[], Object, Signature, int, int, int, int, boolean, int, PRaiseNode, EqualNode)' contains a shared cache with name 'raise' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } if (this.raise == null) { VarHandle.storeStoreFence(); this.raise = raise_1; } EqualNode equalNode_1; EqualNode equalNode_1_shared = this.equalNode; if (equalNode_1_shared != null) { equalNode_1 = equalNode_1_shared; } else { equalNode_1 = this.insert((EqualNode.create())); if (equalNode_1 == null) { throw new IllegalStateException("Specialization 'doUncached(Object[], Object, Signature, int, int, int, int, boolean, int, PRaiseNode, EqualNode)' contains a shared cache with name 'equalNode' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } if (this.equalNode == null) { VarHandle.storeStoreFence(); this.equalNode = equalNode_1; } this.cached_cache = null; state_0 = state_0 & 0xfffffffe /* remove SpecializationActive[CreateArgumentsNode.HandleTooManyArgumentsNode.doCached(Object[], Object, Signature, int, int, int, int, boolean, int, PRaiseNode, EqualNode, int)] */; state_0 = state_0 | 0b10 /* add SpecializationActive[CreateArgumentsNode.HandleTooManyArgumentsNode.doUncached(Object[], Object, Signature, int, int, int, int, boolean, int, PRaiseNode, EqualNode)] */; this.state_0_ = state_0; return HandleTooManyArgumentsNode.doUncached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, arg6Value, arg7Value, arg8Value, raise_1, equalNode_1); } @Override public NodeCost getCost() { int state_0 = this.state_0_; if (state_0 == 0) { return NodeCost.UNINITIALIZED; } else { if ((state_0 & (state_0 - 1)) == 0 /* is-single */) { CachedData s0_ = this.cached_cache; if ((s0_ == null || s0_.next_ == null)) { return NodeCost.MONOMORPHIC; } } } return NodeCost.POLYMORPHIC; } @NeverDefault public static HandleTooManyArgumentsNode create() { return new HandleTooManyArgumentsNodeGen(); } @NeverDefault public static HandleTooManyArgumentsNode getUncached() { return HandleTooManyArgumentsNodeGen.UNCACHED; } @GeneratedBy(HandleTooManyArgumentsNode.class) @DenyReplace private static final class CachedData implements SpecializationDataNode { @CompilationFinal final CachedData next_; /** * Source Info:
             *   Specialization: {@link HandleTooManyArgumentsNode#doCached}
             *   Parameter: int cachedKwOnlyArgCount
*/ @CompilationFinal int cachedKwOnlyArgCount_; CachedData(CachedData next_) { this.next_ = next_; } } @GeneratedBy(HandleTooManyArgumentsNode.class) @DenyReplace private static final class Uncached extends HandleTooManyArgumentsNode { @TruffleBoundary @Override public PException execute(Object[] arg0Value, Object arg1Value, Signature arg2Value, int arg3Value, int arg4Value, int arg5Value, int arg6Value, boolean arg7Value, int arg8Value) { return HandleTooManyArgumentsNode.doUncached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, arg6Value, arg7Value, arg8Value, (PRaiseNode.getUncached()), (EqualNode.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link CheckEnclosingTypeNode#doEnclosingTypeCheck}
     *     Activation probability: 0.65000
     *     With/without class size: 24/15 bytes
     *   Specialization {@link CheckEnclosingTypeNode#doNothing}
     *     Activation probability: 0.35000
     *     With/without class size: 8/0 bytes
     * 
*/ @GeneratedBy(CheckEnclosingTypeNode.class) @SuppressWarnings("javadoc") static final class CheckEnclosingTypeNodeGen { private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static CheckEnclosingTypeNode getUncached() { return CheckEnclosingTypeNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#enclosingTypeCheck_getClassNode__field1_} *
  • {@link Inlined#enclosingTypeCheck_isSubtypeMRONode_} *
  • {@link Inlined#enclosingTypeCheck_raiseNode__field1_} *
*/ @NeverDefault public static CheckEnclosingTypeNode inline(@RequiredField(bits = 20, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new CheckEnclosingTypeNodeGen.Inlined(target); } @GeneratedBy(CheckEnclosingTypeNode.class) @DenyReplace private static final class Inlined extends CheckEnclosingTypeNode { /** * State Info:
             *   0: SpecializationActive {@link CheckEnclosingTypeNode#doEnclosingTypeCheck}
             *   1: SpecializationActive {@link CheckEnclosingTypeNode#doNothing}
             *   2-18: InlinedCache
             *        Specialization: {@link CheckEnclosingTypeNode#doEnclosingTypeCheck}
             *        Parameter: {@link GetClassNode} getClassNode
             *        Inline method: {@link GetClassNodeGen#inline}
             *   19: InlinedCache
             *        Specialization: {@link CheckEnclosingTypeNode#doEnclosingTypeCheck}
             *        Parameter: {@link Lazy} raiseNode
             *        Inline method: {@link LazyNodeGen#inline}
             * 
*/ private final StateField state_0_; private final ReferenceField enclosingTypeCheck_getClassNode__field1_; private final ReferenceField enclosingTypeCheck_isSubtypeMRONode_; private final ReferenceField enclosingTypeCheck_raiseNode__field1_; /** * Source Info:
             *   Specialization: {@link CheckEnclosingTypeNode#doEnclosingTypeCheck}
             *   Parameter: {@link GetClassNode} getClassNode
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode enclosingTypeCheck_getClassNode_; /** * Source Info:
             *   Specialization: {@link CheckEnclosingTypeNode#doEnclosingTypeCheck}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
*/ private final Lazy enclosingTypeCheck_raiseNode_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(CheckEnclosingTypeNode.class); this.state_0_ = target.getState(0, 20); this.enclosingTypeCheck_getClassNode__field1_ = target.getReference(1, Node.class); this.enclosingTypeCheck_isSubtypeMRONode_ = target.getReference(2, IsSubtypeNode.class); this.enclosingTypeCheck_raiseNode__field1_ = target.getReference(3, Node.class); this.enclosingTypeCheck_getClassNode_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, state_0_.subUpdater(2, 17), enclosingTypeCheck_getClassNode__field1_)); this.enclosingTypeCheck_raiseNode_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, state_0_.subUpdater(19, 1), enclosingTypeCheck_raiseNode__field1_)); } @Override public void execute(Node arg0Value, Signature arg1Value, Object arg2Value, Object[] arg3Value) { int state_0 = this.state_0_.get(arg0Value); if ((state_0 & 0b11) != 0 /* is SpecializationActive[CreateArgumentsNode.CheckEnclosingTypeNode.doEnclosingTypeCheck(Node, Signature, PBuiltinFunction, Object[], Object, GetClassNode, IsSubtypeNode, Lazy)] || SpecializationActive[CreateArgumentsNode.CheckEnclosingTypeNode.doNothing(Signature, Object, Object[])] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[CreateArgumentsNode.CheckEnclosingTypeNode.doEnclosingTypeCheck(Node, Signature, PBuiltinFunction, Object[], Object, GetClassNode, IsSubtypeNode, Lazy)] */ && arg2Value instanceof PBuiltinFunction) { PBuiltinFunction arg2Value_ = (PBuiltinFunction) arg2Value; { IsSubtypeNode isSubtypeMRONode__ = this.enclosingTypeCheck_isSubtypeMRONode_.get(arg0Value); if (isSubtypeMRONode__ != null) { if ((CheckEnclosingTypeNode.checkEnclosingType(arg1Value, arg2Value_))) { Object self__ = (CheckEnclosingTypeNode.getSelf(arg3Value)); assert InlineSupport.validate(arg0Value, this.state_0_, this.enclosingTypeCheck_getClassNode__field1_, this.state_0_, this.enclosingTypeCheck_raiseNode__field1_); CheckEnclosingTypeNode.doEnclosingTypeCheck(arg0Value, arg1Value, arg2Value_, arg3Value, self__, this.enclosingTypeCheck_getClassNode_, isSubtypeMRONode__, this.enclosingTypeCheck_raiseNode_); return; } } } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[CreateArgumentsNode.CheckEnclosingTypeNode.doNothing(Signature, Object, Object[])] */) { if ((!(CheckEnclosingTypeNode.checkEnclosingType(arg1Value, arg2Value)))) { CheckEnclosingTypeNode.doNothing(arg1Value, arg2Value, arg3Value); return; } } } CompilerDirectives.transferToInterpreterAndInvalidate(); executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value); return; } private void executeAndSpecialize(Node arg0Value, Signature arg1Value, Object arg2Value, Object[] arg3Value) { int state_0 = this.state_0_.get(arg0Value); { Object self__ = null; if (arg2Value instanceof PBuiltinFunction) { PBuiltinFunction arg2Value_ = (PBuiltinFunction) arg2Value; if ((CheckEnclosingTypeNode.checkEnclosingType(arg1Value, arg2Value_))) { self__ = (CheckEnclosingTypeNode.getSelf(arg3Value)); IsSubtypeNode isSubtypeMRONode__ = arg0Value.insert((IsSubtypeNode.create())); Objects.requireNonNull(isSubtypeMRONode__, "Specialization 'doEnclosingTypeCheck(Node, Signature, PBuiltinFunction, Object[], Object, GetClassNode, IsSubtypeNode, Lazy)' cache 'isSubtypeMRONode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.enclosingTypeCheck_isSubtypeMRONode_.set(arg0Value, isSubtypeMRONode__); state_0 = state_0 | 0b1 /* add SpecializationActive[CreateArgumentsNode.CheckEnclosingTypeNode.doEnclosingTypeCheck(Node, Signature, PBuiltinFunction, Object[], Object, GetClassNode, IsSubtypeNode, Lazy)] */; this.state_0_.set(arg0Value, state_0); assert InlineSupport.validate(arg0Value, this.state_0_, this.enclosingTypeCheck_getClassNode__field1_, this.state_0_, this.enclosingTypeCheck_raiseNode__field1_); CheckEnclosingTypeNode.doEnclosingTypeCheck(arg0Value, arg1Value, arg2Value_, arg3Value, self__, this.enclosingTypeCheck_getClassNode_, isSubtypeMRONode__, this.enclosingTypeCheck_raiseNode_); return; } } } if ((!(CheckEnclosingTypeNode.checkEnclosingType(arg1Value, arg2Value)))) { state_0 = state_0 | 0b10 /* add SpecializationActive[CreateArgumentsNode.CheckEnclosingTypeNode.doNothing(Signature, Object, Object[])] */; this.state_0_.set(arg0Value, state_0); CheckEnclosingTypeNode.doNothing(arg1Value, arg2Value, arg3Value); return; } throw new UnsupportedSpecializationException(this, new Node[] {null, null, null, null}, arg0Value, arg1Value, arg2Value, arg3Value); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(CheckEnclosingTypeNode.class) @DenyReplace private static final class Uncached extends CheckEnclosingTypeNode { @TruffleBoundary @Override public void execute(Node arg0Value, Signature arg1Value, Object arg2Value, Object[] arg3Value) { if (arg2Value instanceof PBuiltinFunction) { PBuiltinFunction arg2Value_ = (PBuiltinFunction) arg2Value; if ((CheckEnclosingTypeNode.checkEnclosingType(arg1Value, arg2Value_))) { CheckEnclosingTypeNode.doEnclosingTypeCheck(arg0Value, arg1Value, arg2Value_, arg3Value, (CheckEnclosingTypeNode.getSelf(arg3Value)), (GetClassNode.getUncached()), (IsSubtypeNode.getUncached()), (Lazy.getUncached())); return; } } if ((!(CheckEnclosingTypeNode.checkEnclosingType(arg1Value, arg2Value)))) { CheckEnclosingTypeNode.doNothing(arg1Value, arg2Value, arg3Value); return; } throw new UnsupportedSpecializationException(this, new Node[] {null, null, null, null}, arg0Value, arg1Value, arg2Value, arg3Value); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link ApplyPositionalArguments#doIt}
     *     Activation probability: 0.65000
     *     With/without class size: 11/0 bytes
     *   Specialization {@link ApplyPositionalArguments#doNothing}
     *     Activation probability: 0.35000
     *     With/without class size: 8/0 bytes
     * 
*/ @GeneratedBy(ApplyPositionalArguments.class) @SuppressWarnings("javadoc") protected static final class ApplyPositionalArgumentsNodeGen { private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static ApplyPositionalArguments getUncached() { return ApplyPositionalArgumentsNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
*/ @NeverDefault public static ApplyPositionalArguments inline(@RequiredField(bits = 2, value = StateField.class) InlineTarget target) { return new ApplyPositionalArgumentsNodeGen.Inlined(target); } @GeneratedBy(ApplyPositionalArguments.class) @DenyReplace private static final class Inlined extends ApplyPositionalArguments { /** * State Info:
             *   0: SpecializationActive {@link ApplyPositionalArguments#doIt}
             *   1: SpecializationActive {@link ApplyPositionalArguments#doNothing}
             * 
*/ private final StateField state_0_; private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(ApplyPositionalArguments.class); this.state_0_ = target.getState(0, 2); } @Override public int execute(Node arg0Value, Object[] arg1Value, Object[] arg2Value, int arg3Value, int arg4Value, int arg5Value) { int state_0 = this.state_0_.get(arg0Value); if (state_0 != 0 /* is SpecializationActive[CreateArgumentsNode.ApplyPositionalArguments.doIt(Object[], Object[], int, int, int)] || SpecializationActive[CreateArgumentsNode.ApplyPositionalArguments.doNothing(Object[], Object[], int, int, int)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[CreateArgumentsNode.ApplyPositionalArguments.doIt(Object[], Object[], int, int, int)] */) { if ((arg3Value < arg4Value)) { return doIt(arg1Value, arg2Value, arg3Value, arg4Value, arg5Value); } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[CreateArgumentsNode.ApplyPositionalArguments.doNothing(Object[], Object[], int, int, int)] */) { if ((arg3Value >= arg4Value)) { return doNothing(arg1Value, arg2Value, arg3Value, arg4Value, arg5Value); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value); } private int executeAndSpecialize(Node arg0Value, Object[] arg1Value, Object[] arg2Value, int arg3Value, int arg4Value, int arg5Value) { int state_0 = this.state_0_.get(arg0Value); if ((arg3Value < arg4Value)) { state_0 = state_0 | 0b1 /* add SpecializationActive[CreateArgumentsNode.ApplyPositionalArguments.doIt(Object[], Object[], int, int, int)] */; this.state_0_.set(arg0Value, state_0); return doIt(arg1Value, arg2Value, arg3Value, arg4Value, arg5Value); } if ((arg3Value >= arg4Value)) { state_0 = state_0 | 0b10 /* add SpecializationActive[CreateArgumentsNode.ApplyPositionalArguments.doNothing(Object[], Object[], int, int, int)] */; this.state_0_.set(arg0Value, state_0); return doNothing(arg1Value, arg2Value, arg3Value, arg4Value, arg5Value); } throw new UnsupportedSpecializationException(this, new Node[] {null, null, null, null, null, null}, arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(ApplyPositionalArguments.class) @DenyReplace private static final class Uncached extends ApplyPositionalArguments { @TruffleBoundary @Override public int execute(Node arg0Value, Object[] arg1Value, Object[] arg2Value, int arg3Value, int arg4Value, int arg5Value) { if ((arg3Value < arg4Value)) { return doIt(arg1Value, arg2Value, arg3Value, arg4Value, arg5Value); } if ((arg3Value >= arg4Value)) { return doNothing(arg1Value, arg2Value, arg3Value, arg4Value, arg5Value); } throw new UnsupportedSpecializationException(this, new Node[] {null, null, null, null, null, null}, arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link LazyApplyKeywordsNode#doIt}
     *     Activation probability: 1.00000
     *     With/without class size: 24/4 bytes
     * 
*/ @GeneratedBy(LazyApplyKeywordsNode.class) @SuppressWarnings("javadoc") public static final class LazyApplyKeywordsNodeGen { private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static LazyApplyKeywordsNode getUncached() { return LazyApplyKeywordsNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#applyKeywordsNode_} *
*/ @NeverDefault public static LazyApplyKeywordsNode inline(@RequiredField(bits = 1, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new LazyApplyKeywordsNodeGen.Inlined(target); } @GeneratedBy(LazyApplyKeywordsNode.class) @DenyReplace private static final class Inlined extends LazyApplyKeywordsNode { /** * State Info:
             *   0: SpecializationActive {@link LazyApplyKeywordsNode#doIt}
             * 
*/ private final StateField state_0_; private final ReferenceField applyKeywordsNode_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(LazyApplyKeywordsNode.class); this.state_0_ = target.getState(0, 1); this.applyKeywordsNode_ = target.getReference(1, ApplyKeywordsNode.class); } @Override public ApplyKeywordsNode execute(Node arg0Value) { int state_0 = this.state_0_.get(arg0Value); if (state_0 != 0 /* is SpecializationActive[CreateArgumentsNode.LazyApplyKeywordsNode.doIt(ApplyKeywordsNode)] */) { { ApplyKeywordsNode applyKeywordsNode__ = this.applyKeywordsNode_.get(arg0Value); if (applyKeywordsNode__ != null) { return doIt(applyKeywordsNode__); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value); } private ApplyKeywordsNode executeAndSpecialize(Node arg0Value) { int state_0 = this.state_0_.get(arg0Value); ApplyKeywordsNode applyKeywordsNode__ = arg0Value.insert((ApplyKeywordsNodeGen.create())); Objects.requireNonNull(applyKeywordsNode__, "Specialization 'doIt(ApplyKeywordsNode)' cache 'applyKeywordsNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.applyKeywordsNode_.set(arg0Value, applyKeywordsNode__); state_0 = state_0 | 0b1 /* add SpecializationActive[CreateArgumentsNode.LazyApplyKeywordsNode.doIt(ApplyKeywordsNode)] */; this.state_0_.set(arg0Value, state_0); return doIt(applyKeywordsNode__); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(LazyApplyKeywordsNode.class) @DenyReplace private static final class Uncached extends LazyApplyKeywordsNode { @TruffleBoundary @Override public ApplyKeywordsNode execute(Node arg0Value) { return doIt((ApplyKeywordsNodeGen.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link ApplyKeywordsNode#applyCached}
     *     Activation probability: 0.65000
     *     With/without class size: 48/46 bytes
     *   Specialization {@link ApplyKeywordsNode#applyUncached}
     *     Activation probability: 0.35000
     *     With/without class size: 19/25 bytes
     * 
*/ @GeneratedBy(ApplyKeywordsNode.class) @SuppressWarnings("javadoc") protected static final class ApplyKeywordsNodeGen extends ApplyKeywordsNode { private static final StateField APPLY_CACHED__APPLY_KEYWORDS_NODE_APPLY_CACHED_STATE_0_UPDATER = StateField.create(ApplyCachedData.lookup_(), "applyCached_state_0_"); private static final StateField APPLY_UNCACHED__APPLY_KEYWORDS_NODE_APPLY_UNCACHED_STATE_0_UPDATER = StateField.create(ApplyUncachedData.lookup_(), "applyUncached_state_0_"); static final ReferenceField APPLY_CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "applyCached_cache", ApplyCachedData.class); /** * Source Info:
         *   Specialization: {@link ApplyKeywordsNode#applyCached}
         *   Parameter: {@link InlinedBranchProfile} posArgOnlyPassedAsKeywordProfile
         *   Inline method: {@link InlinedBranchProfile#inline}
*/ private static final InlinedBranchProfile INLINED_APPLY_CACHED_POS_ARG_ONLY_PASSED_AS_KEYWORD_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, APPLY_CACHED__APPLY_KEYWORDS_NODE_APPLY_CACHED_STATE_0_UPDATER.subUpdater(0, 1))); /** * Source Info:
         *   Specialization: {@link ApplyKeywordsNode#applyCached}
         *   Parameter: {@link InlinedBranchProfile} kwOnlyIdxFoundProfile
         *   Inline method: {@link InlinedBranchProfile#inline}
*/ private static final InlinedBranchProfile INLINED_APPLY_CACHED_KW_ONLY_IDX_FOUND_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, APPLY_CACHED__APPLY_KEYWORDS_NODE_APPLY_CACHED_STATE_0_UPDATER.subUpdater(1, 1))); /** * Source Info:
         *   Specialization: {@link ApplyKeywordsNode#applyCached}
         *   Parameter: {@link SearchNamedParameterNode} searchParamNode
         *   Inline method: {@link SearchNamedParameterNodeGen#inline}
*/ private static final SearchNamedParameterNode INLINED_APPLY_CACHED_SEARCH_PARAM_NODE_ = SearchNamedParameterNodeGen.inline(InlineTarget.create(SearchNamedParameterNode.class, APPLY_CACHED__APPLY_KEYWORDS_NODE_APPLY_CACHED_STATE_0_UPDATER.subUpdater(2, 3), ReferenceField.create(ApplyCachedData.lookup_(), "applyCached_searchParamNode__field1_", Node.class), ReferenceField.create(ApplyCachedData.lookup_(), "applyCached_searchParamNode__field2_", Object.class), ReferenceField.create(ApplyCachedData.lookup_(), "applyCached_searchParamNode__field3_", Object.class))); /** * Source Info:
         *   Specialization: {@link ApplyKeywordsNode#applyCached}
         *   Parameter: {@link SearchNamedParameterNode} searchKwNode
         *   Inline method: {@link SearchNamedParameterNodeGen#inline}
*/ private static final SearchNamedParameterNode INLINED_APPLY_CACHED_SEARCH_KW_NODE_ = SearchNamedParameterNodeGen.inline(InlineTarget.create(SearchNamedParameterNode.class, APPLY_CACHED__APPLY_KEYWORDS_NODE_APPLY_CACHED_STATE_0_UPDATER.subUpdater(5, 3), ReferenceField.create(ApplyCachedData.lookup_(), "applyCached_searchKwNode__field1_", Node.class), ReferenceField.create(ApplyCachedData.lookup_(), "applyCached_searchKwNode__field2_", Object.class), ReferenceField.create(ApplyCachedData.lookup_(), "applyCached_searchKwNode__field3_", Object.class))); /** * Source Info:
         *   Specialization: {@link ApplyKeywordsNode#applyUncached}
         *   Parameter: {@link InlinedBranchProfile} posArgOnlyPassedAsKeywordProfile
         *   Inline method: {@link InlinedBranchProfile#inline}
*/ private static final InlinedBranchProfile INLINED_APPLY_UNCACHED_POS_ARG_ONLY_PASSED_AS_KEYWORD_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, APPLY_UNCACHED__APPLY_KEYWORDS_NODE_APPLY_UNCACHED_STATE_0_UPDATER.subUpdater(0, 1))); /** * Source Info:
         *   Specialization: {@link ApplyKeywordsNode#applyUncached}
         *   Parameter: {@link InlinedBranchProfile} kwOnlyIdxFoundProfile
         *   Inline method: {@link InlinedBranchProfile#inline}
*/ private static final InlinedBranchProfile INLINED_APPLY_UNCACHED_KW_ONLY_IDX_FOUND_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, APPLY_UNCACHED__APPLY_KEYWORDS_NODE_APPLY_UNCACHED_STATE_0_UPDATER.subUpdater(1, 1))); /** * Source Info:
         *   Specialization: {@link ApplyKeywordsNode#applyUncached}
         *   Parameter: {@link SearchNamedParameterNode} searchParamNode
         *   Inline method: {@link SearchNamedParameterNodeGen#inline}
*/ private static final SearchNamedParameterNode INLINED_APPLY_UNCACHED_SEARCH_PARAM_NODE_ = SearchNamedParameterNodeGen.inline(InlineTarget.create(SearchNamedParameterNode.class, APPLY_UNCACHED__APPLY_KEYWORDS_NODE_APPLY_UNCACHED_STATE_0_UPDATER.subUpdater(2, 3), ReferenceField.create(ApplyUncachedData.lookup_(), "applyUncached_searchParamNode__field1_", Node.class), ReferenceField.create(ApplyUncachedData.lookup_(), "applyUncached_searchParamNode__field2_", Object.class), ReferenceField.create(ApplyUncachedData.lookup_(), "applyUncached_searchParamNode__field3_", Object.class))); /** * Source Info:
         *   Specialization: {@link ApplyKeywordsNode#applyUncached}
         *   Parameter: {@link SearchNamedParameterNode} searchKwNode
         *   Inline method: {@link SearchNamedParameterNodeGen#inline}
*/ private static final SearchNamedParameterNode INLINED_APPLY_UNCACHED_SEARCH_KW_NODE_ = SearchNamedParameterNodeGen.inline(InlineTarget.create(SearchNamedParameterNode.class, APPLY_UNCACHED__APPLY_KEYWORDS_NODE_APPLY_UNCACHED_STATE_0_UPDATER.subUpdater(5, 3), ReferenceField.create(ApplyUncachedData.lookup_(), "applyUncached_searchKwNode__field1_", Node.class), ReferenceField.create(ApplyUncachedData.lookup_(), "applyUncached_searchKwNode__field2_", Object.class), ReferenceField.create(ApplyUncachedData.lookup_(), "applyUncached_searchKwNode__field3_", Object.class))); private static final Uncached UNCACHED = new Uncached(); /** * State Info:
         *   0: SpecializationActive {@link ApplyKeywordsNode#applyCached}
         *   1: SpecializationActive {@link ApplyKeywordsNode#applyUncached}
         * 
*/ @CompilationFinal private int state_0_; /** * Source Info:
         *   Specialization: {@link ApplyKeywordsNode#applyCached}
         *   Parameter: {@link PRaiseNode} raise
*/ @Child private PRaiseNode raise; @UnsafeAccessedField @Child private ApplyCachedData applyCached_cache; @Child private ApplyUncachedData applyUncached_cache; private ApplyKeywordsNodeGen() { } @ExplodeLoop @Override public Object[] execute(Object arg0Value, Signature arg1Value, Object[] arg2Value, PKeyword[] arg3Value) { int state_0 = this.state_0_; if (state_0 != 0 /* is SpecializationActive[CreateArgumentsNode.ApplyKeywordsNode.applyCached(Object, Signature, Object[], PKeyword[], Node, PRaiseNode, int, Signature, boolean, TruffleString[], int, TruffleString[], InlinedBranchProfile, InlinedBranchProfile, SearchNamedParameterNode, SearchNamedParameterNode)] || SpecializationActive[CreateArgumentsNode.ApplyKeywordsNode.applyUncached(Object, Signature, Object[], PKeyword[], Node, PRaiseNode, InlinedBranchProfile, InlinedBranchProfile, SearchNamedParameterNode, SearchNamedParameterNode)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[CreateArgumentsNode.ApplyKeywordsNode.applyCached(Object, Signature, Object[], PKeyword[], Node, PRaiseNode, int, Signature, boolean, TruffleString[], int, TruffleString[], InlinedBranchProfile, InlinedBranchProfile, SearchNamedParameterNode, SearchNamedParameterNode)] */) { ApplyCachedData s0_ = this.applyCached_cache; while (s0_ != null) { { PRaiseNode raise_ = this.raise; if (raise_ != null) { if ((s0_.kwLen_ == arg3Value.length) && (arg1Value == s0_.cachedSignature_)) { Node inliningTarget__ = (s0_); assert DSLSupport.assertIdempotence((s0_.kwLen_ <= 32)); return ApplyKeywordsNode.applyCached(arg0Value, arg1Value, arg2Value, arg3Value, inliningTarget__, raise_, s0_.kwLen_, s0_.cachedSignature_, s0_.takesVarKwds_, s0_.parameters_, s0_.positionalParamNum_, s0_.kwNames_, INLINED_APPLY_CACHED_POS_ARG_ONLY_PASSED_AS_KEYWORD_PROFILE_, INLINED_APPLY_CACHED_KW_ONLY_IDX_FOUND_PROFILE_, INLINED_APPLY_CACHED_SEARCH_PARAM_NODE_, INLINED_APPLY_CACHED_SEARCH_KW_NODE_); } } } s0_ = s0_.next_; } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[CreateArgumentsNode.ApplyKeywordsNode.applyUncached(Object, Signature, Object[], PKeyword[], Node, PRaiseNode, InlinedBranchProfile, InlinedBranchProfile, SearchNamedParameterNode, SearchNamedParameterNode)] */) { ApplyUncachedData s1_ = this.applyUncached_cache; if (s1_ != null) { { PRaiseNode raise_1 = this.raise; if (raise_1 != null) { Node inliningTarget__1 = (s1_); return ApplyKeywordsNode.applyUncached(arg0Value, arg1Value, arg2Value, arg3Value, inliningTarget__1, raise_1, INLINED_APPLY_UNCACHED_POS_ARG_ONLY_PASSED_AS_KEYWORD_PROFILE_, INLINED_APPLY_UNCACHED_KW_ONLY_IDX_FOUND_PROFILE_, INLINED_APPLY_UNCACHED_SEARCH_PARAM_NODE_, INLINED_APPLY_UNCACHED_SEARCH_KW_NODE_); } } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value); } private Object[] executeAndSpecialize(Object arg0Value, Signature arg1Value, Object[] arg2Value, PKeyword[] arg3Value) { int state_0 = this.state_0_; { Node inliningTarget__ = null; if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[CreateArgumentsNode.ApplyKeywordsNode.applyUncached(Object, Signature, Object[], PKeyword[], Node, PRaiseNode, InlinedBranchProfile, InlinedBranchProfile, SearchNamedParameterNode, SearchNamedParameterNode)] */) { while (true) { int count0_ = 0; ApplyCachedData s0_ = APPLY_CACHED_CACHE_UPDATER.getVolatile(this); ApplyCachedData s0_original = s0_; while (s0_ != null) { { PRaiseNode raise_ = this.raise; if (raise_ != null) { if ((s0_.kwLen_ == arg3Value.length) && (arg1Value == s0_.cachedSignature_)) { assert DSLSupport.assertIdempotence((s0_.kwLen_ <= 32)); inliningTarget__ = (s0_); break; } } } count0_++; s0_ = s0_.next_; } if (s0_ == null) { { int kwLen__ = (arg3Value.length); // assert (s0_.kwLen_ == arg3Value.length); // assert (arg1Value == s0_.cachedSignature_); if ((kwLen__ <= 32) && count0_ < (3)) { s0_ = this.insert(new ApplyCachedData(s0_original)); inliningTarget__ = (s0_); PRaiseNode raise_; PRaiseNode raise__shared = this.raise; if (raise__shared != null) { raise_ = raise__shared; } else { raise_ = s0_.insert((PRaiseNode.create())); if (raise_ == null) { throw new IllegalStateException("Specialization 'applyCached(Object, Signature, Object[], PKeyword[], Node, PRaiseNode, int, Signature, boolean, TruffleString[], int, TruffleString[], InlinedBranchProfile, InlinedBranchProfile, SearchNamedParameterNode, SearchNamedParameterNode)' contains a shared cache with name 'raise' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } if (this.raise == null) { this.raise = raise_; } s0_.kwLen_ = kwLen__; s0_.cachedSignature_ = (arg1Value); s0_.takesVarKwds_ = (s0_.cachedSignature_.takesVarKeywordArgs()); s0_.parameters_ = (s0_.cachedSignature_.getParameterIds()); s0_.positionalParamNum_ = (s0_.parameters_.length); s0_.kwNames_ = (s0_.cachedSignature_.getKeywordNames()); if (!APPLY_CACHED_CACHE_UPDATER.compareAndSet(this, s0_original, s0_)) { continue; } state_0 = state_0 | 0b1 /* add SpecializationActive[CreateArgumentsNode.ApplyKeywordsNode.applyCached(Object, Signature, Object[], PKeyword[], Node, PRaiseNode, int, Signature, boolean, TruffleString[], int, TruffleString[], InlinedBranchProfile, InlinedBranchProfile, SearchNamedParameterNode, SearchNamedParameterNode)] */; this.state_0_ = state_0; } } } if (s0_ != null) { return ApplyKeywordsNode.applyCached(arg0Value, arg1Value, arg2Value, arg3Value, inliningTarget__, this.raise, s0_.kwLen_, s0_.cachedSignature_, s0_.takesVarKwds_, s0_.parameters_, s0_.positionalParamNum_, s0_.kwNames_, INLINED_APPLY_CACHED_POS_ARG_ONLY_PASSED_AS_KEYWORD_PROFILE_, INLINED_APPLY_CACHED_KW_ONLY_IDX_FOUND_PROFILE_, INLINED_APPLY_CACHED_SEARCH_PARAM_NODE_, INLINED_APPLY_CACHED_SEARCH_KW_NODE_); } break; } } } { Node inliningTarget__1 = null; ApplyUncachedData s1_ = this.insert(new ApplyUncachedData()); inliningTarget__1 = (s1_); PRaiseNode raise_1; PRaiseNode raise_1_shared = this.raise; if (raise_1_shared != null) { raise_1 = raise_1_shared; } else { raise_1 = s1_.insert((PRaiseNode.create())); if (raise_1 == null) { throw new IllegalStateException("Specialization 'applyUncached(Object, Signature, Object[], PKeyword[], Node, PRaiseNode, InlinedBranchProfile, InlinedBranchProfile, SearchNamedParameterNode, SearchNamedParameterNode)' contains a shared cache with name 'raise' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } if (this.raise == null) { this.raise = raise_1; } VarHandle.storeStoreFence(); this.applyUncached_cache = s1_; this.applyCached_cache = null; state_0 = state_0 & 0xfffffffe /* remove SpecializationActive[CreateArgumentsNode.ApplyKeywordsNode.applyCached(Object, Signature, Object[], PKeyword[], Node, PRaiseNode, int, Signature, boolean, TruffleString[], int, TruffleString[], InlinedBranchProfile, InlinedBranchProfile, SearchNamedParameterNode, SearchNamedParameterNode)] */; state_0 = state_0 | 0b10 /* add SpecializationActive[CreateArgumentsNode.ApplyKeywordsNode.applyUncached(Object, Signature, Object[], PKeyword[], Node, PRaiseNode, InlinedBranchProfile, InlinedBranchProfile, SearchNamedParameterNode, SearchNamedParameterNode)] */; this.state_0_ = state_0; return ApplyKeywordsNode.applyUncached(arg0Value, arg1Value, arg2Value, arg3Value, inliningTarget__1, raise_1, INLINED_APPLY_UNCACHED_POS_ARG_ONLY_PASSED_AS_KEYWORD_PROFILE_, INLINED_APPLY_UNCACHED_KW_ONLY_IDX_FOUND_PROFILE_, INLINED_APPLY_UNCACHED_SEARCH_PARAM_NODE_, INLINED_APPLY_UNCACHED_SEARCH_KW_NODE_); } } @Override public NodeCost getCost() { int state_0 = this.state_0_; if (state_0 == 0) { return NodeCost.UNINITIALIZED; } else { if ((state_0 & (state_0 - 1)) == 0 /* is-single */) { ApplyCachedData s0_ = this.applyCached_cache; if ((s0_ == null || s0_.next_ == null)) { return NodeCost.MONOMORPHIC; } } } return NodeCost.POLYMORPHIC; } @NeverDefault public static ApplyKeywordsNode create() { return new ApplyKeywordsNodeGen(); } @NeverDefault public static ApplyKeywordsNode getUncached() { return ApplyKeywordsNodeGen.UNCACHED; } @GeneratedBy(ApplyKeywordsNode.class) @DenyReplace private static final class ApplyCachedData extends Node implements SpecializationDataNode { @Child ApplyCachedData next_; /** * State Info:
             *   0: InlinedCache
             *        Specialization: {@link ApplyKeywordsNode#applyCached}
             *        Parameter: {@link InlinedBranchProfile} posArgOnlyPassedAsKeywordProfile
             *        Inline method: {@link InlinedBranchProfile#inline}
             *   1: InlinedCache
             *        Specialization: {@link ApplyKeywordsNode#applyCached}
             *        Parameter: {@link InlinedBranchProfile} kwOnlyIdxFoundProfile
             *        Inline method: {@link InlinedBranchProfile#inline}
             *   2-4: InlinedCache
             *        Specialization: {@link ApplyKeywordsNode#applyCached}
             *        Parameter: {@link SearchNamedParameterNode} searchParamNode
             *        Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   5-7: InlinedCache
             *        Specialization: {@link ApplyKeywordsNode#applyCached}
             *        Parameter: {@link SearchNamedParameterNode} searchKwNode
             *        Inline method: {@link SearchNamedParameterNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int applyCached_state_0_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyCached}
             *   Parameter: int kwLen
*/ @CompilationFinal int kwLen_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyCached}
             *   Parameter: {@link Signature} cachedSignature
*/ @CompilationFinal Signature cachedSignature_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyCached}
             *   Parameter: boolean takesVarKwds
*/ @CompilationFinal boolean takesVarKwds_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyCached}
             *   Parameter: {@link TruffleString} parameters
*/ @CompilationFinal(dimensions = 1) TruffleString[] parameters_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyCached}
             *   Parameter: int positionalParamNum
*/ @CompilationFinal int positionalParamNum_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyCached}
             *   Parameter: {@link TruffleString} kwNames
*/ @CompilationFinal(dimensions = 1) TruffleString[] kwNames_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyCached}
             *   Parameter: {@link SearchNamedParameterNode} searchParamNode
             *   Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node applyCached_searchParamNode__field1_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyCached}
             *   Parameter: {@link SearchNamedParameterNode} searchParamNode
             *   Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   Inline field: {@link Object} field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object applyCached_searchParamNode__field2_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyCached}
             *   Parameter: {@link SearchNamedParameterNode} searchParamNode
             *   Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   Inline field: {@link Object} field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object applyCached_searchParamNode__field3_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyCached}
             *   Parameter: {@link SearchNamedParameterNode} searchKwNode
             *   Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node applyCached_searchKwNode__field1_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyCached}
             *   Parameter: {@link SearchNamedParameterNode} searchKwNode
             *   Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   Inline field: {@link Object} field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object applyCached_searchKwNode__field2_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyCached}
             *   Parameter: {@link SearchNamedParameterNode} searchKwNode
             *   Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   Inline field: {@link Object} field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object applyCached_searchKwNode__field3_; ApplyCachedData(ApplyCachedData next_) { this.next_ = next_; } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(ApplyKeywordsNode.class) @DenyReplace private static final class ApplyUncachedData extends Node implements SpecializationDataNode { /** * State Info:
             *   0: InlinedCache
             *        Specialization: {@link ApplyKeywordsNode#applyUncached}
             *        Parameter: {@link InlinedBranchProfile} posArgOnlyPassedAsKeywordProfile
             *        Inline method: {@link InlinedBranchProfile#inline}
             *   1: InlinedCache
             *        Specialization: {@link ApplyKeywordsNode#applyUncached}
             *        Parameter: {@link InlinedBranchProfile} kwOnlyIdxFoundProfile
             *        Inline method: {@link InlinedBranchProfile#inline}
             *   2-4: InlinedCache
             *        Specialization: {@link ApplyKeywordsNode#applyUncached}
             *        Parameter: {@link SearchNamedParameterNode} searchParamNode
             *        Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   5-7: InlinedCache
             *        Specialization: {@link ApplyKeywordsNode#applyUncached}
             *        Parameter: {@link SearchNamedParameterNode} searchKwNode
             *        Inline method: {@link SearchNamedParameterNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int applyUncached_state_0_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyUncached}
             *   Parameter: {@link SearchNamedParameterNode} searchParamNode
             *   Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node applyUncached_searchParamNode__field1_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyUncached}
             *   Parameter: {@link SearchNamedParameterNode} searchParamNode
             *   Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   Inline field: {@link Object} field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object applyUncached_searchParamNode__field2_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyUncached}
             *   Parameter: {@link SearchNamedParameterNode} searchParamNode
             *   Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   Inline field: {@link Object} field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object applyUncached_searchParamNode__field3_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyUncached}
             *   Parameter: {@link SearchNamedParameterNode} searchKwNode
             *   Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node applyUncached_searchKwNode__field1_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyUncached}
             *   Parameter: {@link SearchNamedParameterNode} searchKwNode
             *   Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   Inline field: {@link Object} field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object applyUncached_searchKwNode__field2_; /** * Source Info:
             *   Specialization: {@link ApplyKeywordsNode#applyUncached}
             *   Parameter: {@link SearchNamedParameterNode} searchKwNode
             *   Inline method: {@link SearchNamedParameterNodeGen#inline}
             *   Inline field: {@link Object} field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object applyUncached_searchKwNode__field3_; ApplyUncachedData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(ApplyKeywordsNode.class) @DenyReplace private static final class Uncached extends ApplyKeywordsNode { @TruffleBoundary @Override public Object[] execute(Object arg0Value, Signature arg1Value, Object[] arg2Value, PKeyword[] arg3Value) { return ApplyKeywordsNode.applyUncached(arg0Value, arg1Value, arg2Value, arg3Value, (this), (PRaiseNode.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (SearchNamedParameterNodeGen.getUncached()), (SearchNamedParameterNodeGen.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } /** * Debug Info:
         *   Specialization {@link SearchNamedParameterNode#cachedSingle}
         *     Activation probability: 0.48333
         *     With/without class size: 15/12 bytes
         *   Specialization {@link SearchNamedParameterNode#cached}
         *     Activation probability: 0.33333
         *     With/without class size: 10/4 bytes
         *   Specialization {@link SearchNamedParameterNode#uncached}
         *     Activation probability: 0.18333
         *     With/without class size: 6/0 bytes
         * 
*/ @GeneratedBy(SearchNamedParameterNode.class) @SuppressWarnings("javadoc") protected static final class SearchNamedParameterNodeGen { private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static SearchNamedParameterNode getUncached() { return SearchNamedParameterNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#equalNode} *
  • {@link Inlined#cachedSingle_cache} *
  • {@link Inlined#cached_cache} *
*/ @NeverDefault public static SearchNamedParameterNode inline(@RequiredField(bits = 3, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Object.class, value = ReferenceField.class)@RequiredField(type = Object.class, value = ReferenceField.class) InlineTarget target) { return new SearchNamedParameterNodeGen.Inlined(target); } @GeneratedBy(SearchNamedParameterNode.class) @DenyReplace private static final class Inlined extends SearchNamedParameterNode { /** * State Info:
                 *   0: SpecializationActive {@link SearchNamedParameterNode#cachedSingle}
                 *   1: SpecializationActive {@link SearchNamedParameterNode#cached}
                 *   2: SpecializationActive {@link SearchNamedParameterNode#uncached}
                 * 
*/ private final StateField state_0_; private final ReferenceField equalNode; private final ReferenceField cachedSingle_cache; private final ReferenceField cached_cache; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(SearchNamedParameterNode.class); this.state_0_ = target.getState(0, 3); this.equalNode = target.getReference(1, EqualNode.class); this.cachedSingle_cache = target.getReference(2, CachedSingleData.class); this.cached_cache = target.getReference(3, CachedData.class); } @ExplodeLoop @Override public int execute(Node arg0Value, TruffleString[] arg1Value, TruffleString arg2Value) { int state_0 = this.state_0_.get(arg0Value); if (state_0 != 0 /* is SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.cachedSingle(TruffleString[], TruffleString, TruffleString, TruffleString[], EqualNode, int)] || SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.cached(TruffleString[], TruffleString, int, EqualNode)] || SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.uncached(TruffleString[], TruffleString, EqualNode)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.cachedSingle(TruffleString[], TruffleString, TruffleString, TruffleString[], EqualNode, int)] */) { CachedSingleData s0_ = this.cachedSingle_cache.get(arg0Value); if (s0_ != null) { { EqualNode equalNode_ = this.equalNode.get(arg0Value); if (equalNode_ != null) { if ((arg2Value == s0_.cachedName_) && (arg1Value == s0_.cachedParameters_)) { assert DSLSupport.assertIdempotence((SearchNamedParameterNode.nameIsAtIndex(s0_.cachedParameters_, s0_.cachedName_, s0_.index_))); return SearchNamedParameterNode.cachedSingle(arg1Value, arg2Value, s0_.cachedName_, s0_.cachedParameters_, equalNode_, s0_.index_); } } } } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.cached(TruffleString[], TruffleString, int, EqualNode)] */) { CachedData s1_ = this.cached_cache.get(arg0Value); while (s1_ != null) { { EqualNode equalNode_1 = this.equalNode.get(arg0Value); if (equalNode_1 != null) { if ((s1_.cachedLen_ == arg1Value.length)) { assert DSLSupport.assertIdempotence((s1_.cachedLen_ <= 32)); return SearchNamedParameterNode.cached(arg1Value, arg2Value, s1_.cachedLen_, equalNode_1); } } } s1_ = s1_.next_; } } if ((state_0 & 0b100) != 0 /* is SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.uncached(TruffleString[], TruffleString, EqualNode)] */) { { EqualNode equalNode_2 = this.equalNode.get(arg0Value); if (equalNode_2 != null) { return SearchNamedParameterNode.uncached(arg1Value, arg2Value, equalNode_2); } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value, arg1Value, arg2Value); } private int executeAndSpecialize(Node arg0Value, TruffleString[] arg1Value, TruffleString arg2Value) { int state_0 = this.state_0_.get(arg0Value); if (((state_0 & 0b110)) == 0 /* is-not SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.cached(TruffleString[], TruffleString, int, EqualNode)] && SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.uncached(TruffleString[], TruffleString, EqualNode)] */) { while (true) { int count0_ = 0; CachedSingleData s0_ = this.cachedSingle_cache.getVolatile(arg0Value); CachedSingleData s0_original = s0_; while (s0_ != null) { { EqualNode equalNode_ = this.equalNode.get(arg0Value); if (equalNode_ != null) { if ((arg2Value == s0_.cachedName_) && (arg1Value == s0_.cachedParameters_)) { assert DSLSupport.assertIdempotence((SearchNamedParameterNode.nameIsAtIndex(s0_.cachedParameters_, s0_.cachedName_, s0_.index_))); break; } } } count0_++; s0_ = null; break; } if (s0_ == null && count0_ < 1) { { TruffleString cachedName__ = (arg2Value); TruffleString[] cachedParameters__ = (arg1Value); EqualNode equalNode_; EqualNode equalNode__shared = this.equalNode.get(arg0Value); if (equalNode__shared != null) { equalNode_ = equalNode__shared; } else { equalNode_ = arg0Value.insert((EqualNode.create())); if (equalNode_ == null) { throw new IllegalStateException("Specialization 'cachedSingle(TruffleString[], TruffleString, TruffleString, TruffleString[], EqualNode, int)' contains a shared cache with name 'equalNode' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } int index__ = (SearchNamedParameterNode.uncached(arg1Value, arg2Value, equalNode_)); // assert (arg2Value == s0_.cachedName_); // assert (arg1Value == s0_.cachedParameters_); if ((SearchNamedParameterNode.nameIsAtIndex(cachedParameters__, cachedName__, index__))) { s0_ = new CachedSingleData(); s0_.cachedName_ = cachedName__; s0_.cachedParameters_ = cachedParameters__; if (this.equalNode.get(arg0Value) == null) { this.equalNode.set(arg0Value, equalNode_); } s0_.index_ = index__; if (!this.cachedSingle_cache.compareAndSet(arg0Value, s0_original, s0_)) { continue; } state_0 = state_0 | 0b1 /* add SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.cachedSingle(TruffleString[], TruffleString, TruffleString, TruffleString[], EqualNode, int)] */; this.state_0_.set(arg0Value, state_0); } } } if (s0_ != null) { return SearchNamedParameterNode.cachedSingle(arg1Value, arg2Value, s0_.cachedName_, s0_.cachedParameters_, this.equalNode.get(arg0Value), s0_.index_); } break; } } if (((state_0 & 0b100)) == 0 /* is-not SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.uncached(TruffleString[], TruffleString, EqualNode)] */) { while (true) { int count1_ = 0; CachedData s1_ = this.cached_cache.getVolatile(arg0Value); CachedData s1_original = s1_; while (s1_ != null) { { EqualNode equalNode_1 = this.equalNode.get(arg0Value); if (equalNode_1 != null) { if ((s1_.cachedLen_ == arg1Value.length)) { assert DSLSupport.assertIdempotence((s1_.cachedLen_ <= 32)); break; } } } count1_++; s1_ = s1_.next_; } if (s1_ == null) { { int cachedLen__ = (arg1Value.length); // assert (s1_.cachedLen_ == arg1Value.length); if ((cachedLen__ <= 32) && count1_ < (3)) { s1_ = new CachedData(s1_original); s1_.cachedLen_ = cachedLen__; EqualNode equalNode_1; EqualNode equalNode_1_shared = this.equalNode.get(arg0Value); if (equalNode_1_shared != null) { equalNode_1 = equalNode_1_shared; } else { equalNode_1 = arg0Value.insert((EqualNode.create())); if (equalNode_1 == null) { throw new IllegalStateException("Specialization 'cached(TruffleString[], TruffleString, int, EqualNode)' contains a shared cache with name 'equalNode' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } if (this.equalNode.get(arg0Value) == null) { this.equalNode.set(arg0Value, equalNode_1); } if (!this.cached_cache.compareAndSet(arg0Value, s1_original, s1_)) { continue; } this.cachedSingle_cache.set(arg0Value, null); state_0 = state_0 & 0xfffffffe /* remove SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.cachedSingle(TruffleString[], TruffleString, TruffleString, TruffleString[], EqualNode, int)] */; state_0 = state_0 | 0b10 /* add SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.cached(TruffleString[], TruffleString, int, EqualNode)] */; this.state_0_.set(arg0Value, state_0); } } } if (s1_ != null) { return SearchNamedParameterNode.cached(arg1Value, arg2Value, s1_.cachedLen_, this.equalNode.get(arg0Value)); } break; } } EqualNode equalNode_2; EqualNode equalNode_2_shared = this.equalNode.get(arg0Value); if (equalNode_2_shared != null) { equalNode_2 = equalNode_2_shared; } else { equalNode_2 = arg0Value.insert((EqualNode.create())); if (equalNode_2 == null) { throw new IllegalStateException("Specialization 'uncached(TruffleString[], TruffleString, EqualNode)' contains a shared cache with name 'equalNode' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } if (this.equalNode.get(arg0Value) == null) { VarHandle.storeStoreFence(); this.equalNode.set(arg0Value, equalNode_2); } this.cachedSingle_cache.set(arg0Value, null); this.cached_cache.set(arg0Value, null); state_0 = state_0 & 0xfffffffc /* remove SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.cachedSingle(TruffleString[], TruffleString, TruffleString, TruffleString[], EqualNode, int)], SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.cached(TruffleString[], TruffleString, int, EqualNode)] */; state_0 = state_0 | 0b100 /* add SpecializationActive[ApplyKeywordsNode.SearchNamedParameterNode.uncached(TruffleString[], TruffleString, EqualNode)] */; this.state_0_.set(arg0Value, state_0); return SearchNamedParameterNode.uncached(arg1Value, arg2Value, equalNode_2); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(SearchNamedParameterNode.class) @DenyReplace private static final class CachedSingleData implements SpecializationDataNode { /** * Source Info:
                 *   Specialization: {@link SearchNamedParameterNode#cachedSingle}
                 *   Parameter: {@link TruffleString} cachedName
*/ @CompilationFinal TruffleString cachedName_; /** * Source Info:
                 *   Specialization: {@link SearchNamedParameterNode#cachedSingle}
                 *   Parameter: {@link TruffleString} cachedParameters
*/ @CompilationFinal(dimensions = 0) TruffleString[] cachedParameters_; /** * Source Info:
                 *   Specialization: {@link SearchNamedParameterNode#cachedSingle}
                 *   Parameter: int index
*/ @CompilationFinal int index_; CachedSingleData() { } } @GeneratedBy(SearchNamedParameterNode.class) @DenyReplace private static final class CachedData implements SpecializationDataNode { @CompilationFinal final CachedData next_; /** * Source Info:
                 *   Specialization: {@link SearchNamedParameterNode#cached}
                 *   Parameter: int cachedLen
*/ @CompilationFinal int cachedLen_; CachedData(CachedData next_) { this.next_ = next_; } } @GeneratedBy(SearchNamedParameterNode.class) @DenyReplace private static final class Uncached extends SearchNamedParameterNode { @TruffleBoundary @Override public int execute(Node arg0Value, TruffleString[] arg1Value, TruffleString arg2Value) { return SearchNamedParameterNode.uncached(arg1Value, arg2Value, (EqualNode.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } } /** * Debug Info:
     *   Specialization {@link LazyFillDefaultsNode#doIt}
     *     Activation probability: 1.00000
     *     With/without class size: 24/4 bytes
     * 
*/ @GeneratedBy(LazyFillDefaultsNode.class) @SuppressWarnings("javadoc") protected static final class LazyFillDefaultsNodeGen { private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static LazyFillDefaultsNode getUncached() { return LazyFillDefaultsNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#node_} *
*/ @NeverDefault public static LazyFillDefaultsNode inline(@RequiredField(bits = 1, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new LazyFillDefaultsNodeGen.Inlined(target); } @GeneratedBy(LazyFillDefaultsNode.class) @DenyReplace private static final class Inlined extends LazyFillDefaultsNode { /** * State Info:
             *   0: SpecializationActive {@link LazyFillDefaultsNode#doIt}
             * 
*/ private final StateField state_0_; private final ReferenceField node_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(LazyFillDefaultsNode.class); this.state_0_ = target.getState(0, 1); this.node_ = target.getReference(1, FillDefaultsNode.class); } @Override public FillDefaultsNode execute(Node arg0Value) { int state_0 = this.state_0_.get(arg0Value); if (state_0 != 0 /* is SpecializationActive[CreateArgumentsNode.LazyFillDefaultsNode.doIt(FillDefaultsNode)] */) { { FillDefaultsNode node__ = this.node_.get(arg0Value); if (node__ != null) { return LazyFillDefaultsNode.doIt(node__); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value); } private FillDefaultsNode executeAndSpecialize(Node arg0Value) { int state_0 = this.state_0_.get(arg0Value); FillDefaultsNode node__ = arg0Value.insert((FillDefaultsNodeGen.create())); Objects.requireNonNull(node__, "Specialization 'doIt(FillDefaultsNode)' cache 'node' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.node_.set(arg0Value, node__); state_0 = state_0 | 0b1 /* add SpecializationActive[CreateArgumentsNode.LazyFillDefaultsNode.doIt(FillDefaultsNode)] */; this.state_0_.set(arg0Value, state_0); return LazyFillDefaultsNode.doIt(node__); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(LazyFillDefaultsNode.class) @DenyReplace private static final class Uncached extends LazyFillDefaultsNode { @TruffleBoundary @Override public FillDefaultsNode execute(Node arg0Value) { return LazyFillDefaultsNode.doIt((FillDefaultsNodeGen.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link FillDefaultsNode#doCached}
     *     Activation probability: 0.65000
     *     With/without class size: 22/8 bytes
     *   Specialization {@link FillDefaultsNode#doUncached}
     *     Activation probability: 0.35000
     *     With/without class size: 9/0 bytes
     * 
*/ @GeneratedBy(FillDefaultsNode.class) @SuppressWarnings("javadoc") protected static final class FillDefaultsNodeGen extends FillDefaultsNode { private static final StateField STATE_0_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_"); static final ReferenceField CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "cached_cache", CachedData.class); /** * Source Info:
         *   Specialization: {@link FillDefaultsNode#doCached}
         *   Parameter: {@link InlinedConditionProfile} missingProfile
         *   Inline method: {@link InlinedConditionProfile#inline}
*/ private static final InlinedConditionProfile INLINED_MISSING_PROFILE = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_UPDATER.subUpdater(2, 2))); private static final Uncached UNCACHED = new Uncached(); /** * State Info:
         *   0: SpecializationActive {@link FillDefaultsNode#doCached}
         *   1: SpecializationActive {@link FillDefaultsNode#doUncached}
         *   2-3: InlinedCache
         *        Specialization: {@link FillDefaultsNode#doCached}
         *        Parameter: {@link InlinedConditionProfile} missingProfile
         *        Inline method: {@link InlinedConditionProfile#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int state_0_; /** * Source Info:
         *   Specialization: {@link FillDefaultsNode#doCached}
         *   Parameter: {@link PRaiseNode} raise
*/ @Child private PRaiseNode raise; @UnsafeAccessedField @Child private CachedData cached_cache; private FillDefaultsNodeGen() { } @ExplodeLoop @Override public void execute(Object arg0Value, Signature arg1Value, Object[] arg2Value, Object[] arg3Value, int arg4Value, int arg5Value) { int state_0 = this.state_0_; if ((state_0 & 0b11) != 0 /* is SpecializationActive[CreateArgumentsNode.FillDefaultsNode.doCached(Object, Signature, Object[], Object[], int, int, Node, PRaiseNode, int, int, InlinedConditionProfile)] || SpecializationActive[CreateArgumentsNode.FillDefaultsNode.doUncached(Object, Signature, Object[], Object[], int, int, Node, PRaiseNode, InlinedConditionProfile)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[CreateArgumentsNode.FillDefaultsNode.doCached(Object, Signature, Object[], Object[], int, int, Node, PRaiseNode, int, int, InlinedConditionProfile)] */) { CachedData s0_ = this.cached_cache; while (s0_ != null) { { PRaiseNode raise_ = this.raise; if (raise_ != null) { if ((arg4Value == s0_.cachedInputArgcount_) && (arg5Value == s0_.cachedArgcount_) && (FillBaseNode.checkIterations(arg4Value, arg5Value))) { Node inliningTarget__ = (this); FillDefaultsNode.doCached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, inliningTarget__, raise_, s0_.cachedInputArgcount_, s0_.cachedArgcount_, INLINED_MISSING_PROFILE); return; } } } s0_ = s0_.next_; } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[CreateArgumentsNode.FillDefaultsNode.doUncached(Object, Signature, Object[], Object[], int, int, Node, PRaiseNode, InlinedConditionProfile)] */) { { PRaiseNode raise_1 = this.raise; if (raise_1 != null) { Node inliningTarget__1 = (this); FillDefaultsNode.doUncached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, inliningTarget__1, raise_1, INLINED_MISSING_PROFILE); return; } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value); return; } private void executeAndSpecialize(Object arg0Value, Signature arg1Value, Object[] arg2Value, Object[] arg3Value, int arg4Value, int arg5Value) { int state_0 = this.state_0_; { Node inliningTarget__ = null; if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[CreateArgumentsNode.FillDefaultsNode.doUncached(Object, Signature, Object[], Object[], int, int, Node, PRaiseNode, InlinedConditionProfile)] */) { while (true) { int count0_ = 0; CachedData s0_ = CACHED_CACHE_UPDATER.getVolatile(this); CachedData s0_original = s0_; while (s0_ != null) { { PRaiseNode raise_ = this.raise; if (raise_ != null) { if ((arg4Value == s0_.cachedInputArgcount_) && (arg5Value == s0_.cachedArgcount_) && (FillBaseNode.checkIterations(arg4Value, arg5Value))) { inliningTarget__ = (this); break; } } } count0_++; s0_ = s0_.next_; } if (s0_ == null) { if ((FillBaseNode.checkIterations(arg4Value, arg5Value)) && count0_ < (3)) { // assert (arg4Value == s0_.cachedInputArgcount_); // assert (arg5Value == s0_.cachedArgcount_); s0_ = this.insert(new CachedData(s0_original)); inliningTarget__ = (this); PRaiseNode raise_; PRaiseNode raise__shared = this.raise; if (raise__shared != null) { raise_ = raise__shared; } else { raise_ = s0_.insert((PRaiseNode.create())); if (raise_ == null) { throw new IllegalStateException("Specialization 'doCached(Object, Signature, Object[], Object[], int, int, Node, PRaiseNode, int, int, InlinedConditionProfile)' contains a shared cache with name 'raise' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } if (this.raise == null) { this.raise = raise_; } s0_.cachedInputArgcount_ = (arg4Value); s0_.cachedArgcount_ = (arg5Value); if (!CACHED_CACHE_UPDATER.compareAndSet(this, s0_original, s0_)) { continue; } state_0 = state_0 | 0b1 /* add SpecializationActive[CreateArgumentsNode.FillDefaultsNode.doCached(Object, Signature, Object[], Object[], int, int, Node, PRaiseNode, int, int, InlinedConditionProfile)] */; this.state_0_ = state_0; } } if (s0_ != null) { FillDefaultsNode.doCached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, inliningTarget__, this.raise, s0_.cachedInputArgcount_, s0_.cachedArgcount_, INLINED_MISSING_PROFILE); return; } break; } } } { Node inliningTarget__1 = null; inliningTarget__1 = (this); PRaiseNode raise_1; PRaiseNode raise_1_shared = this.raise; if (raise_1_shared != null) { raise_1 = raise_1_shared; } else { raise_1 = this.insert((PRaiseNode.create())); if (raise_1 == null) { throw new IllegalStateException("Specialization 'doUncached(Object, Signature, Object[], Object[], int, int, Node, PRaiseNode, InlinedConditionProfile)' contains a shared cache with name 'raise' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } if (this.raise == null) { VarHandle.storeStoreFence(); this.raise = raise_1; } this.cached_cache = null; state_0 = state_0 & 0xfffffffe /* remove SpecializationActive[CreateArgumentsNode.FillDefaultsNode.doCached(Object, Signature, Object[], Object[], int, int, Node, PRaiseNode, int, int, InlinedConditionProfile)] */; state_0 = state_0 | 0b10 /* add SpecializationActive[CreateArgumentsNode.FillDefaultsNode.doUncached(Object, Signature, Object[], Object[], int, int, Node, PRaiseNode, InlinedConditionProfile)] */; this.state_0_ = state_0; FillDefaultsNode.doUncached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, inliningTarget__1, raise_1, INLINED_MISSING_PROFILE); return; } } @Override public NodeCost getCost() { int state_0 = this.state_0_; if ((state_0 & 0b11) == 0) { return NodeCost.UNINITIALIZED; } else { if (((state_0 & 0b11) & ((state_0 & 0b11) - 1)) == 0 /* is-single */) { CachedData s0_ = this.cached_cache; if ((s0_ == null || s0_.next_ == null)) { return NodeCost.MONOMORPHIC; } } } return NodeCost.POLYMORPHIC; } @NeverDefault public static FillDefaultsNode create() { return new FillDefaultsNodeGen(); } @NeverDefault public static FillDefaultsNode getUncached() { return FillDefaultsNodeGen.UNCACHED; } @GeneratedBy(FillDefaultsNode.class) @DenyReplace private static final class CachedData extends Node implements SpecializationDataNode { @Child CachedData next_; /** * Source Info:
             *   Specialization: {@link FillDefaultsNode#doCached}
             *   Parameter: int cachedInputArgcount
*/ @CompilationFinal int cachedInputArgcount_; /** * Source Info:
             *   Specialization: {@link FillDefaultsNode#doCached}
             *   Parameter: int cachedArgcount
*/ @CompilationFinal int cachedArgcount_; CachedData(CachedData next_) { this.next_ = next_; } @Override public NodeCost getCost() { return NodeCost.NONE; } } @GeneratedBy(FillDefaultsNode.class) @DenyReplace private static final class Uncached extends FillDefaultsNode { @TruffleBoundary @Override public void execute(Object arg0Value, Signature arg1Value, Object[] arg2Value, Object[] arg3Value, int arg4Value, int arg5Value) { FillDefaultsNode.doUncached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, (this), (PRaiseNode.getUncached()), (InlinedConditionProfile.getUncached())); return; } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link LazyFillKwDefaultsNode#doIt}
     *     Activation probability: 1.00000
     *     With/without class size: 24/4 bytes
     * 
*/ @GeneratedBy(LazyFillKwDefaultsNode.class) @SuppressWarnings("javadoc") protected static final class LazyFillKwDefaultsNodeGen { private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static LazyFillKwDefaultsNode getUncached() { return LazyFillKwDefaultsNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#node_} *
*/ @NeverDefault public static LazyFillKwDefaultsNode inline(@RequiredField(bits = 1, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new LazyFillKwDefaultsNodeGen.Inlined(target); } @GeneratedBy(LazyFillKwDefaultsNode.class) @DenyReplace private static final class Inlined extends LazyFillKwDefaultsNode { /** * State Info:
             *   0: SpecializationActive {@link LazyFillKwDefaultsNode#doIt}
             * 
*/ private final StateField state_0_; private final ReferenceField node_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(LazyFillKwDefaultsNode.class); this.state_0_ = target.getState(0, 1); this.node_ = target.getReference(1, FillKwDefaultsNode.class); } @Override protected FillKwDefaultsNode execute(Node arg0Value) { int state_0 = this.state_0_.get(arg0Value); if (state_0 != 0 /* is SpecializationActive[CreateArgumentsNode.LazyFillKwDefaultsNode.doIt(FillKwDefaultsNode)] */) { { FillKwDefaultsNode node__ = this.node_.get(arg0Value); if (node__ != null) { return LazyFillKwDefaultsNode.doIt(node__); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value); } private FillKwDefaultsNode executeAndSpecialize(Node arg0Value) { int state_0 = this.state_0_.get(arg0Value); FillKwDefaultsNode node__ = arg0Value.insert((FillKwDefaultsNodeGen.create())); Objects.requireNonNull(node__, "Specialization 'doIt(FillKwDefaultsNode)' cache 'node' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.node_.set(arg0Value, node__); state_0 = state_0 | 0b1 /* add SpecializationActive[CreateArgumentsNode.LazyFillKwDefaultsNode.doIt(FillKwDefaultsNode)] */; this.state_0_.set(arg0Value, state_0); return LazyFillKwDefaultsNode.doIt(node__); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(LazyFillKwDefaultsNode.class) @DenyReplace private static final class Uncached extends LazyFillKwDefaultsNode { @TruffleBoundary @Override protected FillKwDefaultsNode execute(Node arg0Value) { return LazyFillKwDefaultsNode.doIt((FillKwDefaultsNodeGen.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link FillKwDefaultsNode#doCached}
     *     Activation probability: 0.65000
     *     With/without class size: 35/25 bytes
     *   Specialization {@link FillKwDefaultsNode#doUncached}
     *     Activation probability: 0.35000
     *     With/without class size: 16/17 bytes
     * 
*/ @GeneratedBy(FillKwDefaultsNode.class) @SuppressWarnings("javadoc") protected static final class FillKwDefaultsNodeGen extends FillKwDefaultsNode { private static final StateField CACHED__FILL_KW_DEFAULTS_NODE_CACHED_STATE_0_UPDATER = StateField.create(CachedData.lookup_(), "cached_state_0_"); private static final StateField UNCACHED__FILL_KW_DEFAULTS_NODE_UNCACHED_STATE_0_UPDATER = StateField.create(UncachedData.lookup_(), "uncached_state_0_"); static final ReferenceField CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "cached_cache", CachedData.class); /** * Source Info:
         *   Specialization: {@link FillKwDefaultsNode#doCached}
         *   Parameter: {@link Lazy} raise
         *   Inline method: {@link LazyNodeGen#inline}
*/ private static final Lazy INLINED_CACHED_RAISE_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, CACHED__FILL_KW_DEFAULTS_NODE_CACHED_STATE_0_UPDATER.subUpdater(0, 1), ReferenceField.create(CachedData.lookup_(), "cached_raise__field1_", Node.class))); /** * Source Info:
         *   Specialization: {@link FillKwDefaultsNode#doCached}
         *   Parameter: {@link FindKwDefaultNode} findKwDefaultNode
         *   Inline method: {@link FindKwDefaultNodeGen#inline}
*/ private static final FindKwDefaultNode INLINED_CACHED_FIND_KW_DEFAULT_NODE_ = FindKwDefaultNodeGen.inline(InlineTarget.create(FindKwDefaultNode.class, CACHED__FILL_KW_DEFAULTS_NODE_CACHED_STATE_0_UPDATER.subUpdater(1, 3), ReferenceField.create(CachedData.lookup_(), "cached_findKwDefaultNode__field1_", Node.class), ReferenceField.create(CachedData.lookup_(), "cached_findKwDefaultNode__field2_", Object.class), ReferenceField.create(CachedData.lookup_(), "cached_findKwDefaultNode__field3_", Object.class))); /** * Source Info:
         *   Specialization: {@link FillKwDefaultsNode#doCached}
         *   Parameter: {@link InlinedConditionProfile} missingProfile
         *   Inline method: {@link InlinedConditionProfile#inline}
*/ private static final InlinedConditionProfile INLINED_CACHED_MISSING_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, CACHED__FILL_KW_DEFAULTS_NODE_CACHED_STATE_0_UPDATER.subUpdater(4, 2))); /** * Source Info:
         *   Specialization: {@link FillKwDefaultsNode#doUncached}
         *   Parameter: {@link Lazy} raise
         *   Inline method: {@link LazyNodeGen#inline}
*/ private static final Lazy INLINED_UNCACHED_RAISE_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, UNCACHED__FILL_KW_DEFAULTS_NODE_UNCACHED_STATE_0_UPDATER.subUpdater(0, 1), ReferenceField.create(UncachedData.lookup_(), "uncached_raise__field1_", Node.class))); /** * Source Info:
         *   Specialization: {@link FillKwDefaultsNode#doUncached}
         *   Parameter: {@link FindKwDefaultNode} findKwDefaultNode
         *   Inline method: {@link FindKwDefaultNodeGen#inline}
*/ private static final FindKwDefaultNode INLINED_UNCACHED_FIND_KW_DEFAULT_NODE_ = FindKwDefaultNodeGen.inline(InlineTarget.create(FindKwDefaultNode.class, UNCACHED__FILL_KW_DEFAULTS_NODE_UNCACHED_STATE_0_UPDATER.subUpdater(1, 3), ReferenceField.create(UncachedData.lookup_(), "uncached_findKwDefaultNode__field1_", Node.class), ReferenceField.create(UncachedData.lookup_(), "uncached_findKwDefaultNode__field2_", Object.class), ReferenceField.create(UncachedData.lookup_(), "uncached_findKwDefaultNode__field3_", Object.class))); /** * Source Info:
         *   Specialization: {@link FillKwDefaultsNode#doUncached}
         *   Parameter: {@link InlinedConditionProfile} missingProfile
         *   Inline method: {@link InlinedConditionProfile#inline}
*/ private static final InlinedConditionProfile INLINED_UNCACHED_MISSING_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, UNCACHED__FILL_KW_DEFAULTS_NODE_UNCACHED_STATE_0_UPDATER.subUpdater(4, 2))); private static final Uncached UNCACHED = new Uncached(); /** * State Info:
         *   0: SpecializationActive {@link FillKwDefaultsNode#doCached}
         *   1: SpecializationActive {@link FillKwDefaultsNode#doUncached}
         * 
*/ @CompilationFinal private int state_0_; @UnsafeAccessedField @Child private CachedData cached_cache; @Child private UncachedData uncached_cache; private FillKwDefaultsNodeGen() { } @ExplodeLoop @Override public void execute(Object arg0Value, Object[] arg1Value, Signature arg2Value, PKeyword[] arg3Value, int arg4Value, int arg5Value) { int state_0 = this.state_0_; if (state_0 != 0 /* is SpecializationActive[CreateArgumentsNode.FillKwDefaultsNode.doCached(Object, Object[], Signature, PKeyword[], int, int, Node, Lazy, FindKwDefaultNode, int, int, InlinedConditionProfile)] || SpecializationActive[CreateArgumentsNode.FillKwDefaultsNode.doUncached(Object, Object[], Signature, PKeyword[], int, int, Node, Lazy, FindKwDefaultNode, InlinedConditionProfile)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[CreateArgumentsNode.FillKwDefaultsNode.doCached(Object, Object[], Signature, PKeyword[], int, int, Node, Lazy, FindKwDefaultNode, int, int, InlinedConditionProfile)] */) { CachedData s0_ = this.cached_cache; while (s0_ != null) { if ((arg4Value == s0_.cachedArgcount_) && (arg5Value == s0_.cachedKwOnlyArgcount_) && (FillBaseNode.checkIterations(arg4Value, arg5Value))) { Node inliningTarget__ = (s0_); FillKwDefaultsNode.doCached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, inliningTarget__, INLINED_CACHED_RAISE_, INLINED_CACHED_FIND_KW_DEFAULT_NODE_, s0_.cachedArgcount_, s0_.cachedKwOnlyArgcount_, INLINED_CACHED_MISSING_PROFILE_); return; } s0_ = s0_.next_; } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[CreateArgumentsNode.FillKwDefaultsNode.doUncached(Object, Object[], Signature, PKeyword[], int, int, Node, Lazy, FindKwDefaultNode, InlinedConditionProfile)] */) { UncachedData s1_ = this.uncached_cache; if (s1_ != null) { { Node inliningTarget__1 = (s1_); FillKwDefaultsNode.doUncached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, inliningTarget__1, INLINED_UNCACHED_RAISE_, INLINED_UNCACHED_FIND_KW_DEFAULT_NODE_, INLINED_UNCACHED_MISSING_PROFILE_); return; } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value); return; } private void executeAndSpecialize(Object arg0Value, Object[] arg1Value, Signature arg2Value, PKeyword[] arg3Value, int arg4Value, int arg5Value) { int state_0 = this.state_0_; { Node inliningTarget__ = null; if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[CreateArgumentsNode.FillKwDefaultsNode.doUncached(Object, Object[], Signature, PKeyword[], int, int, Node, Lazy, FindKwDefaultNode, InlinedConditionProfile)] */) { while (true) { int count0_ = 0; CachedData s0_ = CACHED_CACHE_UPDATER.getVolatile(this); CachedData s0_original = s0_; while (s0_ != null) { if ((arg4Value == s0_.cachedArgcount_) && (arg5Value == s0_.cachedKwOnlyArgcount_) && (FillBaseNode.checkIterations(arg4Value, arg5Value))) { inliningTarget__ = (s0_); break; } count0_++; s0_ = s0_.next_; } if (s0_ == null) { if ((FillBaseNode.checkIterations(arg4Value, arg5Value)) && count0_ < (2)) { // assert (arg4Value == s0_.cachedArgcount_); // assert (arg5Value == s0_.cachedKwOnlyArgcount_); s0_ = this.insert(new CachedData(s0_original)); inliningTarget__ = (s0_); s0_.cachedArgcount_ = (arg4Value); s0_.cachedKwOnlyArgcount_ = (arg5Value); if (!CACHED_CACHE_UPDATER.compareAndSet(this, s0_original, s0_)) { continue; } state_0 = state_0 | 0b1 /* add SpecializationActive[CreateArgumentsNode.FillKwDefaultsNode.doCached(Object, Object[], Signature, PKeyword[], int, int, Node, Lazy, FindKwDefaultNode, int, int, InlinedConditionProfile)] */; this.state_0_ = state_0; } } if (s0_ != null) { FillKwDefaultsNode.doCached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, inliningTarget__, INLINED_CACHED_RAISE_, INLINED_CACHED_FIND_KW_DEFAULT_NODE_, s0_.cachedArgcount_, s0_.cachedKwOnlyArgcount_, INLINED_CACHED_MISSING_PROFILE_); return; } break; } } } { Node inliningTarget__1 = null; UncachedData s1_ = this.insert(new UncachedData()); inliningTarget__1 = (s1_); VarHandle.storeStoreFence(); this.uncached_cache = s1_; this.cached_cache = null; state_0 = state_0 & 0xfffffffe /* remove SpecializationActive[CreateArgumentsNode.FillKwDefaultsNode.doCached(Object, Object[], Signature, PKeyword[], int, int, Node, Lazy, FindKwDefaultNode, int, int, InlinedConditionProfile)] */; state_0 = state_0 | 0b10 /* add SpecializationActive[CreateArgumentsNode.FillKwDefaultsNode.doUncached(Object, Object[], Signature, PKeyword[], int, int, Node, Lazy, FindKwDefaultNode, InlinedConditionProfile)] */; this.state_0_ = state_0; FillKwDefaultsNode.doUncached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, inliningTarget__1, INLINED_UNCACHED_RAISE_, INLINED_UNCACHED_FIND_KW_DEFAULT_NODE_, INLINED_UNCACHED_MISSING_PROFILE_); return; } } @Override public NodeCost getCost() { int state_0 = this.state_0_; if (state_0 == 0) { return NodeCost.UNINITIALIZED; } else { if ((state_0 & (state_0 - 1)) == 0 /* is-single */) { CachedData s0_ = this.cached_cache; if ((s0_ == null || s0_.next_ == null)) { return NodeCost.MONOMORPHIC; } } } return NodeCost.POLYMORPHIC; } @NeverDefault public static FillKwDefaultsNode create() { return new FillKwDefaultsNodeGen(); } @NeverDefault public static FillKwDefaultsNode getUncached() { return FillKwDefaultsNodeGen.UNCACHED; } @GeneratedBy(FillKwDefaultsNode.class) @DenyReplace private static final class CachedData extends Node implements SpecializationDataNode { @Child CachedData next_; /** * State Info:
             *   0: InlinedCache
             *        Specialization: {@link FillKwDefaultsNode#doCached}
             *        Parameter: {@link Lazy} raise
             *        Inline method: {@link LazyNodeGen#inline}
             *   1-3: InlinedCache
             *        Specialization: {@link FillKwDefaultsNode#doCached}
             *        Parameter: {@link FindKwDefaultNode} findKwDefaultNode
             *        Inline method: {@link FindKwDefaultNodeGen#inline}
             *   4-5: InlinedCache
             *        Specialization: {@link FillKwDefaultsNode#doCached}
             *        Parameter: {@link InlinedConditionProfile} missingProfile
             *        Inline method: {@link InlinedConditionProfile#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int cached_state_0_; /** * Source Info:
             *   Specialization: {@link FillKwDefaultsNode#doCached}
             *   Parameter: {@link Lazy} raise
             *   Inline method: {@link LazyNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node cached_raise__field1_; /** * Source Info:
             *   Specialization: {@link FillKwDefaultsNode#doCached}
             *   Parameter: {@link FindKwDefaultNode} findKwDefaultNode
             *   Inline method: {@link FindKwDefaultNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node cached_findKwDefaultNode__field1_; /** * Source Info:
             *   Specialization: {@link FillKwDefaultsNode#doCached}
             *   Parameter: {@link FindKwDefaultNode} findKwDefaultNode
             *   Inline method: {@link FindKwDefaultNodeGen#inline}
             *   Inline field: {@link Object} field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object cached_findKwDefaultNode__field2_; /** * Source Info:
             *   Specialization: {@link FillKwDefaultsNode#doCached}
             *   Parameter: {@link FindKwDefaultNode} findKwDefaultNode
             *   Inline method: {@link FindKwDefaultNodeGen#inline}
             *   Inline field: {@link Object} field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object cached_findKwDefaultNode__field3_; /** * Source Info:
             *   Specialization: {@link FillKwDefaultsNode#doCached}
             *   Parameter: int cachedArgcount
*/ @CompilationFinal int cachedArgcount_; /** * Source Info:
             *   Specialization: {@link FillKwDefaultsNode#doCached}
             *   Parameter: int cachedKwOnlyArgcount
*/ @CompilationFinal int cachedKwOnlyArgcount_; CachedData(CachedData next_) { this.next_ = next_; } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(FillKwDefaultsNode.class) @DenyReplace private static final class UncachedData extends Node implements SpecializationDataNode { /** * State Info:
             *   0: InlinedCache
             *        Specialization: {@link FillKwDefaultsNode#doUncached}
             *        Parameter: {@link Lazy} raise
             *        Inline method: {@link LazyNodeGen#inline}
             *   1-3: InlinedCache
             *        Specialization: {@link FillKwDefaultsNode#doUncached}
             *        Parameter: {@link FindKwDefaultNode} findKwDefaultNode
             *        Inline method: {@link FindKwDefaultNodeGen#inline}
             *   4-5: InlinedCache
             *        Specialization: {@link FillKwDefaultsNode#doUncached}
             *        Parameter: {@link InlinedConditionProfile} missingProfile
             *        Inline method: {@link InlinedConditionProfile#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int uncached_state_0_; /** * Source Info:
             *   Specialization: {@link FillKwDefaultsNode#doUncached}
             *   Parameter: {@link Lazy} raise
             *   Inline method: {@link LazyNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node uncached_raise__field1_; /** * Source Info:
             *   Specialization: {@link FillKwDefaultsNode#doUncached}
             *   Parameter: {@link FindKwDefaultNode} findKwDefaultNode
             *   Inline method: {@link FindKwDefaultNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node uncached_findKwDefaultNode__field1_; /** * Source Info:
             *   Specialization: {@link FillKwDefaultsNode#doUncached}
             *   Parameter: {@link FindKwDefaultNode} findKwDefaultNode
             *   Inline method: {@link FindKwDefaultNodeGen#inline}
             *   Inline field: {@link Object} field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object uncached_findKwDefaultNode__field2_; /** * Source Info:
             *   Specialization: {@link FillKwDefaultsNode#doUncached}
             *   Parameter: {@link FindKwDefaultNode} findKwDefaultNode
             *   Inline method: {@link FindKwDefaultNodeGen#inline}
             *   Inline field: {@link Object} field3
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object uncached_findKwDefaultNode__field3_; UncachedData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(FillKwDefaultsNode.class) @DenyReplace private static final class Uncached extends FillKwDefaultsNode { @TruffleBoundary @Override public void execute(Object arg0Value, Object[] arg1Value, Signature arg2Value, PKeyword[] arg3Value, int arg4Value, int arg5Value) { FillKwDefaultsNode.doUncached(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, (this), (Lazy.getUncached()), (FindKwDefaultNodeGen.getUncached()), (InlinedConditionProfile.getUncached())); return; } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link FindKwDefaultNode#cachedSingle}
     *     Activation probability: 0.48333
     *     With/without class size: 15/12 bytes
     *   Specialization {@link FindKwDefaultNode#doCached}
     *     Activation probability: 0.33333
     *     With/without class size: 10/4 bytes
     *   Specialization {@link FindKwDefaultNode#doUncached}
     *     Activation probability: 0.18333
     *     With/without class size: 6/0 bytes
     * 
*/ @GeneratedBy(FindKwDefaultNode.class) @SuppressWarnings("javadoc") protected static final class FindKwDefaultNodeGen { private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static FindKwDefaultNode getUncached() { return FindKwDefaultNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#equalNode} *
  • {@link Inlined#cachedSingle_cache} *
  • {@link Inlined#cached_cache} *
*/ @NeverDefault public static FindKwDefaultNode inline(@RequiredField(bits = 3, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Object.class, value = ReferenceField.class)@RequiredField(type = Object.class, value = ReferenceField.class) InlineTarget target) { return new FindKwDefaultNodeGen.Inlined(target); } @GeneratedBy(FindKwDefaultNode.class) @DenyReplace private static final class Inlined extends FindKwDefaultNode { /** * State Info:
             *   0: SpecializationActive {@link FindKwDefaultNode#cachedSingle}
             *   1: SpecializationActive {@link FindKwDefaultNode#doCached}
             *   2: SpecializationActive {@link FindKwDefaultNode#doUncached}
             * 
*/ private final StateField state_0_; private final ReferenceField equalNode; private final ReferenceField cachedSingle_cache; private final ReferenceField cached_cache; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(FindKwDefaultNode.class); this.state_0_ = target.getState(0, 3); this.equalNode = target.getReference(1, EqualNode.class); this.cachedSingle_cache = target.getReference(2, CachedSingleData.class); this.cached_cache = target.getReference(3, CachedData.class); } @ExplodeLoop @Override public PKeyword execute(Node arg0Value, PKeyword[] arg1Value, TruffleString arg2Value) { int state_0 = this.state_0_.get(arg0Value); if (state_0 != 0 /* is SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.cachedSingle(PKeyword[], TruffleString, TruffleString, PKeyword[], PKeyword)] || SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.doCached(PKeyword[], TruffleString, int, EqualNode)] || SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.doUncached(PKeyword[], TruffleString, EqualNode)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.cachedSingle(PKeyword[], TruffleString, TruffleString, PKeyword[], PKeyword)] */) { CachedSingleData s0_ = this.cachedSingle_cache.get(arg0Value); if (s0_ != null) { if ((arg2Value == s0_.cachedKwName_)) { PKeyword[] cachedKwdefaults__ = (s0_.weakCachedKwdefaultsGen__.get()); if ((cachedKwdefaults__ != null) && (arg1Value == cachedKwdefaults__)) { PKeyword result__ = (s0_.weakResultGen__.get()); assert DSLSupport.assertIdempotence((isSingleContext())); if ((result__ != null) && (FindKwDefaultNode.kwIsCorrect(cachedKwdefaults__, s0_.cachedKwName_, result__))) { return cachedSingle(arg1Value, arg2Value, s0_.cachedKwName_, cachedKwdefaults__, result__); } } } } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.doCached(PKeyword[], TruffleString, int, EqualNode)] */) { CachedData s1_ = this.cached_cache.get(arg0Value); while (s1_ != null) { { EqualNode equalNode_ = this.equalNode.get(arg0Value); if (equalNode_ != null) { if ((arg1Value.length == s1_.cachedLength_)) { assert DSLSupport.assertIdempotence((s1_.cachedLength_ < 32)); return FindKwDefaultNode.doCached(arg1Value, arg2Value, s1_.cachedLength_, equalNode_); } } } s1_ = s1_.next_; } } if ((state_0 & 0b100) != 0 /* is SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.doUncached(PKeyword[], TruffleString, EqualNode)] */) { { EqualNode equalNode_1 = this.equalNode.get(arg0Value); if (equalNode_1 != null) { return FindKwDefaultNode.doUncached(arg1Value, arg2Value, equalNode_1); } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value, arg1Value, arg2Value); } private PKeyword executeAndSpecialize(Node arg0Value, PKeyword[] arg1Value, TruffleString arg2Value) { int state_0 = this.state_0_.get(arg0Value); { PKeyword result__ = null; PKeyword[] cachedKwdefaults__ = null; if (((state_0 & 0b110)) == 0 /* is-not SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.doCached(PKeyword[], TruffleString, int, EqualNode)] && SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.doUncached(PKeyword[], TruffleString, EqualNode)] */) { while (true) { int count0_ = 0; CachedSingleData s0_ = this.cachedSingle_cache.getVolatile(arg0Value); CachedSingleData s0_original = s0_; while (s0_ != null) { if ((arg2Value == s0_.cachedKwName_)) { cachedKwdefaults__ = (s0_.weakCachedKwdefaultsGen__.get()); if ((cachedKwdefaults__ != null) && (arg1Value == cachedKwdefaults__)) { result__ = (s0_.weakResultGen__.get()); assert DSLSupport.assertIdempotence((isSingleContext())); if ((result__ != null) && (FindKwDefaultNode.kwIsCorrect(cachedKwdefaults__, s0_.cachedKwName_, result__))) { break; } } } count0_++; s0_ = null; break; } if (s0_ == null && count0_ < 1) { { TruffleWeakReference weakCachedKwdefaultsGen___ = (new TruffleWeakReference<>(arg1Value)); cachedKwdefaults__ = (weakCachedKwdefaultsGen___.get()); // assert (arg2Value == s0_.cachedKwName_); if ((cachedKwdefaults__ != null) && (arg1Value == cachedKwdefaults__) && (isSingleContext())) { TruffleWeakReference weakResultGen___ = (new TruffleWeakReference<>(FindKwDefaultNode.doUncached(arg1Value, arg2Value, FindKwDefaultNode.getUncachedEqualNode()))); result__ = (weakResultGen___.get()); if ((result__ != null)) { TruffleString cachedKwName__ = (arg2Value); if ((FindKwDefaultNode.kwIsCorrect(cachedKwdefaults__, cachedKwName__, result__))) { s0_ = new CachedSingleData(); s0_.weakResultGen__ = weakResultGen___; s0_.weakCachedKwdefaultsGen__ = weakCachedKwdefaultsGen___; s0_.cachedKwName_ = cachedKwName__; if (!this.cachedSingle_cache.compareAndSet(arg0Value, s0_original, s0_)) { continue; } state_0 = state_0 | 0b1 /* add SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.cachedSingle(PKeyword[], TruffleString, TruffleString, PKeyword[], PKeyword)] */; this.state_0_.set(arg0Value, state_0); } } } } } if (s0_ != null) { return cachedSingle(arg1Value, arg2Value, s0_.cachedKwName_, cachedKwdefaults__, result__); } break; } } } if (((state_0 & 0b100)) == 0 /* is-not SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.doUncached(PKeyword[], TruffleString, EqualNode)] */) { while (true) { int count1_ = 0; CachedData s1_ = this.cached_cache.getVolatile(arg0Value); CachedData s1_original = s1_; while (s1_ != null) { { EqualNode equalNode_ = this.equalNode.get(arg0Value); if (equalNode_ != null) { if ((arg1Value.length == s1_.cachedLength_)) { assert DSLSupport.assertIdempotence((s1_.cachedLength_ < 32)); break; } } } count1_++; s1_ = s1_.next_; } if (s1_ == null) { { int cachedLength__ = (arg1Value.length); // assert (arg1Value.length == s1_.cachedLength_); if ((cachedLength__ < 32) && count1_ < (3)) { s1_ = new CachedData(s1_original); s1_.cachedLength_ = cachedLength__; EqualNode equalNode_; EqualNode equalNode__shared = this.equalNode.get(arg0Value); if (equalNode__shared != null) { equalNode_ = equalNode__shared; } else { equalNode_ = arg0Value.insert((EqualNode.create())); if (equalNode_ == null) { throw new IllegalStateException("Specialization 'doCached(PKeyword[], TruffleString, int, EqualNode)' contains a shared cache with name 'equalNode' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } if (this.equalNode.get(arg0Value) == null) { this.equalNode.set(arg0Value, equalNode_); } if (!this.cached_cache.compareAndSet(arg0Value, s1_original, s1_)) { continue; } this.cachedSingle_cache.set(arg0Value, null); state_0 = state_0 & 0xfffffffe /* remove SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.cachedSingle(PKeyword[], TruffleString, TruffleString, PKeyword[], PKeyword)] */; state_0 = state_0 | 0b10 /* add SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.doCached(PKeyword[], TruffleString, int, EqualNode)] */; this.state_0_.set(arg0Value, state_0); } } } if (s1_ != null) { return FindKwDefaultNode.doCached(arg1Value, arg2Value, s1_.cachedLength_, this.equalNode.get(arg0Value)); } break; } } EqualNode equalNode_1; EqualNode equalNode_1_shared = this.equalNode.get(arg0Value); if (equalNode_1_shared != null) { equalNode_1 = equalNode_1_shared; } else { equalNode_1 = arg0Value.insert((EqualNode.create())); if (equalNode_1 == null) { throw new IllegalStateException("Specialization 'doUncached(PKeyword[], TruffleString, EqualNode)' contains a shared cache with name 'equalNode' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state."); } } if (this.equalNode.get(arg0Value) == null) { VarHandle.storeStoreFence(); this.equalNode.set(arg0Value, equalNode_1); } this.cachedSingle_cache.set(arg0Value, null); this.cached_cache.set(arg0Value, null); state_0 = state_0 & 0xfffffffc /* remove SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.cachedSingle(PKeyword[], TruffleString, TruffleString, PKeyword[], PKeyword)], SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.doCached(PKeyword[], TruffleString, int, EqualNode)] */; state_0 = state_0 | 0b100 /* add SpecializationActive[CreateArgumentsNode.FindKwDefaultNode.doUncached(PKeyword[], TruffleString, EqualNode)] */; this.state_0_.set(arg0Value, state_0); return FindKwDefaultNode.doUncached(arg1Value, arg2Value, equalNode_1); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(FindKwDefaultNode.class) @DenyReplace private static final class CachedSingleData implements SpecializationDataNode { /** * Source Info:
             *   Specialization: {@link FindKwDefaultNode#cachedSingle}
             *   Parameter: {@link TruffleWeakReference} weakResultGen_
*/ @CompilationFinal TruffleWeakReference weakResultGen__; /** * Source Info:
             *   Specialization: {@link FindKwDefaultNode#cachedSingle}
             *   Parameter: {@link TruffleWeakReference} weakCachedKwdefaultsGen_
*/ @CompilationFinal TruffleWeakReference weakCachedKwdefaultsGen__; /** * Source Info:
             *   Specialization: {@link FindKwDefaultNode#cachedSingle}
             *   Parameter: {@link TruffleString} cachedKwName
*/ @CompilationFinal TruffleString cachedKwName_; CachedSingleData() { } } @GeneratedBy(FindKwDefaultNode.class) @DenyReplace private static final class CachedData implements SpecializationDataNode { @CompilationFinal final CachedData next_; /** * Source Info:
             *   Specialization: {@link FindKwDefaultNode#doCached}
             *   Parameter: int cachedLength
*/ @CompilationFinal int cachedLength_; CachedData(CachedData next_) { this.next_ = next_; } } @GeneratedBy(FindKwDefaultNode.class) @DenyReplace private static final class Uncached extends FindKwDefaultNode { @TruffleBoundary @Override public PKeyword execute(Node arg0Value, PKeyword[] arg1Value, TruffleString arg2Value) { return FindKwDefaultNode.doUncached(arg1Value, arg2Value, (EqualNode.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } }