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

com.oracle.graal.python.lib.PyObjectLookupAttrNodeGen Maven / Gradle / Ivy

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

import com.oracle.graal.python.builtins.objects.type.SpecialMethodSlot;
import com.oracle.graal.python.nodes.PGuards;
import com.oracle.graal.python.nodes.attributes.LookupAttributeInMRONode;
import com.oracle.graal.python.nodes.attributes.LookupInheritedSlotNode;
import com.oracle.graal.python.nodes.attributes.ReadAttributeFromObjectNode;
import com.oracle.graal.python.nodes.attributes.LookupAttributeInMRONode.Dynamic;
import com.oracle.graal.python.nodes.call.CallNode;
import com.oracle.graal.python.nodes.call.special.CallBinaryMethodNode;
import com.oracle.graal.python.nodes.call.special.CallTernaryMethodNode;
import com.oracle.graal.python.nodes.call.special.LookupSpecialMethodSlotNode;
import com.oracle.graal.python.nodes.object.GetClassNode;
import com.oracle.graal.python.nodes.object.GetClassNodeGen;
import com.oracle.graal.python.nodes.object.BuiltinClassProfiles.IsBuiltinObjectProfile;
import com.oracle.graal.python.nodes.object.BuiltinClassProfilesFactory.IsBuiltinObjectProfileNodeGen;
import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
import com.oracle.truffle.api.dsl.GeneratedBy;
import com.oracle.truffle.api.dsl.NeverDefault;
import com.oracle.truffle.api.dsl.DSLSupport.SpecializationDataNode;
import com.oracle.truffle.api.dsl.InlineSupport.InlineTarget;
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.frame.Frame;
import com.oracle.truffle.api.frame.VirtualFrame;
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.InlinedConditionProfile;
import com.oracle.truffle.api.strings.TruffleString;
import com.oracle.truffle.api.strings.TruffleString.CodePointAtIndexNode;
import com.oracle.truffle.api.strings.TruffleString.CodePointLengthNode;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import java.lang.invoke.MethodHandles.Lookup;
import java.util.Objects;

/**
 * Debug Info: 
 *   Specialization {@link PyObjectLookupAttr#doBuiltinObject}
 *     Activation probability: 0.32000
 *     With/without class size: 15/15 bytes
 *   Specialization {@link PyObjectLookupAttr#doBuiltinModule}
 *     Activation probability: 0.26000
 *     With/without class size: 16/29 bytes
 *   Specialization {@link PyObjectLookupAttr#doBuiltinTypeType}
 *     Activation probability: 0.20000
 *     With/without class size: 11/18 bytes
 *   Specialization {@link PyObjectLookupAttr#doBuiltinType}
 *     Activation probability: 0.14000
 *     With/without class size: 10/26 bytes
 *   Specialization {@link PyObjectLookupAttr#getDynamicAttr}
 *     Activation probability: 0.08000
 *     With/without class size: 7/29 bytes
 * 
*/ @GeneratedBy(PyObjectLookupAttr.class) @SuppressWarnings({"javadoc", "unused"}) public final class PyObjectLookupAttrNodeGen extends PyObjectLookupAttr { private static final StateField BUILTIN_OBJECT__PY_OBJECT_LOOKUP_ATTR_BUILTIN_OBJECT_STATE_0_UPDATER = StateField.create(BuiltinObjectData.lookup_(), "builtinObject_state_0_"); private static final StateField BUILTIN_MODULE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_MODULE_STATE_0_UPDATER = StateField.create(BuiltinModuleData.lookup_(), "builtinModule_state_0_"); private static final StateField BUILTIN_MODULE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_MODULE_STATE_1_UPDATER = StateField.create(BuiltinModuleData.lookup_(), "builtinModule_state_1_"); private static final StateField BUILTIN_TYPE_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_TYPE_STATE_0_UPDATER = StateField.create(BuiltinTypeTypeData.lookup_(), "builtinTypeType_state_0_"); private static final StateField BUILTIN_TYPE_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_TYPE_STATE_1_UPDATER = StateField.create(BuiltinTypeTypeData.lookup_(), "builtinTypeType_state_1_"); private static final StateField BUILTIN_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_STATE_0_UPDATER = StateField.create(BuiltinTypeData.lookup_(), "builtinType_state_0_"); private static final StateField BUILTIN_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_STATE_1_UPDATER = StateField.create(BuiltinTypeData.lookup_(), "builtinType_state_1_"); private static final StateField GET_DYNAMIC_ATTR__PY_OBJECT_LOOKUP_ATTR_GET_DYNAMIC_ATTR_STATE_0_UPDATER = StateField.create(GetDynamicAttrData.lookup_(), "getDynamicAttr_state_0_"); private static final StateField GET_DYNAMIC_ATTR__PY_OBJECT_LOOKUP_ATTR_GET_DYNAMIC_ATTR_STATE_1_UPDATER = StateField.create(GetDynamicAttrData.lookup_(), "getDynamicAttr_state_1_"); static final ReferenceField BUILTIN_OBJECT_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "builtinObject_cache", BuiltinObjectData.class); static final ReferenceField BUILTIN_MODULE_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "builtinModule_cache", BuiltinModuleData.class); static final ReferenceField BUILTIN_TYPE_TYPE_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "builtinTypeType_cache", BuiltinTypeTypeData.class); static final ReferenceField BUILTIN_TYPE_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "builtinType_cache", BuiltinTypeData.class); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinObject}
     *   Parameter: {@link GetClassNode} getClass
     *   Inline method: {@link GetClassNodeGen#inline}
*/ private static final GetClassNode INLINED_BUILTIN_OBJECT_GET_CLASS_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, BUILTIN_OBJECT__PY_OBJECT_LOOKUP_ATTR_BUILTIN_OBJECT_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(BuiltinObjectData.lookup_(), "builtinObject_getClass__field1_", Node.class))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
     *   Parameter: {@link GetClassNode} getClass
     *   Inline method: {@link GetClassNodeGen#inline}
*/ private static final GetClassNode INLINED_BUILTIN_MODULE_GET_CLASS_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, BUILTIN_MODULE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_MODULE_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(BuiltinModuleData.lookup_(), "builtinModule_getClass__field1_", Node.class))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
     *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
     *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
