Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.oracle.graal.python.nodes.argument.CreateArgumentsNodeGen Maven / Gradle / Ivy
// 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;
}
}
}
}