*/ private static final IsBuiltinObjectProfile INLINED_BUILTIN_MODULE_ERROR_PROFILE_ = IsBuiltinObjectProfileNodeGen.inline(InlineTarget.create(IsBuiltinObjectProfile.class, BUILTIN_MODULE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_MODULE_STATE_1_UPDATER.subUpdater(0, 20), ReferenceField.create(BuiltinModuleData.lookup_(), "builtinModule_errorProfile__field1_", Node.class))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
     *   Parameter: {@link InlinedConditionProfile} noValueFound
     *   Inline method: {@link InlinedConditionProfile#inline}
*/ private static final InlinedConditionProfile INLINED_BUILTIN_MODULE_NO_VALUE_FOUND_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, BUILTIN_MODULE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_MODULE_STATE_0_UPDATER.subUpdater(17, 2))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
     *   Parameter: {@link GetClassNode} getClass
     *   Inline method: {@link GetClassNodeGen#inline}
*/ private static final GetClassNode INLINED_BUILTIN_TYPE_TYPE_GET_CLASS_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, BUILTIN_TYPE_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_TYPE_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(BuiltinTypeTypeData.lookup_(), "builtinTypeType_getClass__field1_", Node.class))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
     *   Parameter: {@link InlinedConditionProfile} valueFound
     *   Inline method: {@link InlinedConditionProfile#inline}
*/ private static final InlinedConditionProfile INLINED_BUILTIN_TYPE_TYPE_VALUE_FOUND_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, BUILTIN_TYPE_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_TYPE_STATE_0_UPDATER.subUpdater(17, 2))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
     *   Parameter: {@link InlinedConditionProfile} noGetMethod
     *   Inline method: {@link InlinedConditionProfile#inline}
*/ private static final InlinedConditionProfile INLINED_BUILTIN_TYPE_TYPE_NO_GET_METHOD_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, BUILTIN_TYPE_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_TYPE_STATE_0_UPDATER.subUpdater(19, 2))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
     *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
     *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
*/ private static final IsBuiltinObjectProfile INLINED_BUILTIN_TYPE_TYPE_ERROR_PROFILE_ = IsBuiltinObjectProfileNodeGen.inline(InlineTarget.create(IsBuiltinObjectProfile.class, BUILTIN_TYPE_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_TYPE_STATE_1_UPDATER.subUpdater(0, 20), ReferenceField.create(BuiltinTypeTypeData.lookup_(), "builtinTypeType_errorProfile__field1_", Node.class))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
     *   Parameter: {@link GetClassNode} getClass
     *   Inline method: {@link GetClassNodeGen#inline}
*/ private static final GetClassNode INLINED_BUILTIN_TYPE_GET_CLASS_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, BUILTIN_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(BuiltinTypeData.lookup_(), "builtinType_getClass__field1_", Node.class))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
     *   Parameter: {@link InlinedConditionProfile} valueFound
     *   Inline method: {@link InlinedConditionProfile#inline}
*/ private static final InlinedConditionProfile INLINED_BUILTIN_TYPE_VALUE_FOUND_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, BUILTIN_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_STATE_0_UPDATER.subUpdater(17, 2))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
     *   Parameter: {@link InlinedConditionProfile} noGetMethod
     *   Inline method: {@link InlinedConditionProfile#inline}
*/ private static final InlinedConditionProfile INLINED_BUILTIN_TYPE_NO_GET_METHOD_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, BUILTIN_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_STATE_0_UPDATER.subUpdater(19, 2))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
     *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
     *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
*/ private static final IsBuiltinObjectProfile INLINED_BUILTIN_TYPE_ERROR_PROFILE_ = IsBuiltinObjectProfileNodeGen.inline(InlineTarget.create(IsBuiltinObjectProfile.class, BUILTIN_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_STATE_1_UPDATER.subUpdater(0, 20), ReferenceField.create(BuiltinTypeData.lookup_(), "builtinType_errorProfile__field1_", Node.class))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#getDynamicAttr}
     *   Parameter: {@link GetClassNode} getClass
     *   Inline method: {@link GetClassNodeGen#inline}
*/ private static final GetClassNode INLINED_GET_DYNAMIC_ATTR_GET_CLASS_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GET_DYNAMIC_ATTR__PY_OBJECT_LOOKUP_ATTR_GET_DYNAMIC_ATTR_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(GetDynamicAttrData.lookup_(), "getDynamicAttr_getClass__field1_", Node.class))); /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#getDynamicAttr}
     *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
     *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
*/ private static final IsBuiltinObjectProfile INLINED_GET_DYNAMIC_ATTR_ERROR_PROFILE_ = IsBuiltinObjectProfileNodeGen.inline(InlineTarget.create(IsBuiltinObjectProfile.class, GET_DYNAMIC_ATTR__PY_OBJECT_LOOKUP_ATTR_GET_DYNAMIC_ATTR_STATE_1_UPDATER.subUpdater(0, 20), ReferenceField.create(GetDynamicAttrData.lookup_(), "getDynamicAttr_errorProfile__field1_", Node.class))); private static final Uncached UNCACHED = new Uncached(); /** * State Info:
     *   0: SpecializationActive {@link PyObjectLookupAttr#doBuiltinObject}
     *   1: SpecializationActive {@link PyObjectLookupAttr#getDynamicAttr}
     *   2: SpecializationActive {@link PyObjectLookupAttr#doBuiltinModule}
     *   3: SpecializationActive {@link PyObjectLookupAttr#doBuiltinTypeType}
     *   4: SpecializationActive {@link PyObjectLookupAttr#doBuiltinType}
     * 
*/ @CompilationFinal private int state_0_; /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinObject}
     *   Parameter: {@link ReadAttributeFromObjectNode} readNode
*/ @Child private ReadAttributeFromObjectNode readNode; /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
     *   Parameter: {@link LookupInheritedSlotNode} lookupValueGet
*/ @Child private LookupInheritedSlotNode lookupValueGet; /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
     *   Parameter: {@link CallTernaryMethodNode} invokeValueGet
*/ @Child private CallTernaryMethodNode invokeValueGet; /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
     *   Parameter: {@link CodePointLengthNode} codePointLengthNode
*/ @Child private CodePointLengthNode codePointLengthNode; /** * Source Info:
     *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
     *   Parameter: {@link CodePointAtIndexNode} codePointAtIndexNode
*/ @Child private CodePointAtIndexNode codePointAtIndexNode; @UnsafeAccessedField @Child private BuiltinObjectData builtinObject_cache; @UnsafeAccessedField @Child private BuiltinModuleData builtinModule_cache; @UnsafeAccessedField @Child private BuiltinTypeTypeData builtinTypeType_cache; @UnsafeAccessedField @Child private BuiltinTypeData builtinType_cache; @Child private GetDynamicAttrData getDynamicAttr_cache; private PyObjectLookupAttrNodeGen() { } @ExplodeLoop @Override public Object execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value) { int state_0 = this.state_0_; if (state_0 != 0 /* is SpecializationActive[PyObjectLookupAttr.doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)] || SpecializationActive[PyObjectLookupAttr.doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)] || SpecializationActive[PyObjectLookupAttr.doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] || SpecializationActive[PyObjectLookupAttr.doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)] || SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { if ((state_0 & 0b11101) != 0 /* is SpecializationActive[PyObjectLookupAttr.doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)] || SpecializationActive[PyObjectLookupAttr.doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)] || SpecializationActive[PyObjectLookupAttr.doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] || SpecializationActive[PyObjectLookupAttr.doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)] */ && arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyObjectLookupAttr.doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)] */) { BuiltinObjectData s0_ = this.builtinObject_cache; while (s0_ != null) { { ReadAttributeFromObjectNode readNode_ = this.readNode; if (readNode_ != null) { Object type__ = (INLINED_BUILTIN_OBJECT_GET_CLASS_.execute(s0_, arg1Value)); if ((PyObjectLookupAttr.isObjectGetAttribute(type__)) && (PyObjectLookupAttr.hasNoGetAttr(type__)) && (arg2Value_ == s0_.cachedName_)) { Object descr__ = (s0_.lookupName_.execute(type__)); if ((PGuards.isNoValue(descr__))) { return PyObjectLookupAttr.doBuiltinObject((VirtualFrame) frameValue, s0_, arg1Value, arg2Value_, s0_.cachedName_, INLINED_BUILTIN_OBJECT_GET_CLASS_, type__, s0_.lookupName_, descr__, readNode_); } } } } s0_ = s0_.next_; } } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyObjectLookupAttr.doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)] */) { BuiltinModuleData s1_ = this.builtinModule_cache; if (s1_ != null) { { ReadAttributeFromObjectNode readNode_1 = this.readNode; if (readNode_1 != null) { Object type__1 = (INLINED_BUILTIN_MODULE_GET_CLASS_.execute(s1_, arg1Value)); if ((PyObjectLookupAttr.isModuleGetAttribute(type__1)) && (PyObjectLookupAttr.hasNoGetAttr(type__1)) && (arg2Value_ == s1_.cachedName_)) { Object descr__1 = (s1_.lookupName_.execute(type__1)); if ((PGuards.isNoValue(descr__1))) { return PyObjectLookupAttr.doBuiltinModule((VirtualFrame) frameValue, s1_, arg1Value, arg2Value_, s1_.cachedName_, INLINED_BUILTIN_MODULE_GET_CLASS_, type__1, s1_.lookupName_, descr__1, readNode_1, s1_.readGetattr_, INLINED_BUILTIN_MODULE_ERROR_PROFILE_, INLINED_BUILTIN_MODULE_NO_VALUE_FOUND_, s1_.callGetattr_); } } } } } } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyObjectLookupAttr.doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { BuiltinTypeTypeData s2_ = this.builtinTypeType_cache; if (s2_ != null) { { LookupInheritedSlotNode lookupValueGet_ = this.lookupValueGet; if (lookupValueGet_ != null) { CallTernaryMethodNode invokeValueGet_ = this.invokeValueGet; if (invokeValueGet_ != null) { CodePointLengthNode codePointLengthNode_ = this.codePointLengthNode; if (codePointLengthNode_ != null) { CodePointAtIndexNode codePointAtIndexNode_ = this.codePointAtIndexNode; if (codePointAtIndexNode_ != null) { Object type__2 = (INLINED_BUILTIN_TYPE_TYPE_GET_CLASS_.execute(s2_, arg1Value)); if ((PyObjectLookupAttr.isTypeGetAttribute(type__2)) && (PyObjectLookupAttr.isBuiltinTypeType(type__2)) && (!(PyObjectLookupAttr.isTypeSlot(arg2Value_, codePointLengthNode_, codePointAtIndexNode_)))) { return PyObjectLookupAttr.doBuiltinTypeType((VirtualFrame) frameValue, s2_, arg1Value, arg2Value_, INLINED_BUILTIN_TYPE_TYPE_GET_CLASS_, type__2, s2_.readNode_, INLINED_BUILTIN_TYPE_TYPE_VALUE_FOUND_, lookupValueGet_, INLINED_BUILTIN_TYPE_TYPE_NO_GET_METHOD_, invokeValueGet_, INLINED_BUILTIN_TYPE_TYPE_ERROR_PROFILE_, codePointLengthNode_, codePointAtIndexNode_); } } } } } } } } if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyObjectLookupAttr.doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)] */) { BuiltinTypeData s3_ = this.builtinType_cache; if (s3_ != null) { { LookupInheritedSlotNode lookupValueGet_1 = this.lookupValueGet; if (lookupValueGet_1 != null) { CallTernaryMethodNode invokeValueGet_1 = this.invokeValueGet; if (invokeValueGet_1 != null) { Object type__3 = (INLINED_BUILTIN_TYPE_GET_CLASS_.execute(s3_, arg1Value)); if ((PyObjectLookupAttr.isTypeGetAttribute(type__3)) && (PyObjectLookupAttr.hasNoGetAttr(type__3)) && (arg2Value_ == s3_.cachedName_)) { Object metaClassDescr__ = (s3_.lookupInMetaclassHierachy_.execute(type__3)); if ((PGuards.isNoValue(metaClassDescr__))) { return PyObjectLookupAttr.doBuiltinType((VirtualFrame) frameValue, s3_, arg1Value, arg2Value_, s3_.cachedName_, INLINED_BUILTIN_TYPE_GET_CLASS_, type__3, s3_.lookupInMetaclassHierachy_, metaClassDescr__, s3_.readNode_, INLINED_BUILTIN_TYPE_VALUE_FOUND_, lookupValueGet_1, INLINED_BUILTIN_TYPE_NO_GET_METHOD_, invokeValueGet_1, INLINED_BUILTIN_TYPE_ERROR_PROFILE_); } } } } } } } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { GetDynamicAttrData s4_ = this.getDynamicAttr_cache; if (s4_ != null) { { CodePointLengthNode codePointLengthNode_1 = this.codePointLengthNode; if (codePointLengthNode_1 != null) { CodePointAtIndexNode codePointAtIndexNode_1 = this.codePointAtIndexNode; if (codePointAtIndexNode_1 != null) { return PyObjectLookupAttr.getDynamicAttr(frameValue, s4_, arg1Value, arg2Value, INLINED_GET_DYNAMIC_ATTR_GET_CLASS_, s4_.lookupGetattribute_, s4_.lookupGetattr_, s4_.callGetattribute_, s4_.callGetattr_, INLINED_GET_DYNAMIC_ATTR_ERROR_PROFILE_, codePointLengthNode_1, codePointAtIndexNode_1); } } } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value, arg2Value); } @SuppressWarnings("unused") private Object executeAndSpecialize(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value) { int state_0 = this.state_0_; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; { Object descr__ = null; Object type__ = null; if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { while (true) { int count0_ = 0; BuiltinObjectData s0_ = BUILTIN_OBJECT_CACHE_UPDATER.getVolatile(this); BuiltinObjectData s0_original = s0_; while (s0_ != null) { { ReadAttributeFromObjectNode readNode_ = this.readNode; if (readNode_ != null) { type__ = (INLINED_BUILTIN_OBJECT_GET_CLASS_.execute(s0_, arg1Value)); if ((PyObjectLookupAttr.isObjectGetAttribute(type__)) && (PyObjectLookupAttr.hasNoGetAttr(type__)) && (arg2Value_ == s0_.cachedName_)) { descr__ = (s0_.lookupName_.execute(type__)); if ((PGuards.isNoValue(descr__))) { break; } } } } count0_++; s0_ = s0_.next_; } if (s0_ == null) { { s0_ = this.insert(new BuiltinObjectData(s0_original)); type__ = (INLINED_BUILTIN_OBJECT_GET_CLASS_.execute(s0_, arg1Value)); if ((PyObjectLookupAttr.isObjectGetAttribute(type__)) && (PyObjectLookupAttr.hasNoGetAttr(type__))) { LookupAttributeInMRONode lookupName__ = s0_.insert((LookupAttributeInMRONode.create(arg2Value_))); descr__ = (lookupName__.execute(type__)); // assert (arg2Value_ == s0_.cachedName_); if ((PGuards.isNoValue(descr__)) && count0_ < (3)) { s0_.cachedName_ = (arg2Value_); Objects.requireNonNull(s0_.insert(lookupName__), "Specialization 'doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)' cache 'lookupName' 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'."); s0_.lookupName_ = lookupName__; ReadAttributeFromObjectNode readNode_; ReadAttributeFromObjectNode readNode__shared = this.readNode; if (readNode__shared != null) { readNode_ = readNode__shared; } else { readNode_ = s0_.insert((ReadAttributeFromObjectNode.create())); if (readNode_ == null) { throw new IllegalStateException("Specialization 'doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)' contains a shared cache with name 'readNode' 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.readNode == null) { this.readNode = readNode_; } if (!BUILTIN_OBJECT_CACHE_UPDATER.compareAndSet(this, s0_original, s0_)) { continue; } state_0 = state_0 | 0b1 /* add SpecializationActive[PyObjectLookupAttr.doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)] */; this.state_0_ = state_0; } else { s0_ = null; } } else { s0_ = null; } } } if (s0_ != null) { return PyObjectLookupAttr.doBuiltinObject((VirtualFrame) frameValue, s0_, arg1Value, arg2Value_, s0_.cachedName_, INLINED_BUILTIN_OBJECT_GET_CLASS_, type__, s0_.lookupName_, descr__, this.readNode); } break; } } } { Object descr__1 = null; Object type__1 = null; if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { while (true) { int count1_ = 0; BuiltinModuleData s1_ = BUILTIN_MODULE_CACHE_UPDATER.getVolatile(this); BuiltinModuleData s1_original = s1_; while (s1_ != null) { { ReadAttributeFromObjectNode readNode_1 = this.readNode; if (readNode_1 != null) { type__1 = (INLINED_BUILTIN_MODULE_GET_CLASS_.execute(s1_, arg1Value)); if ((PyObjectLookupAttr.isModuleGetAttribute(type__1)) && (PyObjectLookupAttr.hasNoGetAttr(type__1)) && (arg2Value_ == s1_.cachedName_)) { descr__1 = (s1_.lookupName_.execute(type__1)); if ((PGuards.isNoValue(descr__1))) { break; } } } } count1_++; s1_ = null; break; } if (s1_ == null && count1_ < 1) { { s1_ = this.insert(new BuiltinModuleData()); type__1 = (INLINED_BUILTIN_MODULE_GET_CLASS_.execute(s1_, arg1Value)); if ((PyObjectLookupAttr.isModuleGetAttribute(type__1)) && (PyObjectLookupAttr.hasNoGetAttr(type__1))) { LookupAttributeInMRONode lookupName__1 = s1_.insert((LookupAttributeInMRONode.create(arg2Value_))); descr__1 = (lookupName__1.execute(type__1)); // assert (arg2Value_ == s1_.cachedName_); if ((PGuards.isNoValue(descr__1))) { s1_.cachedName_ = (arg2Value_); Objects.requireNonNull(s1_.insert(lookupName__1), "Specialization 'doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)' cache 'lookupName' 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'."); s1_.lookupName_ = lookupName__1; ReadAttributeFromObjectNode readNode_1; ReadAttributeFromObjectNode readNode_1_shared = this.readNode; if (readNode_1_shared != null) { readNode_1 = readNode_1_shared; } else { readNode_1 = s1_.insert((ReadAttributeFromObjectNode.create())); if (readNode_1 == null) { throw new IllegalStateException("Specialization 'doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)' contains a shared cache with name 'readNode' 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.readNode == null) { this.readNode = readNode_1; } ReadAttributeFromObjectNode readGetattr__ = s1_.insert((ReadAttributeFromObjectNode.create())); Objects.requireNonNull(readGetattr__, "Specialization 'doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)' cache 'readGetattr' 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'."); s1_.readGetattr_ = readGetattr__; CallNode callGetattr__ = s1_.insert((CallNode.create())); Objects.requireNonNull(callGetattr__, "Specialization 'doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)' cache 'callGetattr' 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'."); s1_.callGetattr_ = callGetattr__; if (!BUILTIN_MODULE_CACHE_UPDATER.compareAndSet(this, s1_original, s1_)) { continue; } state_0 = state_0 | 0b100 /* add SpecializationActive[PyObjectLookupAttr.doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)] */; this.state_0_ = state_0; } else { s1_ = null; } } else { s1_ = null; } } } if (s1_ != null) { return PyObjectLookupAttr.doBuiltinModule((VirtualFrame) frameValue, s1_, arg1Value, arg2Value_, s1_.cachedName_, INLINED_BUILTIN_MODULE_GET_CLASS_, type__1, s1_.lookupName_, descr__1, this.readNode, s1_.readGetattr_, INLINED_BUILTIN_MODULE_ERROR_PROFILE_, INLINED_BUILTIN_MODULE_NO_VALUE_FOUND_, s1_.callGetattr_); } break; } } } { Object type__2 = null; if (((state_0 & 0b10010)) == 0 /* is-not SpecializationActive[PyObjectLookupAttr.doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)] && SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { while (true) { int count2_ = 0; BuiltinTypeTypeData s2_ = BUILTIN_TYPE_TYPE_CACHE_UPDATER.getVolatile(this); BuiltinTypeTypeData s2_original = s2_; while (s2_ != null) { { LookupInheritedSlotNode lookupValueGet_ = this.lookupValueGet; if (lookupValueGet_ != null) { CallTernaryMethodNode invokeValueGet_ = this.invokeValueGet; if (invokeValueGet_ != null) { CodePointLengthNode codePointLengthNode_ = this.codePointLengthNode; if (codePointLengthNode_ != null) { CodePointAtIndexNode codePointAtIndexNode_ = this.codePointAtIndexNode; if (codePointAtIndexNode_ != null) { type__2 = (INLINED_BUILTIN_TYPE_TYPE_GET_CLASS_.execute(s2_, arg1Value)); if ((PyObjectLookupAttr.isTypeGetAttribute(type__2)) && (PyObjectLookupAttr.isBuiltinTypeType(type__2)) && (!(PyObjectLookupAttr.isTypeSlot(arg2Value_, codePointLengthNode_, codePointAtIndexNode_)))) { break; } } } } } } count2_++; s2_ = null; break; } if (s2_ == null && count2_ < 1) { { s2_ = this.insert(new BuiltinTypeTypeData()); type__2 = (INLINED_BUILTIN_TYPE_TYPE_GET_CLASS_.execute(s2_, arg1Value)); if ((PyObjectLookupAttr.isTypeGetAttribute(type__2)) && (PyObjectLookupAttr.isBuiltinTypeType(type__2))) { CodePointLengthNode codePointLengthNode_; CodePointLengthNode codePointLengthNode__shared = this.codePointLengthNode; if (codePointLengthNode__shared != null) { codePointLengthNode_ = codePointLengthNode__shared; } else { codePointLengthNode_ = s2_.insert((CodePointLengthNode.create())); if (codePointLengthNode_ == null) { throw new IllegalStateException("Specialization 'doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' contains a shared cache with name 'codePointLengthNode' 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."); } } CodePointAtIndexNode codePointAtIndexNode_; CodePointAtIndexNode codePointAtIndexNode__shared = this.codePointAtIndexNode; if (codePointAtIndexNode__shared != null) { codePointAtIndexNode_ = codePointAtIndexNode__shared; } else { codePointAtIndexNode_ = s2_.insert((CodePointAtIndexNode.create())); if (codePointAtIndexNode_ == null) { throw new IllegalStateException("Specialization 'doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' contains a shared cache with name 'codePointAtIndexNode' 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 ((!(PyObjectLookupAttr.isTypeSlot(arg2Value_, codePointLengthNode_, codePointAtIndexNode_)))) { Dynamic readNode__ = s2_.insert((Dynamic.create())); Objects.requireNonNull(readNode__, "Specialization 'doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' cache 'readNode' 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'."); s2_.readNode_ = readNode__; LookupInheritedSlotNode lookupValueGet_; LookupInheritedSlotNode lookupValueGet__shared = this.lookupValueGet; if (lookupValueGet__shared != null) { lookupValueGet_ = lookupValueGet__shared; } else { lookupValueGet_ = s2_.insert((LookupInheritedSlotNode.create(SpecialMethodSlot.Get))); if (lookupValueGet_ == null) { throw new IllegalStateException("Specialization 'doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' contains a shared cache with name 'lookupValueGet' 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.lookupValueGet == null) { this.lookupValueGet = lookupValueGet_; } CallTernaryMethodNode invokeValueGet_; CallTernaryMethodNode invokeValueGet__shared = this.invokeValueGet; if (invokeValueGet__shared != null) { invokeValueGet_ = invokeValueGet__shared; } else { invokeValueGet_ = s2_.insert((CallTernaryMethodNode.create())); if (invokeValueGet_ == null) { throw new IllegalStateException("Specialization 'doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' contains a shared cache with name 'invokeValueGet' 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.invokeValueGet == null) { this.invokeValueGet = invokeValueGet_; } if (this.codePointLengthNode == null) { this.codePointLengthNode = codePointLengthNode_; } if (this.codePointAtIndexNode == null) { this.codePointAtIndexNode = codePointAtIndexNode_; } if (!BUILTIN_TYPE_TYPE_CACHE_UPDATER.compareAndSet(this, s2_original, s2_)) { continue; } state_0 = state_0 | 0b1000 /* add SpecializationActive[PyObjectLookupAttr.doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */; this.state_0_ = state_0; } else { s2_ = null; } } else { s2_ = null; } } } if (s2_ != null) { return PyObjectLookupAttr.doBuiltinTypeType((VirtualFrame) frameValue, s2_, arg1Value, arg2Value_, INLINED_BUILTIN_TYPE_TYPE_GET_CLASS_, type__2, s2_.readNode_, INLINED_BUILTIN_TYPE_TYPE_VALUE_FOUND_, this.lookupValueGet, INLINED_BUILTIN_TYPE_TYPE_NO_GET_METHOD_, this.invokeValueGet, INLINED_BUILTIN_TYPE_TYPE_ERROR_PROFILE_, this.codePointLengthNode, this.codePointAtIndexNode); } break; } } } { Object metaClassDescr__ = null; Object type__3 = null; if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { while (true) { int count3_ = 0; BuiltinTypeData s3_ = BUILTIN_TYPE_CACHE_UPDATER.getVolatile(this); BuiltinTypeData s3_original = s3_; while (s3_ != null) { { LookupInheritedSlotNode lookupValueGet_1 = this.lookupValueGet; if (lookupValueGet_1 != null) { CallTernaryMethodNode invokeValueGet_1 = this.invokeValueGet; if (invokeValueGet_1 != null) { type__3 = (INLINED_BUILTIN_TYPE_GET_CLASS_.execute(s3_, arg1Value)); if ((PyObjectLookupAttr.isTypeGetAttribute(type__3)) && (PyObjectLookupAttr.hasNoGetAttr(type__3)) && (arg2Value_ == s3_.cachedName_)) { metaClassDescr__ = (s3_.lookupInMetaclassHierachy_.execute(type__3)); if ((PGuards.isNoValue(metaClassDescr__))) { break; } } } } } count3_++; s3_ = null; break; } if (s3_ == null && count3_ < 1) { { s3_ = this.insert(new BuiltinTypeData()); type__3 = (INLINED_BUILTIN_TYPE_GET_CLASS_.execute(s3_, arg1Value)); if ((PyObjectLookupAttr.isTypeGetAttribute(type__3)) && (PyObjectLookupAttr.hasNoGetAttr(type__3))) { LookupAttributeInMRONode lookupInMetaclassHierachy__ = s3_.insert((LookupAttributeInMRONode.create(arg2Value_))); metaClassDescr__ = (lookupInMetaclassHierachy__.execute(type__3)); // assert (arg2Value_ == s3_.cachedName_); if ((PGuards.isNoValue(metaClassDescr__))) { s3_.cachedName_ = (arg2Value_); Objects.requireNonNull(s3_.insert(lookupInMetaclassHierachy__), "Specialization 'doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)' cache 'lookupInMetaclassHierachy' 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'."); s3_.lookupInMetaclassHierachy_ = lookupInMetaclassHierachy__; LookupAttributeInMRONode readNode__1 = s3_.insert((LookupAttributeInMRONode.create(arg2Value_))); Objects.requireNonNull(readNode__1, "Specialization 'doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)' cache 'readNode' 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'."); s3_.readNode_ = readNode__1; LookupInheritedSlotNode lookupValueGet_1; LookupInheritedSlotNode lookupValueGet_1_shared = this.lookupValueGet; if (lookupValueGet_1_shared != null) { lookupValueGet_1 = lookupValueGet_1_shared; } else { lookupValueGet_1 = s3_.insert((LookupInheritedSlotNode.create(SpecialMethodSlot.Get))); if (lookupValueGet_1 == null) { throw new IllegalStateException("Specialization 'doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)' contains a shared cache with name 'lookupValueGet' 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.lookupValueGet == null) { this.lookupValueGet = lookupValueGet_1; } CallTernaryMethodNode invokeValueGet_1; CallTernaryMethodNode invokeValueGet_1_shared = this.invokeValueGet; if (invokeValueGet_1_shared != null) { invokeValueGet_1 = invokeValueGet_1_shared; } else { invokeValueGet_1 = s3_.insert((CallTernaryMethodNode.create())); if (invokeValueGet_1 == null) { throw new IllegalStateException("Specialization 'doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)' contains a shared cache with name 'invokeValueGet' 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.invokeValueGet == null) { this.invokeValueGet = invokeValueGet_1; } if (!BUILTIN_TYPE_CACHE_UPDATER.compareAndSet(this, s3_original, s3_)) { continue; } this.builtinTypeType_cache = null; state_0 = state_0 & 0xfffffff7 /* remove SpecializationActive[PyObjectLookupAttr.doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */; state_0 = state_0 | 0b10000 /* add SpecializationActive[PyObjectLookupAttr.doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)] */; this.state_0_ = state_0; } else { s3_ = null; } } else { s3_ = null; } } } if (s3_ != null) { return PyObjectLookupAttr.doBuiltinType((VirtualFrame) frameValue, s3_, arg1Value, arg2Value_, s3_.cachedName_, INLINED_BUILTIN_TYPE_GET_CLASS_, type__3, s3_.lookupInMetaclassHierachy_, metaClassDescr__, s3_.readNode_, INLINED_BUILTIN_TYPE_VALUE_FOUND_, this.lookupValueGet, INLINED_BUILTIN_TYPE_NO_GET_METHOD_, this.invokeValueGet, INLINED_BUILTIN_TYPE_ERROR_PROFILE_); } break; } } } } GetDynamicAttrData s4_ = this.insert(new GetDynamicAttrData()); LookupSpecialMethodSlotNode lookupGetattribute__ = s4_.insert((LookupSpecialMethodSlotNode.create(SpecialMethodSlot.GetAttribute))); Objects.requireNonNull(lookupGetattribute__, "Specialization 'getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' cache 'lookupGetattribute' 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'."); s4_.lookupGetattribute_ = lookupGetattribute__; LookupSpecialMethodSlotNode lookupGetattr__ = s4_.insert((LookupSpecialMethodSlotNode.create(SpecialMethodSlot.GetAttr))); Objects.requireNonNull(lookupGetattr__, "Specialization 'getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' cache 'lookupGetattr' 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'."); s4_.lookupGetattr_ = lookupGetattr__; CallBinaryMethodNode callGetattribute__ = s4_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callGetattribute__, "Specialization 'getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' cache 'callGetattribute' 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'."); s4_.callGetattribute_ = callGetattribute__; CallBinaryMethodNode callGetattr__1 = s4_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callGetattr__1, "Specialization 'getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' cache 'callGetattr' 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'."); s4_.callGetattr_ = callGetattr__1; CodePointLengthNode codePointLengthNode_1; CodePointLengthNode codePointLengthNode_1_shared = this.codePointLengthNode; if (codePointLengthNode_1_shared != null) { codePointLengthNode_1 = codePointLengthNode_1_shared; } else { codePointLengthNode_1 = s4_.insert((CodePointLengthNode.create())); if (codePointLengthNode_1 == null) { throw new IllegalStateException("Specialization 'getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' contains a shared cache with name 'codePointLengthNode' 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.codePointLengthNode == null) { this.codePointLengthNode = codePointLengthNode_1; } CodePointAtIndexNode codePointAtIndexNode_1; CodePointAtIndexNode codePointAtIndexNode_1_shared = this.codePointAtIndexNode; if (codePointAtIndexNode_1_shared != null) { codePointAtIndexNode_1 = codePointAtIndexNode_1_shared; } else { codePointAtIndexNode_1 = s4_.insert((CodePointAtIndexNode.create())); if (codePointAtIndexNode_1 == null) { throw new IllegalStateException("Specialization 'getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' contains a shared cache with name 'codePointAtIndexNode' 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.codePointAtIndexNode == null) { this.codePointAtIndexNode = codePointAtIndexNode_1; } VarHandle.storeStoreFence(); this.getDynamicAttr_cache = s4_; this.builtinObject_cache = null; this.builtinModule_cache = null; this.builtinTypeType_cache = null; this.builtinType_cache = null; state_0 = state_0 & 0xffffffe2 /* remove SpecializationActive[PyObjectLookupAttr.doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)], SpecializationActive[PyObjectLookupAttr.doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)], SpecializationActive[PyObjectLookupAttr.doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)], SpecializationActive[PyObjectLookupAttr.doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)] */; state_0 = state_0 | 0b10 /* add SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */; this.state_0_ = state_0; return PyObjectLookupAttr.getDynamicAttr(frameValue, s4_, arg1Value, arg2Value, INLINED_GET_DYNAMIC_ATTR_GET_CLASS_, lookupGetattribute__, lookupGetattr__, callGetattribute__, callGetattr__1, INLINED_GET_DYNAMIC_ATTR_ERROR_PROFILE_, codePointLengthNode_1, codePointAtIndexNode_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 */) { BuiltinObjectData s0_ = this.builtinObject_cache; if ((s0_ == null || s0_.next_ == null)) { return NodeCost.MONOMORPHIC; } } } return NodeCost.POLYMORPHIC; } @NeverDefault public static PyObjectLookupAttr create() { return new PyObjectLookupAttrNodeGen(); } @NeverDefault public static PyObjectLookupAttr getUncached() { return PyObjectLookupAttrNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#readNode} *
  • {@link Inlined#lookupValueGet} *
  • {@link Inlined#invokeValueGet} *
  • {@link Inlined#codePointLengthNode} *
  • {@link Inlined#codePointAtIndexNode} *
  • {@link Inlined#builtinObject_cache} *
  • {@link Inlined#builtinModule_cache} *
  • {@link Inlined#builtinTypeType_cache} *
  • {@link Inlined#builtinType_cache} *
  • {@link Inlined#getDynamicAttr_cache} *
*/ @NeverDefault public static PyObjectLookupAttr inline(@RequiredField(bits = 5, value = StateField.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)@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 PyObjectLookupAttrNodeGen.Inlined(target); } @GeneratedBy(PyObjectLookupAttr.class) @DenyReplace private static final class Inlined extends PyObjectLookupAttr { /** * State Info:
         *   0: SpecializationActive {@link PyObjectLookupAttr#doBuiltinObject}
         *   1: SpecializationActive {@link PyObjectLookupAttr#getDynamicAttr}
         *   2: SpecializationActive {@link PyObjectLookupAttr#doBuiltinModule}
         *   3: SpecializationActive {@link PyObjectLookupAttr#doBuiltinTypeType}
         *   4: SpecializationActive {@link PyObjectLookupAttr#doBuiltinType}
         * 
*/ private final StateField state_0_; private final ReferenceField readNode; private final ReferenceField lookupValueGet; private final ReferenceField invokeValueGet; private final ReferenceField codePointLengthNode; private final ReferenceField codePointAtIndexNode; private final ReferenceField builtinObject_cache; private final ReferenceField builtinModule_cache; private final ReferenceField builtinTypeType_cache; private final ReferenceField builtinType_cache; private final ReferenceField getDynamicAttr_cache; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinObject}
         *   Parameter: {@link GetClassNode} getClass
         *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode builtinObject_getClass_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
         *   Parameter: {@link GetClassNode} getClass
         *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode builtinModule_getClass_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
         *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
*/ private final IsBuiltinObjectProfile builtinModule_errorProfile_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
         *   Parameter: {@link InlinedConditionProfile} noValueFound
         *   Inline method: {@link InlinedConditionProfile#inline}
*/ private final InlinedConditionProfile builtinModule_noValueFound_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
         *   Parameter: {@link GetClassNode} getClass
         *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode builtinTypeType_getClass_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
         *   Parameter: {@link InlinedConditionProfile} valueFound
         *   Inline method: {@link InlinedConditionProfile#inline}
*/ private final InlinedConditionProfile builtinTypeType_valueFound_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
         *   Parameter: {@link InlinedConditionProfile} noGetMethod
         *   Inline method: {@link InlinedConditionProfile#inline}
*/ private final InlinedConditionProfile builtinTypeType_noGetMethod_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
         *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
*/ private final IsBuiltinObjectProfile builtinTypeType_errorProfile_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *   Parameter: {@link GetClassNode} getClass
         *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode builtinType_getClass_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *   Parameter: {@link InlinedConditionProfile} valueFound
         *   Inline method: {@link InlinedConditionProfile#inline}
*/ private final InlinedConditionProfile builtinType_valueFound_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *   Parameter: {@link InlinedConditionProfile} noGetMethod
         *   Inline method: {@link InlinedConditionProfile#inline}
*/ private final InlinedConditionProfile builtinType_noGetMethod_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
*/ private final IsBuiltinObjectProfile builtinType_errorProfile_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#getDynamicAttr}
         *   Parameter: {@link GetClassNode} getClass
         *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode getDynamicAttr_getClass_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#getDynamicAttr}
         *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
*/ private final IsBuiltinObjectProfile getDynamicAttr_errorProfile_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(PyObjectLookupAttr.class); this.state_0_ = target.getState(0, 5); this.readNode = target.getReference(1, ReadAttributeFromObjectNode.class); this.lookupValueGet = target.getReference(2, LookupInheritedSlotNode.class); this.invokeValueGet = target.getReference(3, CallTernaryMethodNode.class); this.codePointLengthNode = target.getReference(4, CodePointLengthNode.class); this.codePointAtIndexNode = target.getReference(5, CodePointAtIndexNode.class); this.builtinObject_cache = target.getReference(6, BuiltinObjectData.class); this.builtinModule_cache = target.getReference(7, BuiltinModuleData.class); this.builtinTypeType_cache = target.getReference(8, BuiltinTypeTypeData.class); this.builtinType_cache = target.getReference(9, BuiltinTypeData.class); this.getDynamicAttr_cache = target.getReference(10, GetDynamicAttrData.class); this.builtinObject_getClass_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, BUILTIN_OBJECT__PY_OBJECT_LOOKUP_ATTR_BUILTIN_OBJECT_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(BuiltinObjectData.lookup_(), "builtinObject_getClass__field1_", Node.class))); this.builtinModule_getClass_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, BUILTIN_MODULE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_MODULE_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(BuiltinModuleData.lookup_(), "builtinModule_getClass__field1_", Node.class))); this.builtinModule_errorProfile_ = IsBuiltinObjectProfileNodeGen.inline(InlineTarget.create(IsBuiltinObjectProfile.class, BUILTIN_MODULE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_MODULE_STATE_1_UPDATER.subUpdater(0, 20), ReferenceField.create(BuiltinModuleData.lookup_(), "builtinModule_errorProfile__field1_", Node.class))); this.builtinModule_noValueFound_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, BUILTIN_MODULE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_MODULE_STATE_0_UPDATER.subUpdater(17, 2))); this.builtinTypeType_getClass_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, BUILTIN_TYPE_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_TYPE_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(BuiltinTypeTypeData.lookup_(), "builtinTypeType_getClass__field1_", Node.class))); this.builtinTypeType_valueFound_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, BUILTIN_TYPE_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_TYPE_STATE_0_UPDATER.subUpdater(17, 2))); this.builtinTypeType_noGetMethod_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, BUILTIN_TYPE_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_TYPE_STATE_0_UPDATER.subUpdater(19, 2))); this.builtinTypeType_errorProfile_ = IsBuiltinObjectProfileNodeGen.inline(InlineTarget.create(IsBuiltinObjectProfile.class, BUILTIN_TYPE_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_TYPE_STATE_1_UPDATER.subUpdater(0, 20), ReferenceField.create(BuiltinTypeTypeData.lookup_(), "builtinTypeType_errorProfile__field1_", Node.class))); this.builtinType_getClass_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, BUILTIN_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(BuiltinTypeData.lookup_(), "builtinType_getClass__field1_", Node.class))); this.builtinType_valueFound_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, BUILTIN_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_STATE_0_UPDATER.subUpdater(17, 2))); this.builtinType_noGetMethod_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, BUILTIN_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_STATE_0_UPDATER.subUpdater(19, 2))); this.builtinType_errorProfile_ = IsBuiltinObjectProfileNodeGen.inline(InlineTarget.create(IsBuiltinObjectProfile.class, BUILTIN_TYPE__PY_OBJECT_LOOKUP_ATTR_BUILTIN_TYPE_STATE_1_UPDATER.subUpdater(0, 20), ReferenceField.create(BuiltinTypeData.lookup_(), "builtinType_errorProfile__field1_", Node.class))); this.getDynamicAttr_getClass_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GET_DYNAMIC_ATTR__PY_OBJECT_LOOKUP_ATTR_GET_DYNAMIC_ATTR_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(GetDynamicAttrData.lookup_(), "getDynamicAttr_getClass__field1_", Node.class))); this.getDynamicAttr_errorProfile_ = IsBuiltinObjectProfileNodeGen.inline(InlineTarget.create(IsBuiltinObjectProfile.class, GET_DYNAMIC_ATTR__PY_OBJECT_LOOKUP_ATTR_GET_DYNAMIC_ATTR_STATE_1_UPDATER.subUpdater(0, 20), ReferenceField.create(GetDynamicAttrData.lookup_(), "getDynamicAttr_errorProfile__field1_", Node.class))); } @ExplodeLoop @Override public Object execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value) { int state_0 = this.state_0_.get(arg0Value); if (state_0 != 0 /* is SpecializationActive[PyObjectLookupAttr.doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)] || SpecializationActive[PyObjectLookupAttr.doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)] || SpecializationActive[PyObjectLookupAttr.doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] || SpecializationActive[PyObjectLookupAttr.doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)] || SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { if ((state_0 & 0b11101) != 0 /* is SpecializationActive[PyObjectLookupAttr.doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)] || SpecializationActive[PyObjectLookupAttr.doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)] || SpecializationActive[PyObjectLookupAttr.doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] || SpecializationActive[PyObjectLookupAttr.doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)] */ && arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyObjectLookupAttr.doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)] */) { BuiltinObjectData s0_ = this.builtinObject_cache.get(arg0Value); while (s0_ != null) { { ReadAttributeFromObjectNode readNode_ = this.readNode.get(arg0Value); if (readNode_ != null) { Object type__ = (this.builtinObject_getClass_.execute(s0_, arg1Value)); if ((PyObjectLookupAttr.isObjectGetAttribute(type__)) && (PyObjectLookupAttr.hasNoGetAttr(type__)) && (arg2Value_ == s0_.cachedName_)) { Object descr__ = (s0_.lookupName_.execute(type__)); if ((PGuards.isNoValue(descr__))) { return PyObjectLookupAttr.doBuiltinObject((VirtualFrame) frameValue, s0_, arg1Value, arg2Value_, s0_.cachedName_, this.builtinObject_getClass_, type__, s0_.lookupName_, descr__, readNode_); } } } } s0_ = s0_.next_; } } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyObjectLookupAttr.doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)] */) { BuiltinModuleData s1_ = this.builtinModule_cache.get(arg0Value); if (s1_ != null) { { ReadAttributeFromObjectNode readNode_1 = this.readNode.get(arg0Value); if (readNode_1 != null) { Object type__1 = (this.builtinModule_getClass_.execute(s1_, arg1Value)); if ((PyObjectLookupAttr.isModuleGetAttribute(type__1)) && (PyObjectLookupAttr.hasNoGetAttr(type__1)) && (arg2Value_ == s1_.cachedName_)) { Object descr__1 = (s1_.lookupName_.execute(type__1)); if ((PGuards.isNoValue(descr__1))) { return PyObjectLookupAttr.doBuiltinModule((VirtualFrame) frameValue, s1_, arg1Value, arg2Value_, s1_.cachedName_, this.builtinModule_getClass_, type__1, s1_.lookupName_, descr__1, readNode_1, s1_.readGetattr_, this.builtinModule_errorProfile_, this.builtinModule_noValueFound_, s1_.callGetattr_); } } } } } } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyObjectLookupAttr.doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { BuiltinTypeTypeData s2_ = this.builtinTypeType_cache.get(arg0Value); if (s2_ != null) { { LookupInheritedSlotNode lookupValueGet_ = this.lookupValueGet.get(arg0Value); if (lookupValueGet_ != null) { CallTernaryMethodNode invokeValueGet_ = this.invokeValueGet.get(arg0Value); if (invokeValueGet_ != null) { CodePointLengthNode codePointLengthNode_ = this.codePointLengthNode.get(arg0Value); if (codePointLengthNode_ != null) { CodePointAtIndexNode codePointAtIndexNode_ = this.codePointAtIndexNode.get(arg0Value); if (codePointAtIndexNode_ != null) { Object type__2 = (this.builtinTypeType_getClass_.execute(s2_, arg1Value)); if ((PyObjectLookupAttr.isTypeGetAttribute(type__2)) && (PyObjectLookupAttr.isBuiltinTypeType(type__2)) && (!(PyObjectLookupAttr.isTypeSlot(arg2Value_, codePointLengthNode_, codePointAtIndexNode_)))) { return PyObjectLookupAttr.doBuiltinTypeType((VirtualFrame) frameValue, s2_, arg1Value, arg2Value_, this.builtinTypeType_getClass_, type__2, s2_.readNode_, this.builtinTypeType_valueFound_, lookupValueGet_, this.builtinTypeType_noGetMethod_, invokeValueGet_, this.builtinTypeType_errorProfile_, codePointLengthNode_, codePointAtIndexNode_); } } } } } } } } if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyObjectLookupAttr.doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)] */) { BuiltinTypeData s3_ = this.builtinType_cache.get(arg0Value); if (s3_ != null) { { LookupInheritedSlotNode lookupValueGet_1 = this.lookupValueGet.get(arg0Value); if (lookupValueGet_1 != null) { CallTernaryMethodNode invokeValueGet_1 = this.invokeValueGet.get(arg0Value); if (invokeValueGet_1 != null) { Object type__3 = (this.builtinType_getClass_.execute(s3_, arg1Value)); if ((PyObjectLookupAttr.isTypeGetAttribute(type__3)) && (PyObjectLookupAttr.hasNoGetAttr(type__3)) && (arg2Value_ == s3_.cachedName_)) { Object metaClassDescr__ = (s3_.lookupInMetaclassHierachy_.execute(type__3)); if ((PGuards.isNoValue(metaClassDescr__))) { return PyObjectLookupAttr.doBuiltinType((VirtualFrame) frameValue, s3_, arg1Value, arg2Value_, s3_.cachedName_, this.builtinType_getClass_, type__3, s3_.lookupInMetaclassHierachy_, metaClassDescr__, s3_.readNode_, this.builtinType_valueFound_, lookupValueGet_1, this.builtinType_noGetMethod_, invokeValueGet_1, this.builtinType_errorProfile_); } } } } } } } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { GetDynamicAttrData s4_ = this.getDynamicAttr_cache.get(arg0Value); if (s4_ != null) { { CodePointLengthNode codePointLengthNode_1 = this.codePointLengthNode.get(arg0Value); if (codePointLengthNode_1 != null) { CodePointAtIndexNode codePointAtIndexNode_1 = this.codePointAtIndexNode.get(arg0Value); if (codePointAtIndexNode_1 != null) { return PyObjectLookupAttr.getDynamicAttr(frameValue, s4_, arg1Value, arg2Value, this.getDynamicAttr_getClass_, s4_.lookupGetattribute_, s4_.lookupGetattr_, s4_.callGetattribute_, s4_.callGetattr_, this.getDynamicAttr_errorProfile_, codePointLengthNode_1, codePointAtIndexNode_1); } } } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value, arg2Value); } @SuppressWarnings("unused") private Object executeAndSpecialize(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value) { int state_0 = this.state_0_.get(arg0Value); if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; { Object descr__ = null; Object type__ = null; if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { while (true) { int count0_ = 0; BuiltinObjectData s0_ = this.builtinObject_cache.getVolatile(arg0Value); BuiltinObjectData s0_original = s0_; while (s0_ != null) { { ReadAttributeFromObjectNode readNode_ = this.readNode.get(arg0Value); if (readNode_ != null) { type__ = (this.builtinObject_getClass_.execute(s0_, arg1Value)); if ((PyObjectLookupAttr.isObjectGetAttribute(type__)) && (PyObjectLookupAttr.hasNoGetAttr(type__)) && (arg2Value_ == s0_.cachedName_)) { descr__ = (s0_.lookupName_.execute(type__)); if ((PGuards.isNoValue(descr__))) { break; } } } } count0_++; s0_ = s0_.next_; } if (s0_ == null) { { s0_ = arg0Value.insert(new BuiltinObjectData(s0_original)); type__ = (this.builtinObject_getClass_.execute(s0_, arg1Value)); if ((PyObjectLookupAttr.isObjectGetAttribute(type__)) && (PyObjectLookupAttr.hasNoGetAttr(type__))) { LookupAttributeInMRONode lookupName__ = s0_.insert((LookupAttributeInMRONode.create(arg2Value_))); descr__ = (lookupName__.execute(type__)); // assert (arg2Value_ == s0_.cachedName_); if ((PGuards.isNoValue(descr__)) && count0_ < (3)) { s0_.cachedName_ = (arg2Value_); Objects.requireNonNull(s0_.insert(lookupName__), "Specialization 'doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)' cache 'lookupName' 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'."); s0_.lookupName_ = lookupName__; ReadAttributeFromObjectNode readNode_; ReadAttributeFromObjectNode readNode__shared = this.readNode.get(arg0Value); if (readNode__shared != null) { readNode_ = readNode__shared; } else { readNode_ = s0_.insert((ReadAttributeFromObjectNode.create())); if (readNode_ == null) { throw new IllegalStateException("Specialization 'doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)' contains a shared cache with name 'readNode' 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.readNode.get(arg0Value) == null) { this.readNode.set(arg0Value, readNode_); } if (!this.builtinObject_cache.compareAndSet(arg0Value, s0_original, s0_)) { continue; } state_0 = state_0 | 0b1 /* add SpecializationActive[PyObjectLookupAttr.doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)] */; this.state_0_.set(arg0Value, state_0); } else { s0_ = null; } } else { s0_ = null; } } } if (s0_ != null) { return PyObjectLookupAttr.doBuiltinObject((VirtualFrame) frameValue, s0_, arg1Value, arg2Value_, s0_.cachedName_, this.builtinObject_getClass_, type__, s0_.lookupName_, descr__, this.readNode.get(arg0Value)); } break; } } } { Object descr__1 = null; Object type__1 = null; if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { while (true) { int count1_ = 0; BuiltinModuleData s1_ = this.builtinModule_cache.getVolatile(arg0Value); BuiltinModuleData s1_original = s1_; while (s1_ != null) { { ReadAttributeFromObjectNode readNode_1 = this.readNode.get(arg0Value); if (readNode_1 != null) { type__1 = (this.builtinModule_getClass_.execute(s1_, arg1Value)); if ((PyObjectLookupAttr.isModuleGetAttribute(type__1)) && (PyObjectLookupAttr.hasNoGetAttr(type__1)) && (arg2Value_ == s1_.cachedName_)) { descr__1 = (s1_.lookupName_.execute(type__1)); if ((PGuards.isNoValue(descr__1))) { break; } } } } count1_++; s1_ = null; break; } if (s1_ == null && count1_ < 1) { { s1_ = arg0Value.insert(new BuiltinModuleData()); type__1 = (this.builtinModule_getClass_.execute(s1_, arg1Value)); if ((PyObjectLookupAttr.isModuleGetAttribute(type__1)) && (PyObjectLookupAttr.hasNoGetAttr(type__1))) { LookupAttributeInMRONode lookupName__1 = s1_.insert((LookupAttributeInMRONode.create(arg2Value_))); descr__1 = (lookupName__1.execute(type__1)); // assert (arg2Value_ == s1_.cachedName_); if ((PGuards.isNoValue(descr__1))) { s1_.cachedName_ = (arg2Value_); Objects.requireNonNull(s1_.insert(lookupName__1), "Specialization 'doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)' cache 'lookupName' 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'."); s1_.lookupName_ = lookupName__1; ReadAttributeFromObjectNode readNode_1; ReadAttributeFromObjectNode readNode_1_shared = this.readNode.get(arg0Value); if (readNode_1_shared != null) { readNode_1 = readNode_1_shared; } else { readNode_1 = s1_.insert((ReadAttributeFromObjectNode.create())); if (readNode_1 == null) { throw new IllegalStateException("Specialization 'doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)' contains a shared cache with name 'readNode' 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.readNode.get(arg0Value) == null) { this.readNode.set(arg0Value, readNode_1); } ReadAttributeFromObjectNode readGetattr__ = s1_.insert((ReadAttributeFromObjectNode.create())); Objects.requireNonNull(readGetattr__, "Specialization 'doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)' cache 'readGetattr' 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'."); s1_.readGetattr_ = readGetattr__; CallNode callGetattr__ = s1_.insert((CallNode.create())); Objects.requireNonNull(callGetattr__, "Specialization 'doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)' cache 'callGetattr' 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'."); s1_.callGetattr_ = callGetattr__; if (!this.builtinModule_cache.compareAndSet(arg0Value, s1_original, s1_)) { continue; } state_0 = state_0 | 0b100 /* add SpecializationActive[PyObjectLookupAttr.doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)] */; this.state_0_.set(arg0Value, state_0); } else { s1_ = null; } } else { s1_ = null; } } } if (s1_ != null) { return PyObjectLookupAttr.doBuiltinModule((VirtualFrame) frameValue, s1_, arg1Value, arg2Value_, s1_.cachedName_, this.builtinModule_getClass_, type__1, s1_.lookupName_, descr__1, this.readNode.get(arg0Value), s1_.readGetattr_, this.builtinModule_errorProfile_, this.builtinModule_noValueFound_, s1_.callGetattr_); } break; } } } { Object type__2 = null; if (((state_0 & 0b10010)) == 0 /* is-not SpecializationActive[PyObjectLookupAttr.doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)] && SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { while (true) { int count2_ = 0; BuiltinTypeTypeData s2_ = this.builtinTypeType_cache.getVolatile(arg0Value); BuiltinTypeTypeData s2_original = s2_; while (s2_ != null) { { LookupInheritedSlotNode lookupValueGet_ = this.lookupValueGet.get(arg0Value); if (lookupValueGet_ != null) { CallTernaryMethodNode invokeValueGet_ = this.invokeValueGet.get(arg0Value); if (invokeValueGet_ != null) { CodePointLengthNode codePointLengthNode_ = this.codePointLengthNode.get(arg0Value); if (codePointLengthNode_ != null) { CodePointAtIndexNode codePointAtIndexNode_ = this.codePointAtIndexNode.get(arg0Value); if (codePointAtIndexNode_ != null) { type__2 = (this.builtinTypeType_getClass_.execute(s2_, arg1Value)); if ((PyObjectLookupAttr.isTypeGetAttribute(type__2)) && (PyObjectLookupAttr.isBuiltinTypeType(type__2)) && (!(PyObjectLookupAttr.isTypeSlot(arg2Value_, codePointLengthNode_, codePointAtIndexNode_)))) { break; } } } } } } count2_++; s2_ = null; break; } if (s2_ == null && count2_ < 1) { { s2_ = arg0Value.insert(new BuiltinTypeTypeData()); type__2 = (this.builtinTypeType_getClass_.execute(s2_, arg1Value)); if ((PyObjectLookupAttr.isTypeGetAttribute(type__2)) && (PyObjectLookupAttr.isBuiltinTypeType(type__2))) { CodePointLengthNode codePointLengthNode_; CodePointLengthNode codePointLengthNode__shared = this.codePointLengthNode.get(arg0Value); if (codePointLengthNode__shared != null) { codePointLengthNode_ = codePointLengthNode__shared; } else { codePointLengthNode_ = s2_.insert((CodePointLengthNode.create())); if (codePointLengthNode_ == null) { throw new IllegalStateException("Specialization 'doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' contains a shared cache with name 'codePointLengthNode' 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."); } } CodePointAtIndexNode codePointAtIndexNode_; CodePointAtIndexNode codePointAtIndexNode__shared = this.codePointAtIndexNode.get(arg0Value); if (codePointAtIndexNode__shared != null) { codePointAtIndexNode_ = codePointAtIndexNode__shared; } else { codePointAtIndexNode_ = s2_.insert((CodePointAtIndexNode.create())); if (codePointAtIndexNode_ == null) { throw new IllegalStateException("Specialization 'doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' contains a shared cache with name 'codePointAtIndexNode' 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 ((!(PyObjectLookupAttr.isTypeSlot(arg2Value_, codePointLengthNode_, codePointAtIndexNode_)))) { Dynamic readNode__ = s2_.insert((Dynamic.create())); Objects.requireNonNull(readNode__, "Specialization 'doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' cache 'readNode' 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'."); s2_.readNode_ = readNode__; LookupInheritedSlotNode lookupValueGet_; LookupInheritedSlotNode lookupValueGet__shared = this.lookupValueGet.get(arg0Value); if (lookupValueGet__shared != null) { lookupValueGet_ = lookupValueGet__shared; } else { lookupValueGet_ = s2_.insert((LookupInheritedSlotNode.create(SpecialMethodSlot.Get))); if (lookupValueGet_ == null) { throw new IllegalStateException("Specialization 'doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' contains a shared cache with name 'lookupValueGet' 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.lookupValueGet.get(arg0Value) == null) { this.lookupValueGet.set(arg0Value, lookupValueGet_); } CallTernaryMethodNode invokeValueGet_; CallTernaryMethodNode invokeValueGet__shared = this.invokeValueGet.get(arg0Value); if (invokeValueGet__shared != null) { invokeValueGet_ = invokeValueGet__shared; } else { invokeValueGet_ = s2_.insert((CallTernaryMethodNode.create())); if (invokeValueGet_ == null) { throw new IllegalStateException("Specialization 'doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' contains a shared cache with name 'invokeValueGet' 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.invokeValueGet.get(arg0Value) == null) { this.invokeValueGet.set(arg0Value, invokeValueGet_); } if (this.codePointLengthNode.get(arg0Value) == null) { this.codePointLengthNode.set(arg0Value, codePointLengthNode_); } if (this.codePointAtIndexNode.get(arg0Value) == null) { this.codePointAtIndexNode.set(arg0Value, codePointAtIndexNode_); } if (!this.builtinTypeType_cache.compareAndSet(arg0Value, s2_original, s2_)) { continue; } state_0 = state_0 | 0b1000 /* add SpecializationActive[PyObjectLookupAttr.doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */; this.state_0_.set(arg0Value, state_0); } else { s2_ = null; } } else { s2_ = null; } } } if (s2_ != null) { return PyObjectLookupAttr.doBuiltinTypeType((VirtualFrame) frameValue, s2_, arg1Value, arg2Value_, this.builtinTypeType_getClass_, type__2, s2_.readNode_, this.builtinTypeType_valueFound_, this.lookupValueGet.get(arg0Value), this.builtinTypeType_noGetMethod_, this.invokeValueGet.get(arg0Value), this.builtinTypeType_errorProfile_, this.codePointLengthNode.get(arg0Value), this.codePointAtIndexNode.get(arg0Value)); } break; } } } { Object metaClassDescr__ = null; Object type__3 = null; if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */) { while (true) { int count3_ = 0; BuiltinTypeData s3_ = this.builtinType_cache.getVolatile(arg0Value); BuiltinTypeData s3_original = s3_; while (s3_ != null) { { LookupInheritedSlotNode lookupValueGet_1 = this.lookupValueGet.get(arg0Value); if (lookupValueGet_1 != null) { CallTernaryMethodNode invokeValueGet_1 = this.invokeValueGet.get(arg0Value); if (invokeValueGet_1 != null) { type__3 = (this.builtinType_getClass_.execute(s3_, arg1Value)); if ((PyObjectLookupAttr.isTypeGetAttribute(type__3)) && (PyObjectLookupAttr.hasNoGetAttr(type__3)) && (arg2Value_ == s3_.cachedName_)) { metaClassDescr__ = (s3_.lookupInMetaclassHierachy_.execute(type__3)); if ((PGuards.isNoValue(metaClassDescr__))) { break; } } } } } count3_++; s3_ = null; break; } if (s3_ == null && count3_ < 1) { { s3_ = arg0Value.insert(new BuiltinTypeData()); type__3 = (this.builtinType_getClass_.execute(s3_, arg1Value)); if ((PyObjectLookupAttr.isTypeGetAttribute(type__3)) && (PyObjectLookupAttr.hasNoGetAttr(type__3))) { LookupAttributeInMRONode lookupInMetaclassHierachy__ = s3_.insert((LookupAttributeInMRONode.create(arg2Value_))); metaClassDescr__ = (lookupInMetaclassHierachy__.execute(type__3)); // assert (arg2Value_ == s3_.cachedName_); if ((PGuards.isNoValue(metaClassDescr__))) { s3_.cachedName_ = (arg2Value_); Objects.requireNonNull(s3_.insert(lookupInMetaclassHierachy__), "Specialization 'doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)' cache 'lookupInMetaclassHierachy' 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'."); s3_.lookupInMetaclassHierachy_ = lookupInMetaclassHierachy__; LookupAttributeInMRONode readNode__1 = s3_.insert((LookupAttributeInMRONode.create(arg2Value_))); Objects.requireNonNull(readNode__1, "Specialization 'doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)' cache 'readNode' 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'."); s3_.readNode_ = readNode__1; LookupInheritedSlotNode lookupValueGet_1; LookupInheritedSlotNode lookupValueGet_1_shared = this.lookupValueGet.get(arg0Value); if (lookupValueGet_1_shared != null) { lookupValueGet_1 = lookupValueGet_1_shared; } else { lookupValueGet_1 = s3_.insert((LookupInheritedSlotNode.create(SpecialMethodSlot.Get))); if (lookupValueGet_1 == null) { throw new IllegalStateException("Specialization 'doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)' contains a shared cache with name 'lookupValueGet' 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.lookupValueGet.get(arg0Value) == null) { this.lookupValueGet.set(arg0Value, lookupValueGet_1); } CallTernaryMethodNode invokeValueGet_1; CallTernaryMethodNode invokeValueGet_1_shared = this.invokeValueGet.get(arg0Value); if (invokeValueGet_1_shared != null) { invokeValueGet_1 = invokeValueGet_1_shared; } else { invokeValueGet_1 = s3_.insert((CallTernaryMethodNode.create())); if (invokeValueGet_1 == null) { throw new IllegalStateException("Specialization 'doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)' contains a shared cache with name 'invokeValueGet' 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.invokeValueGet.get(arg0Value) == null) { this.invokeValueGet.set(arg0Value, invokeValueGet_1); } if (!this.builtinType_cache.compareAndSet(arg0Value, s3_original, s3_)) { continue; } this.builtinTypeType_cache.set(arg0Value, null); state_0 = state_0 & 0xfffffff7 /* remove SpecializationActive[PyObjectLookupAttr.doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */; state_0 = state_0 | 0b10000 /* add SpecializationActive[PyObjectLookupAttr.doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)] */; this.state_0_.set(arg0Value, state_0); } else { s3_ = null; } } else { s3_ = null; } } } if (s3_ != null) { return PyObjectLookupAttr.doBuiltinType((VirtualFrame) frameValue, s3_, arg1Value, arg2Value_, s3_.cachedName_, this.builtinType_getClass_, type__3, s3_.lookupInMetaclassHierachy_, metaClassDescr__, s3_.readNode_, this.builtinType_valueFound_, this.lookupValueGet.get(arg0Value), this.builtinType_noGetMethod_, this.invokeValueGet.get(arg0Value), this.builtinType_errorProfile_); } break; } } } } GetDynamicAttrData s4_ = arg0Value.insert(new GetDynamicAttrData()); LookupSpecialMethodSlotNode lookupGetattribute__ = s4_.insert((LookupSpecialMethodSlotNode.create(SpecialMethodSlot.GetAttribute))); Objects.requireNonNull(lookupGetattribute__, "Specialization 'getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' cache 'lookupGetattribute' 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'."); s4_.lookupGetattribute_ = lookupGetattribute__; LookupSpecialMethodSlotNode lookupGetattr__ = s4_.insert((LookupSpecialMethodSlotNode.create(SpecialMethodSlot.GetAttr))); Objects.requireNonNull(lookupGetattr__, "Specialization 'getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' cache 'lookupGetattr' 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'."); s4_.lookupGetattr_ = lookupGetattr__; CallBinaryMethodNode callGetattribute__ = s4_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callGetattribute__, "Specialization 'getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' cache 'callGetattribute' 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'."); s4_.callGetattribute_ = callGetattribute__; CallBinaryMethodNode callGetattr__1 = s4_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callGetattr__1, "Specialization 'getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' cache 'callGetattr' 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'."); s4_.callGetattr_ = callGetattr__1; CodePointLengthNode codePointLengthNode_1; CodePointLengthNode codePointLengthNode_1_shared = this.codePointLengthNode.get(arg0Value); if (codePointLengthNode_1_shared != null) { codePointLengthNode_1 = codePointLengthNode_1_shared; } else { codePointLengthNode_1 = s4_.insert((CodePointLengthNode.create())); if (codePointLengthNode_1 == null) { throw new IllegalStateException("Specialization 'getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' contains a shared cache with name 'codePointLengthNode' 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.codePointLengthNode.get(arg0Value) == null) { this.codePointLengthNode.set(arg0Value, codePointLengthNode_1); } CodePointAtIndexNode codePointAtIndexNode_1; CodePointAtIndexNode codePointAtIndexNode_1_shared = this.codePointAtIndexNode.get(arg0Value); if (codePointAtIndexNode_1_shared != null) { codePointAtIndexNode_1 = codePointAtIndexNode_1_shared; } else { codePointAtIndexNode_1 = s4_.insert((CodePointAtIndexNode.create())); if (codePointAtIndexNode_1 == null) { throw new IllegalStateException("Specialization 'getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)' contains a shared cache with name 'codePointAtIndexNode' 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.codePointAtIndexNode.get(arg0Value) == null) { this.codePointAtIndexNode.set(arg0Value, codePointAtIndexNode_1); } VarHandle.storeStoreFence(); this.getDynamicAttr_cache.set(arg0Value, s4_); this.builtinObject_cache.set(arg0Value, null); this.builtinModule_cache.set(arg0Value, null); this.builtinTypeType_cache.set(arg0Value, null); this.builtinType_cache.set(arg0Value, null); state_0 = state_0 & 0xffffffe2 /* remove SpecializationActive[PyObjectLookupAttr.doBuiltinObject(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode)], SpecializationActive[PyObjectLookupAttr.doBuiltinModule(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, ReadAttributeFromObjectNode, ReadAttributeFromObjectNode, IsBuiltinObjectProfile, InlinedConditionProfile, CallNode)], SpecializationActive[PyObjectLookupAttr.doBuiltinTypeType(VirtualFrame, Node, Object, TruffleString, GetClassNode, Object, Dynamic, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)], SpecializationActive[PyObjectLookupAttr.doBuiltinType(VirtualFrame, Node, Object, TruffleString, TruffleString, GetClassNode, Object, LookupAttributeInMRONode, Object, LookupAttributeInMRONode, InlinedConditionProfile, LookupInheritedSlotNode, InlinedConditionProfile, CallTernaryMethodNode, IsBuiltinObjectProfile)] */; state_0 = state_0 | 0b10 /* add SpecializationActive[PyObjectLookupAttr.getDynamicAttr(Frame, Node, Object, Object, GetClassNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, IsBuiltinObjectProfile, CodePointLengthNode, CodePointAtIndexNode)] */; this.state_0_.set(arg0Value, state_0); return PyObjectLookupAttr.getDynamicAttr(frameValue, s4_, arg1Value, arg2Value, this.getDynamicAttr_getClass_, lookupGetattribute__, lookupGetattr__, callGetattribute__, callGetattr__1, this.getDynamicAttr_errorProfile_, codePointLengthNode_1, codePointAtIndexNode_1); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(PyObjectLookupAttr.class) @DenyReplace private static final class BuiltinObjectData extends Node implements SpecializationDataNode { @Child BuiltinObjectData next_; /** * State Info:
         *   0-16: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#doBuiltinObject}
         *        Parameter: {@link GetClassNode} getClass
         *        Inline method: {@link GetClassNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int builtinObject_state_0_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinObject}
         *   Parameter: {@link TruffleString} cachedName
*/ @CompilationFinal TruffleString cachedName_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinObject}
         *   Parameter: {@link GetClassNode} getClass
         *   Inline method: {@link GetClassNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinObject_getClass__field1_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinObject}
         *   Parameter: {@link LookupAttributeInMRONode} lookupName
*/ @Child LookupAttributeInMRONode lookupName_; BuiltinObjectData(BuiltinObjectData next_) { this.next_ = next_; } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(PyObjectLookupAttr.class) @DenyReplace private static final class BuiltinModuleData extends Node implements SpecializationDataNode { /** * State Info:
         *   0-16: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
         *        Parameter: {@link GetClassNode} getClass
         *        Inline method: {@link GetClassNodeGen#inline}
         *   17-18: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
         *        Parameter: {@link InlinedConditionProfile} noValueFound
         *        Inline method: {@link InlinedConditionProfile#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int builtinModule_state_0_; /** * State Info:
         *   0-19: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
         *        Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *        Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int builtinModule_state_1_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
         *   Parameter: {@link TruffleString} cachedName
*/ @CompilationFinal TruffleString cachedName_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
         *   Parameter: {@link GetClassNode} getClass
         *   Inline method: {@link GetClassNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinModule_getClass__field1_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
         *   Parameter: {@link LookupAttributeInMRONode} lookupName
*/ @Child LookupAttributeInMRONode lookupName_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
         *   Parameter: {@link ReadAttributeFromObjectNode} readGetattr
*/ @Child ReadAttributeFromObjectNode readGetattr_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
         *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinModule_errorProfile__field1_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinModule}
         *   Parameter: {@link CallNode} callGetattr
*/ @Child CallNode callGetattr_; BuiltinModuleData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(PyObjectLookupAttr.class) @DenyReplace private static final class BuiltinTypeTypeData extends Node implements SpecializationDataNode { /** * State Info:
         *   0-16: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
         *        Parameter: {@link GetClassNode} getClass
         *        Inline method: {@link GetClassNodeGen#inline}
         *   17-18: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
         *        Parameter: {@link InlinedConditionProfile} valueFound
         *        Inline method: {@link InlinedConditionProfile#inline}
         *   19-20: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
         *        Parameter: {@link InlinedConditionProfile} noGetMethod
         *        Inline method: {@link InlinedConditionProfile#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int builtinTypeType_state_0_; /** * State Info:
         *   0-19: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
         *        Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *        Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int builtinTypeType_state_1_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
         *   Parameter: {@link GetClassNode} getClass
         *   Inline method: {@link GetClassNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinTypeType_getClass__field1_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
         *   Parameter: {@link Dynamic} readNode
*/ @Child Dynamic readNode_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinTypeType}
         *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinTypeType_errorProfile__field1_; BuiltinTypeTypeData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(PyObjectLookupAttr.class) @DenyReplace private static final class BuiltinTypeData extends Node implements SpecializationDataNode { /** * State Info:
         *   0-16: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *        Parameter: {@link GetClassNode} getClass
         *        Inline method: {@link GetClassNodeGen#inline}
         *   17-18: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *        Parameter: {@link InlinedConditionProfile} valueFound
         *        Inline method: {@link InlinedConditionProfile#inline}
         *   19-20: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *        Parameter: {@link InlinedConditionProfile} noGetMethod
         *        Inline method: {@link InlinedConditionProfile#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int builtinType_state_0_; /** * State Info:
         *   0-19: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *        Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *        Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int builtinType_state_1_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *   Parameter: {@link TruffleString} cachedName
*/ @CompilationFinal TruffleString cachedName_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *   Parameter: {@link GetClassNode} getClass
         *   Inline method: {@link GetClassNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinType_getClass__field1_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *   Parameter: {@link LookupAttributeInMRONode} lookupInMetaclassHierachy
*/ @Child LookupAttributeInMRONode lookupInMetaclassHierachy_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *   Parameter: {@link LookupAttributeInMRONode} readNode
*/ @Child LookupAttributeInMRONode readNode_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#doBuiltinType}
         *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node builtinType_errorProfile__field1_; BuiltinTypeData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(PyObjectLookupAttr.class) @DenyReplace private static final class GetDynamicAttrData extends Node implements SpecializationDataNode { /** * State Info:
         *   0-16: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#getDynamicAttr}
         *        Parameter: {@link GetClassNode} getClass
         *        Inline method: {@link GetClassNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int getDynamicAttr_state_0_; /** * State Info:
         *   0-19: InlinedCache
         *        Specialization: {@link PyObjectLookupAttr#getDynamicAttr}
         *        Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *        Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int getDynamicAttr_state_1_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#getDynamicAttr}
         *   Parameter: {@link GetClassNode} getClass
         *   Inline method: {@link GetClassNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node getDynamicAttr_getClass__field1_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#getDynamicAttr}
         *   Parameter: {@link LookupSpecialMethodSlotNode} lookupGetattribute
*/ @Child LookupSpecialMethodSlotNode lookupGetattribute_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#getDynamicAttr}
         *   Parameter: {@link LookupSpecialMethodSlotNode} lookupGetattr
*/ @Child LookupSpecialMethodSlotNode lookupGetattr_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#getDynamicAttr}
         *   Parameter: {@link CallBinaryMethodNode} callGetattribute
*/ @Child CallBinaryMethodNode callGetattribute_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#getDynamicAttr}
         *   Parameter: {@link CallBinaryMethodNode} callGetattr
*/ @Child CallBinaryMethodNode callGetattr_; /** * Source Info:
         *   Specialization: {@link PyObjectLookupAttr#getDynamicAttr}
         *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node getDynamicAttr_errorProfile__field1_; GetDynamicAttrData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(PyObjectLookupAttr.class) @DenyReplace private static final class Uncached extends PyObjectLookupAttr { @Override public Object execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value) { CompilerDirectives.transferToInterpreterAndInvalidate(); return PyObjectLookupAttr.getDynamicAttr(frameValue, arg0Value, arg1Value, arg2Value, (GetClassNode.getUncached()), (LookupSpecialMethodSlotNode.getUncached(SpecialMethodSlot.GetAttribute)), (LookupSpecialMethodSlotNode.getUncached(SpecialMethodSlot.GetAttr)), (CallBinaryMethodNode.getUncached()), (CallBinaryMethodNode.getUncached()), (IsBuiltinObjectProfile.getUncached()), (CodePointLengthNode.getUncached()), (CodePointAtIndexNode.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy