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

com.oracle.graal.python.nodes.frame.ReadGlobalOrBuiltinNodeGen Maven / Gradle / Ivy

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

import com.oracle.graal.python.builtins.objects.common.HashingStorage;
import com.oracle.graal.python.builtins.objects.common.HashingStorageNodes.HashingStorageGetItem;
import com.oracle.graal.python.builtins.objects.common.HashingStorageNodesFactory.HashingStorageGetItemNodeGen;
import com.oracle.graal.python.builtins.objects.dict.PDict;
import com.oracle.graal.python.builtins.objects.module.PythonModule;
import com.oracle.graal.python.lib.PyObjectGetItem;
import com.oracle.graal.python.lib.PyObjectGetItemNodeGen;
import com.oracle.graal.python.nodes.PGuards;
import com.oracle.graal.python.nodes.attributes.ReadAttributeFromObjectNode;
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.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.dsl.DSLSupport;
import com.oracle.truffle.api.dsl.GeneratedBy;
import com.oracle.truffle.api.dsl.NeverDefault;
import com.oracle.truffle.api.dsl.UnsupportedSpecializationException;
import com.oracle.truffle.api.dsl.DSLSupport.SpecializationDataNode;
import com.oracle.truffle.api.dsl.InlineSupport.InlineTarget;
import com.oracle.truffle.api.dsl.InlineSupport.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.VirtualFrame;
import com.oracle.truffle.api.nodes.DenyReplace;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.NodeCost;
import com.oracle.truffle.api.profiles.InlinedBranchProfile;
import com.oracle.truffle.api.strings.TruffleString;
import com.oracle.truffle.api.utilities.TruffleWeakReference;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import java.lang.invoke.MethodHandles.Lookup;
import java.util.Objects;

/**
 * Debug Info: 
 *   Specialization {@link ReadGlobalOrBuiltinNode#readGlobalCached}
 *     Activation probability: 0.27381
 *     With/without class size: 10/5 bytes
 *   Specialization {@link ReadGlobalOrBuiltinNode#readGlobal}
 *     Activation probability: 0.23095
 *     With/without class size: 8/1 bytes
 *   Specialization {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
 *     Activation probability: 0.18810
 *     With/without class size: 13/30 bytes
 *   Specialization {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCached}
 *     Activation probability: 0.14524
 *     With/without class size: 10/26 bytes
 *   Specialization {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDict}
 *     Activation probability: 0.10238
 *     With/without class size: 8/22 bytes
 *   Specialization {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
 *     Activation probability: 0.05952
 *     With/without class size: 6/24 bytes
 * 
*/ @GeneratedBy(ReadGlobalOrBuiltinNode.class) @SuppressWarnings("javadoc") public final class ReadGlobalOrBuiltinNodeGen extends ReadGlobalOrBuiltinNode { private static final StateField READ_GLOBAL_CACHED__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_CACHED_STATE_0_UPDATER = StateField.create(ReadGlobalCachedData.lookup_(), "readGlobalCached_state_0_"); private static final StateField STATE_0_ReadGlobalOrBuiltinNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_"); private static final StateField READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE_STATE_0_UPDATER = StateField.create(ReadGlobalBuiltinDictCachedUnchangedStorageData.lookup_(), "readGlobalBuiltinDictCachedUnchangedStorage_state_0_"); private static final StateField READ_GLOBAL_BUILTIN_DICT_CACHED__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_BUILTIN_DICT_CACHED_STATE_0_UPDATER = StateField.create(ReadGlobalBuiltinDictCachedData.lookup_(), "readGlobalBuiltinDictCached_state_0_"); private static final StateField READ_GLOBAL_BUILTIN_DICT__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_BUILTIN_DICT_STATE_0_UPDATER = StateField.create(ReadGlobalBuiltinDictData.lookup_(), "readGlobalBuiltinDict_state_0_"); private static final StateField READ_GLOBAL_DICT_GENERIC__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_DICT_GENERIC_STATE_0_UPDATER = StateField.create(ReadGlobalDictGenericData.lookup_(), "readGlobalDictGeneric_state_0_"); static final ReferenceField READ_GLOBAL_CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "readGlobalCached_cache", ReadGlobalCachedData.class); static final ReferenceField READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "readGlobalBuiltinDictCachedUnchangedStorage_cache", ReadGlobalBuiltinDictCachedUnchangedStorageData.class); static final ReferenceField READ_GLOBAL_BUILTIN_DICT_CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "readGlobalBuiltinDictCached_cache", ReadGlobalBuiltinDictCachedData.class); /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalCached}
     *   Parameter: {@link InlinedBranchProfile} wasReadFromModule
     *   Inline method: {@link InlinedBranchProfile#inline}
*/ private static final InlinedBranchProfile INLINED_READ_GLOBAL_CACHED_WAS_READ_FROM_MODULE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, READ_GLOBAL_CACHED__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_CACHED_STATE_0_UPDATER.subUpdater(0, 1))); /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobal}
     *   Parameter: {@link InlinedBranchProfile} wasReadFromModule
     *   Inline method: {@link InlinedBranchProfile#inline}
*/ private static final InlinedBranchProfile INLINED_READ_GLOBAL_WAS_READ_FROM_MODULE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_ReadGlobalOrBuiltinNode_UPDATER.subUpdater(7, 1))); /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
     *   Parameter: {@link InlinedBranchProfile} wasReadFromModule
     *   Inline method: {@link InlinedBranchProfile#inline}
*/ private static final InlinedBranchProfile INLINED_READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE_WAS_READ_FROM_MODULE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE_STATE_0_UPDATER.subUpdater(0, 1))); /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
     *   Parameter: {@link HashingStorageGetItem} getItem
     *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
*/ private static final HashingStorageGetItem INLINED_READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE_GET_ITEM_ = HashingStorageGetItemNodeGen.inline(InlineTarget.create(HashingStorageGetItem.class, READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE_STATE_0_UPDATER.subUpdater(1, 8), ReferenceField.create(ReadGlobalBuiltinDictCachedUnchangedStorageData.lookup_(), "readGlobalBuiltinDictCachedUnchangedStorage_getItem__field1_", Node.class), ReferenceField.create(ReadGlobalBuiltinDictCachedUnchangedStorageData.lookup_(), "readGlobalBuiltinDictCachedUnchangedStorage_getItem__field2_", Node.class), ReferenceField.create(ReadGlobalBuiltinDictCachedUnchangedStorageData.lookup_(), "readGlobalBuiltinDictCachedUnchangedStorage_getItem__field3_", Node.class), ReferenceField.create(ReadGlobalBuiltinDictCachedUnchangedStorageData.lookup_(), "readGlobalBuiltinDictCachedUnchangedStorage_getItem__field4_", Node.class), ReferenceField.create(ReadGlobalBuiltinDictCachedUnchangedStorageData.lookup_(), "readGlobalBuiltinDictCachedUnchangedStorage_getItem__field5_", Node.class))); /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCached}
     *   Parameter: {@link InlinedBranchProfile} wasReadFromModule
     *   Inline method: {@link InlinedBranchProfile#inline}
*/ private static final InlinedBranchProfile INLINED_READ_GLOBAL_BUILTIN_DICT_CACHED_WAS_READ_FROM_MODULE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, READ_GLOBAL_BUILTIN_DICT_CACHED__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_BUILTIN_DICT_CACHED_STATE_0_UPDATER.subUpdater(0, 1))); /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCached}
     *   Parameter: {@link HashingStorageGetItem} getItem
     *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
*/ private static final HashingStorageGetItem INLINED_READ_GLOBAL_BUILTIN_DICT_CACHED_GET_ITEM_ = HashingStorageGetItemNodeGen.inline(InlineTarget.create(HashingStorageGetItem.class, READ_GLOBAL_BUILTIN_DICT_CACHED__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_BUILTIN_DICT_CACHED_STATE_0_UPDATER.subUpdater(1, 8), ReferenceField.create(ReadGlobalBuiltinDictCachedData.lookup_(), "readGlobalBuiltinDictCached_getItem__field1_", Node.class), ReferenceField.create(ReadGlobalBuiltinDictCachedData.lookup_(), "readGlobalBuiltinDictCached_getItem__field2_", Node.class), ReferenceField.create(ReadGlobalBuiltinDictCachedData.lookup_(), "readGlobalBuiltinDictCached_getItem__field3_", Node.class), ReferenceField.create(ReadGlobalBuiltinDictCachedData.lookup_(), "readGlobalBuiltinDictCached_getItem__field4_", Node.class), ReferenceField.create(ReadGlobalBuiltinDictCachedData.lookup_(), "readGlobalBuiltinDictCached_getItem__field5_", Node.class))); /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDict}
     *   Parameter: {@link InlinedBranchProfile} wasReadFromModule
     *   Inline method: {@link InlinedBranchProfile#inline}
*/ private static final InlinedBranchProfile INLINED_READ_GLOBAL_BUILTIN_DICT_WAS_READ_FROM_MODULE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, READ_GLOBAL_BUILTIN_DICT__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_BUILTIN_DICT_STATE_0_UPDATER.subUpdater(0, 1))); /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDict}
     *   Parameter: {@link HashingStorageGetItem} getItem
     *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
*/ private static final HashingStorageGetItem INLINED_READ_GLOBAL_BUILTIN_DICT_GET_ITEM_ = HashingStorageGetItemNodeGen.inline(InlineTarget.create(HashingStorageGetItem.class, READ_GLOBAL_BUILTIN_DICT__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_BUILTIN_DICT_STATE_0_UPDATER.subUpdater(1, 8), ReferenceField.create(ReadGlobalBuiltinDictData.lookup_(), "readGlobalBuiltinDict_getItem__field1_", Node.class), ReferenceField.create(ReadGlobalBuiltinDictData.lookup_(), "readGlobalBuiltinDict_getItem__field2_", Node.class), ReferenceField.create(ReadGlobalBuiltinDictData.lookup_(), "readGlobalBuiltinDict_getItem__field3_", Node.class), ReferenceField.create(ReadGlobalBuiltinDictData.lookup_(), "readGlobalBuiltinDict_getItem__field4_", Node.class), ReferenceField.create(ReadGlobalBuiltinDictData.lookup_(), "readGlobalBuiltinDict_getItem__field5_", Node.class))); /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
     *   Parameter: {@link InlinedBranchProfile} wasReadFromModule
     *   Inline method: {@link InlinedBranchProfile#inline}
*/ private static final InlinedBranchProfile INLINED_READ_GLOBAL_DICT_GENERIC_WAS_READ_FROM_MODULE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, READ_GLOBAL_DICT_GENERIC__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_DICT_GENERIC_STATE_0_UPDATER.subUpdater(0, 1))); /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
     *   Parameter: {@link PyObjectGetItem} getItemNode
     *   Inline method: {@link PyObjectGetItemNodeGen#inline}
*/ private static final PyObjectGetItem INLINED_READ_GLOBAL_DICT_GENERIC_GET_ITEM_NODE_ = PyObjectGetItemNodeGen.inline(InlineTarget.create(PyObjectGetItem.class, READ_GLOBAL_DICT_GENERIC__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_DICT_GENERIC_STATE_0_UPDATER.subUpdater(1, 4), ReferenceField.create(ReadGlobalDictGenericData.lookup_(), "readGlobalDictGeneric_getItemNode__field1_", Node.class), ReferenceField.create(ReadGlobalDictGenericData.lookup_(), "readGlobalDictGeneric_getItemNode__field2_", Node.class), ReferenceField.create(ReadGlobalDictGenericData.lookup_(), "readGlobalDictGeneric_getItemNode__field3_", Node.class), ReferenceField.create(ReadGlobalDictGenericData.lookup_(), "readGlobalDictGeneric_getItemNode__field4_", Node.class))); /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
     *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
     *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
*/ private static final IsBuiltinObjectProfile INLINED_READ_GLOBAL_DICT_GENERIC_ERROR_PROFILE_ = IsBuiltinObjectProfileNodeGen.inline(InlineTarget.create(IsBuiltinObjectProfile.class, READ_GLOBAL_DICT_GENERIC__READ_GLOBAL_OR_BUILTIN_NODE_READ_GLOBAL_DICT_GENERIC_STATE_0_UPDATER.subUpdater(5, 20), ReferenceField.create(ReadGlobalDictGenericData.lookup_(), "readGlobalDictGeneric_errorProfile__field1_", Node.class))); private static final Uncached UNCACHED = new Uncached(); /** * State Info:
     *   0: SpecializationActive {@link ReadGlobalOrBuiltinNode#readGlobalCached}
     *   1: SpecializationActive {@link ReadGlobalOrBuiltinNode#readGlobal}
     *   2: SpecializationActive {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
     *   3: SpecializationExcluded {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
     *   4: SpecializationActive {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCached}
     *   5: SpecializationActive {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDict}
     *   6: SpecializationActive {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
     *   7: InlinedCache
     *        Specialization: {@link ReadGlobalOrBuiltinNode#readGlobal}
     *        Parameter: {@link InlinedBranchProfile} wasReadFromModule
     *        Inline method: {@link InlinedBranchProfile#inline}
     * 
*/ @CompilationFinal @UnsafeAccessedField private int state_0_; /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalCached}
     *   Parameter: {@link ReadBuiltinNode} readFromBuiltinsNode
*/ @Child private ReadBuiltinNode readFromBuiltinsNode; /** * Source Info:
     *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalCached}
     *   Parameter: {@link ReadAttributeFromObjectNode} readFromModuleNode
*/ @Child private ReadAttributeFromObjectNode readFromModule; @UnsafeAccessedField @Child private ReadGlobalCachedData readGlobalCached_cache; @UnsafeAccessedField @Child private ReadGlobalBuiltinDictCachedUnchangedStorageData readGlobalBuiltinDictCachedUnchangedStorage_cache; @UnsafeAccessedField @Child private ReadGlobalBuiltinDictCachedData readGlobalBuiltinDictCached_cache; @Child private ReadGlobalBuiltinDictData readGlobalBuiltinDict_cache; @Child private ReadGlobalDictGenericData readGlobalDictGeneric_cache; private ReadGlobalOrBuiltinNodeGen() { } @Override protected Object executeWithGlobals(VirtualFrame frameValue, Object arg0Value, TruffleString arg1Value) { int state_0 = this.state_0_; if ((state_0 & 0b1110111) != 0 /* is SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalCached(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode, PythonModule)] || SpecializationActive[ReadGlobalOrBuiltinNode.readGlobal(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode)] || SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCachedUnchangedStorage(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorage, HashingStorageGetItem)] || SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCached(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorageGetItem)] || SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDict(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, HashingStorage, HashingStorageGetItem)] || SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalDictGeneric(VirtualFrame, PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PyObjectGetItem, IsBuiltinObjectProfile)] */) { if ((state_0 & 0b11) != 0 /* is SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalCached(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode, PythonModule)] || SpecializationActive[ReadGlobalOrBuiltinNode.readGlobal(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode)] */ && arg0Value instanceof PythonModule) { PythonModule arg0Value_ = (PythonModule) arg0Value; if ((state_0 & 0b1) != 0 /* is SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalCached(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode, PythonModule)] */) { ReadGlobalCachedData s0_ = this.readGlobalCached_cache; if (s0_ != null) { { ReadBuiltinNode readFromBuiltinsNode_ = this.readFromBuiltinsNode; if (readFromBuiltinsNode_ != null) { ReadAttributeFromObjectNode readFromModule_ = this.readFromModule; if (readFromModule_ != null) { PythonModule cachedGlobals__ = (s0_.weakCachedGlobalsGen__.get()); assert DSLSupport.assertIdempotence((isSingleContext())); if ((cachedGlobals__ != null) && (arg0Value_ == cachedGlobals__)) { Node inliningTarget__ = (s0_); return ReadGlobalOrBuiltinNode.readGlobalCached(arg0Value_, arg1Value, inliningTarget__, readFromBuiltinsNode_, INLINED_READ_GLOBAL_CACHED_WAS_READ_FROM_MODULE_, readFromModule_, cachedGlobals__); } } } } } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[ReadGlobalOrBuiltinNode.readGlobal(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode)] */) { { ReadBuiltinNode readFromBuiltinsNode_1 = this.readFromBuiltinsNode; if (readFromBuiltinsNode_1 != null) { ReadAttributeFromObjectNode readFromModule_1 = this.readFromModule; if (readFromModule_1 != null) { Node inliningTarget__1 = (this); return ReadGlobalOrBuiltinNode.readGlobal(arg0Value_, arg1Value, inliningTarget__1, readFromBuiltinsNode_1, INLINED_READ_GLOBAL_WAS_READ_FROM_MODULE_, readFromModule_1); } } } } } if ((state_0 & 0b1110100) != 0 /* is SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCachedUnchangedStorage(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorage, HashingStorageGetItem)] || SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCached(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorageGetItem)] || SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDict(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, HashingStorage, HashingStorageGetItem)] || SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalDictGeneric(VirtualFrame, PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PyObjectGetItem, IsBuiltinObjectProfile)] */ && arg0Value instanceof PDict) { PDict arg0Value_ = (PDict) arg0Value; if ((state_0 & 0b100) != 0 /* is SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCachedUnchangedStorage(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorage, HashingStorageGetItem)] */) { ReadGlobalBuiltinDictCachedUnchangedStorageData s2_ = this.readGlobalBuiltinDictCachedUnchangedStorage_cache; if (s2_ != null) { { ReadBuiltinNode readFromBuiltinsNode_2 = this.readFromBuiltinsNode; if (readFromBuiltinsNode_2 != null) { PDict cachedGlobals__1 = (s2_.weakCachedGlobalsGen__.get()); assert DSLSupport.assertIdempotence((isSingleContext())); if ((cachedGlobals__1 != null) && (arg0Value_ == cachedGlobals__1) && (PGuards.isBuiltinDict(cachedGlobals__1))) { HashingStorage cachedStorage__ = (s2_.weakCachedStorageGen__.get()); if ((cachedStorage__ != null)) { Node inliningTarget__2 = (s2_); try { return ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCachedUnchangedStorage(arg0Value_, arg1Value, inliningTarget__2, readFromBuiltinsNode_2, INLINED_READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE_WAS_READ_FROM_MODULE_, cachedGlobals__1, cachedStorage__, INLINED_READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE_GET_ITEM_); } catch (GlobalsDictStorageChanged ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xfffffffb /* remove SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCachedUnchangedStorage(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorage, HashingStorageGetItem)] */; state_0 = state_0 | 0b1000 /* add SpecializationExcluded */; this.state_0_ = state_0; this.readGlobalBuiltinDictCachedUnchangedStorage_cache = null; return executeAndSpecialize(frameValue, arg0Value_, arg1Value); } } } } } } } if ((state_0 & 0b10000) != 0 /* is SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCached(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorageGetItem)] */) { ReadGlobalBuiltinDictCachedData s3_ = this.readGlobalBuiltinDictCached_cache; if (s3_ != null) { { ReadBuiltinNode readFromBuiltinsNode_3 = this.readFromBuiltinsNode; if (readFromBuiltinsNode_3 != null) { PDict cachedGlobals__2 = (s3_.weakCachedGlobalsGen__.get()); assert DSLSupport.assertIdempotence((isSingleContext())); if ((cachedGlobals__2 != null) && (arg0Value_ == cachedGlobals__2) && (PGuards.isBuiltinDict(cachedGlobals__2))) { Node inliningTarget__3 = (s3_); return ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCached(arg0Value_, arg1Value, inliningTarget__3, readFromBuiltinsNode_3, INLINED_READ_GLOBAL_BUILTIN_DICT_CACHED_WAS_READ_FROM_MODULE_, cachedGlobals__2, INLINED_READ_GLOBAL_BUILTIN_DICT_CACHED_GET_ITEM_); } } } } } if ((state_0 & 0b100000) != 0 /* is SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDict(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, HashingStorage, HashingStorageGetItem)] */) { ReadGlobalBuiltinDictData s4_ = this.readGlobalBuiltinDict_cache; if (s4_ != null) { { ReadBuiltinNode readFromBuiltinsNode_4 = this.readFromBuiltinsNode; if (readFromBuiltinsNode_4 != null) { if ((PGuards.isBuiltinDict(arg0Value_))) { Node inliningTarget__4 = (s4_); HashingStorage storage__ = (arg0Value_.getDictStorage()); return ReadGlobalOrBuiltinNode.readGlobalBuiltinDict(arg0Value_, arg1Value, inliningTarget__4, readFromBuiltinsNode_4, INLINED_READ_GLOBAL_BUILTIN_DICT_WAS_READ_FROM_MODULE_, storage__, INLINED_READ_GLOBAL_BUILTIN_DICT_GET_ITEM_); } } } } } if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalDictGeneric(VirtualFrame, PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PyObjectGetItem, IsBuiltinObjectProfile)] */) { ReadGlobalDictGenericData s5_ = this.readGlobalDictGeneric_cache; if (s5_ != null) { { ReadBuiltinNode readFromBuiltinsNode_5 = this.readFromBuiltinsNode; if (readFromBuiltinsNode_5 != null) { Node inliningTarget__5 = (s5_); return ReadGlobalOrBuiltinNode.readGlobalDictGeneric(frameValue, arg0Value_, arg1Value, inliningTarget__5, readFromBuiltinsNode_5, INLINED_READ_GLOBAL_DICT_GENERIC_WAS_READ_FROM_MODULE_, INLINED_READ_GLOBAL_DICT_GENERIC_GET_ITEM_NODE_, INLINED_READ_GLOBAL_DICT_GENERIC_ERROR_PROFILE_); } } } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value); } private Object executeAndSpecialize(VirtualFrame frameValue, Object arg0Value, TruffleString arg1Value) { int state_0 = this.state_0_; if (arg0Value instanceof PythonModule) { PythonModule arg0Value_ = (PythonModule) arg0Value; { PythonModule cachedGlobals__ = null; Node inliningTarget__ = null; if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[ReadGlobalOrBuiltinNode.readGlobal(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode)] */) { while (true) { int count0_ = 0; ReadGlobalCachedData s0_ = READ_GLOBAL_CACHED_CACHE_UPDATER.getVolatile(this); ReadGlobalCachedData s0_original = s0_; while (s0_ != null) { { ReadBuiltinNode readFromBuiltinsNode_ = this.readFromBuiltinsNode; if (readFromBuiltinsNode_ != null) { ReadAttributeFromObjectNode readFromModule_ = this.readFromModule; if (readFromModule_ != null) { cachedGlobals__ = (s0_.weakCachedGlobalsGen__.get()); assert DSLSupport.assertIdempotence((isSingleContext())); if ((cachedGlobals__ != null) && (arg0Value_ == cachedGlobals__)) { inliningTarget__ = (s0_); break; } } } } count0_++; s0_ = null; break; } if (s0_ == null && count0_ < 1) { if ((isSingleContext())) { TruffleWeakReference weakCachedGlobalsGen___ = (new TruffleWeakReference<>(arg0Value_)); cachedGlobals__ = (weakCachedGlobalsGen___.get()); if ((cachedGlobals__ != null) && (arg0Value_ == cachedGlobals__)) { s0_ = this.insert(new ReadGlobalCachedData()); s0_.weakCachedGlobalsGen__ = weakCachedGlobalsGen___; inliningTarget__ = (s0_); ReadBuiltinNode readFromBuiltinsNode_; ReadBuiltinNode readFromBuiltinsNode__shared = this.readFromBuiltinsNode; if (readFromBuiltinsNode__shared != null) { readFromBuiltinsNode_ = readFromBuiltinsNode__shared; } else { readFromBuiltinsNode_ = s0_.insert((ReadBuiltinNodeGen.create())); if (readFromBuiltinsNode_ == null) { throw new IllegalStateException("Specialization 'readGlobalCached(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode, PythonModule)' contains a shared cache with name 'readFromBuiltinsNode' 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.readFromBuiltinsNode == null) { this.readFromBuiltinsNode = readFromBuiltinsNode_; } ReadAttributeFromObjectNode readFromModule_; ReadAttributeFromObjectNode readFromModule__shared = this.readFromModule; if (readFromModule__shared != null) { readFromModule_ = readFromModule__shared; } else { readFromModule_ = s0_.insert((ReadAttributeFromObjectNode.create())); if (readFromModule_ == null) { throw new IllegalStateException("Specialization 'readGlobalCached(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode, PythonModule)' contains a shared cache with name 'readFromModuleNode' 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.readFromModule == null) { this.readFromModule = readFromModule_; } if (!READ_GLOBAL_CACHED_CACHE_UPDATER.compareAndSet(this, s0_original, s0_)) { continue; } state_0 = state_0 | 0b1 /* add SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalCached(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode, PythonModule)] */; this.state_0_ = state_0; } } } if (s0_ != null) { return ReadGlobalOrBuiltinNode.readGlobalCached(arg0Value_, arg1Value, inliningTarget__, this.readFromBuiltinsNode, INLINED_READ_GLOBAL_CACHED_WAS_READ_FROM_MODULE_, this.readFromModule, cachedGlobals__); } break; } } } { Node inliningTarget__1 = null; inliningTarget__1 = (this); ReadBuiltinNode readFromBuiltinsNode_1; ReadBuiltinNode readFromBuiltinsNode_1_shared = this.readFromBuiltinsNode; if (readFromBuiltinsNode_1_shared != null) { readFromBuiltinsNode_1 = readFromBuiltinsNode_1_shared; } else { readFromBuiltinsNode_1 = this.insert((ReadBuiltinNodeGen.create())); if (readFromBuiltinsNode_1 == null) { throw new IllegalStateException("Specialization 'readGlobal(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode)' contains a shared cache with name 'readFromBuiltinsNode' 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.readFromBuiltinsNode == null) { VarHandle.storeStoreFence(); this.readFromBuiltinsNode = readFromBuiltinsNode_1; } ReadAttributeFromObjectNode readFromModule_1; ReadAttributeFromObjectNode readFromModule_1_shared = this.readFromModule; if (readFromModule_1_shared != null) { readFromModule_1 = readFromModule_1_shared; } else { readFromModule_1 = this.insert((ReadAttributeFromObjectNode.create())); if (readFromModule_1 == null) { throw new IllegalStateException("Specialization 'readGlobal(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode)' contains a shared cache with name 'readFromModuleNode' 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.readFromModule == null) { VarHandle.storeStoreFence(); this.readFromModule = readFromModule_1; } this.readGlobalCached_cache = null; state_0 = state_0 & 0xfffffffe /* remove SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalCached(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode, PythonModule)] */; state_0 = state_0 | 0b10 /* add SpecializationActive[ReadGlobalOrBuiltinNode.readGlobal(PythonModule, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, ReadAttributeFromObjectNode)] */; this.state_0_ = state_0; return ReadGlobalOrBuiltinNode.readGlobal(arg0Value_, arg1Value, inliningTarget__1, readFromBuiltinsNode_1, INLINED_READ_GLOBAL_WAS_READ_FROM_MODULE_, readFromModule_1); } } if (arg0Value instanceof PDict) { PDict arg0Value_ = (PDict) arg0Value; { HashingStorage cachedStorage__ = null; PDict cachedGlobals__1 = null; Node inliningTarget__2 = null; if (((state_0 & 0b110000)) == 0 /* is-not SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCached(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorageGetItem)] && SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDict(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, HashingStorage, HashingStorageGetItem)] */ && ((state_0 & 0b1000)) == 0 /* is-not SpecializationExcluded */) { while (true) { int count2_ = 0; ReadGlobalBuiltinDictCachedUnchangedStorageData s2_ = READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE_CACHE_UPDATER.getVolatile(this); ReadGlobalBuiltinDictCachedUnchangedStorageData s2_original = s2_; while (s2_ != null) { { ReadBuiltinNode readFromBuiltinsNode_2 = this.readFromBuiltinsNode; if (readFromBuiltinsNode_2 != null) { cachedGlobals__1 = (s2_.weakCachedGlobalsGen__.get()); assert DSLSupport.assertIdempotence((isSingleContext())); if ((cachedGlobals__1 != null) && (arg0Value_ == cachedGlobals__1) && (PGuards.isBuiltinDict(cachedGlobals__1))) { cachedStorage__ = (s2_.weakCachedStorageGen__.get()); if ((cachedStorage__ != null)) { inliningTarget__2 = (s2_); break; } } } } count2_++; s2_ = null; break; } if (s2_ == null && count2_ < 1) { if ((isSingleContext())) { TruffleWeakReference weakCachedGlobalsGen___1 = (new TruffleWeakReference<>(arg0Value_)); cachedGlobals__1 = (weakCachedGlobalsGen___1.get()); if ((cachedGlobals__1 != null) && (arg0Value_ == cachedGlobals__1) && (PGuards.isBuiltinDict(cachedGlobals__1))) { TruffleWeakReference weakCachedStorageGen___ = (new TruffleWeakReference<>(arg0Value_.getDictStorage())); cachedStorage__ = (weakCachedStorageGen___.get()); if ((cachedStorage__ != null)) { s2_ = this.insert(new ReadGlobalBuiltinDictCachedUnchangedStorageData()); s2_.weakCachedStorageGen__ = weakCachedStorageGen___; s2_.weakCachedGlobalsGen__ = weakCachedGlobalsGen___1; inliningTarget__2 = (s2_); ReadBuiltinNode readFromBuiltinsNode_2; ReadBuiltinNode readFromBuiltinsNode_2_shared = this.readFromBuiltinsNode; if (readFromBuiltinsNode_2_shared != null) { readFromBuiltinsNode_2 = readFromBuiltinsNode_2_shared; } else { readFromBuiltinsNode_2 = s2_.insert((ReadBuiltinNodeGen.create())); if (readFromBuiltinsNode_2 == null) { throw new IllegalStateException("Specialization 'readGlobalBuiltinDictCachedUnchangedStorage(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorage, HashingStorageGetItem)' contains a shared cache with name 'readFromBuiltinsNode' 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.readFromBuiltinsNode == null) { this.readFromBuiltinsNode = readFromBuiltinsNode_2; } if (!READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE_CACHE_UPDATER.compareAndSet(this, s2_original, s2_)) { continue; } state_0 = state_0 | 0b100 /* add SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCachedUnchangedStorage(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorage, HashingStorageGetItem)] */; this.state_0_ = state_0; } } } } if (s2_ != null) { try { return ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCachedUnchangedStorage(arg0Value_, arg1Value, inliningTarget__2, this.readFromBuiltinsNode, INLINED_READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE_WAS_READ_FROM_MODULE_, cachedGlobals__1, cachedStorage__, INLINED_READ_GLOBAL_BUILTIN_DICT_CACHED_UNCHANGED_STORAGE_GET_ITEM_); } catch (GlobalsDictStorageChanged ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xfffffffb /* remove SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCachedUnchangedStorage(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorage, HashingStorageGetItem)] */; state_0 = state_0 | 0b1000 /* add SpecializationExcluded */; this.state_0_ = state_0; this.readGlobalBuiltinDictCachedUnchangedStorage_cache = null; return executeAndSpecialize(frameValue, arg0Value_, arg1Value); } } break; } } } { PDict cachedGlobals__2 = null; Node inliningTarget__3 = null; if (((state_0 & 0b100000)) == 0 /* is-not SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDict(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, HashingStorage, HashingStorageGetItem)] */) { while (true) { int count3_ = 0; ReadGlobalBuiltinDictCachedData s3_ = READ_GLOBAL_BUILTIN_DICT_CACHED_CACHE_UPDATER.getVolatile(this); ReadGlobalBuiltinDictCachedData s3_original = s3_; while (s3_ != null) { { ReadBuiltinNode readFromBuiltinsNode_3 = this.readFromBuiltinsNode; if (readFromBuiltinsNode_3 != null) { cachedGlobals__2 = (s3_.weakCachedGlobalsGen__.get()); assert DSLSupport.assertIdempotence((isSingleContext())); if ((cachedGlobals__2 != null) && (arg0Value_ == cachedGlobals__2) && (PGuards.isBuiltinDict(cachedGlobals__2))) { inliningTarget__3 = (s3_); break; } } } count3_++; s3_ = null; break; } if (s3_ == null && count3_ < 1) { if ((isSingleContext())) { TruffleWeakReference weakCachedGlobalsGen___2 = (new TruffleWeakReference<>(arg0Value_)); cachedGlobals__2 = (weakCachedGlobalsGen___2.get()); if ((cachedGlobals__2 != null) && (arg0Value_ == cachedGlobals__2) && (PGuards.isBuiltinDict(cachedGlobals__2))) { s3_ = this.insert(new ReadGlobalBuiltinDictCachedData()); s3_.weakCachedGlobalsGen__ = weakCachedGlobalsGen___2; inliningTarget__3 = (s3_); ReadBuiltinNode readFromBuiltinsNode_3; ReadBuiltinNode readFromBuiltinsNode_3_shared = this.readFromBuiltinsNode; if (readFromBuiltinsNode_3_shared != null) { readFromBuiltinsNode_3 = readFromBuiltinsNode_3_shared; } else { readFromBuiltinsNode_3 = s3_.insert((ReadBuiltinNodeGen.create())); if (readFromBuiltinsNode_3 == null) { throw new IllegalStateException("Specialization 'readGlobalBuiltinDictCached(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorageGetItem)' contains a shared cache with name 'readFromBuiltinsNode' 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.readFromBuiltinsNode == null) { this.readFromBuiltinsNode = readFromBuiltinsNode_3; } if (!READ_GLOBAL_BUILTIN_DICT_CACHED_CACHE_UPDATER.compareAndSet(this, s3_original, s3_)) { continue; } this.readGlobalBuiltinDictCachedUnchangedStorage_cache = null; state_0 = state_0 & 0xfffffffb /* remove SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCachedUnchangedStorage(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorage, HashingStorageGetItem)] */; state_0 = state_0 | 0b10000 /* add SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCached(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorageGetItem)] */; this.state_0_ = state_0; } } } if (s3_ != null) { return ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCached(arg0Value_, arg1Value, inliningTarget__3, this.readFromBuiltinsNode, INLINED_READ_GLOBAL_BUILTIN_DICT_CACHED_WAS_READ_FROM_MODULE_, cachedGlobals__2, INLINED_READ_GLOBAL_BUILTIN_DICT_CACHED_GET_ITEM_); } break; } } } { HashingStorage storage__ = null; Node inliningTarget__4 = null; if ((PGuards.isBuiltinDict(arg0Value_))) { ReadGlobalBuiltinDictData s4_ = this.insert(new ReadGlobalBuiltinDictData()); inliningTarget__4 = (s4_); ReadBuiltinNode readFromBuiltinsNode_4; ReadBuiltinNode readFromBuiltinsNode_4_shared = this.readFromBuiltinsNode; if (readFromBuiltinsNode_4_shared != null) { readFromBuiltinsNode_4 = readFromBuiltinsNode_4_shared; } else { readFromBuiltinsNode_4 = s4_.insert((ReadBuiltinNodeGen.create())); if (readFromBuiltinsNode_4 == null) { throw new IllegalStateException("Specialization 'readGlobalBuiltinDict(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, HashingStorage, HashingStorageGetItem)' contains a shared cache with name 'readFromBuiltinsNode' 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.readFromBuiltinsNode == null) { this.readFromBuiltinsNode = readFromBuiltinsNode_4; } storage__ = (arg0Value_.getDictStorage()); VarHandle.storeStoreFence(); this.readGlobalBuiltinDict_cache = s4_; this.readGlobalBuiltinDictCachedUnchangedStorage_cache = null; this.readGlobalBuiltinDictCached_cache = null; state_0 = state_0 & 0xffffffeb /* remove SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCachedUnchangedStorage(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorage, HashingStorageGetItem)], SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDictCached(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PDict, HashingStorageGetItem)] */; state_0 = state_0 | 0b100000 /* add SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalBuiltinDict(PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, HashingStorage, HashingStorageGetItem)] */; this.state_0_ = state_0; return ReadGlobalOrBuiltinNode.readGlobalBuiltinDict(arg0Value_, arg1Value, inliningTarget__4, readFromBuiltinsNode_4, INLINED_READ_GLOBAL_BUILTIN_DICT_WAS_READ_FROM_MODULE_, storage__, INLINED_READ_GLOBAL_BUILTIN_DICT_GET_ITEM_); } } { Node inliningTarget__5 = null; ReadGlobalDictGenericData s5_ = this.insert(new ReadGlobalDictGenericData()); inliningTarget__5 = (s5_); ReadBuiltinNode readFromBuiltinsNode_5; ReadBuiltinNode readFromBuiltinsNode_5_shared = this.readFromBuiltinsNode; if (readFromBuiltinsNode_5_shared != null) { readFromBuiltinsNode_5 = readFromBuiltinsNode_5_shared; } else { readFromBuiltinsNode_5 = s5_.insert((ReadBuiltinNodeGen.create())); if (readFromBuiltinsNode_5 == null) { throw new IllegalStateException("Specialization 'readGlobalDictGeneric(VirtualFrame, PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PyObjectGetItem, IsBuiltinObjectProfile)' contains a shared cache with name 'readFromBuiltinsNode' 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.readFromBuiltinsNode == null) { this.readFromBuiltinsNode = readFromBuiltinsNode_5; } VarHandle.storeStoreFence(); this.readGlobalDictGeneric_cache = s5_; state_0 = state_0 | 0b1000000 /* add SpecializationActive[ReadGlobalOrBuiltinNode.readGlobalDictGeneric(VirtualFrame, PDict, TruffleString, Node, ReadBuiltinNode, InlinedBranchProfile, PyObjectGetItem, IsBuiltinObjectProfile)] */; this.state_0_ = state_0; return ReadGlobalOrBuiltinNode.readGlobalDictGeneric(frameValue, arg0Value_, arg1Value, inliningTarget__5, readFromBuiltinsNode_5, INLINED_READ_GLOBAL_DICT_GENERIC_WAS_READ_FROM_MODULE_, INLINED_READ_GLOBAL_DICT_GENERIC_GET_ITEM_NODE_, INLINED_READ_GLOBAL_DICT_GENERIC_ERROR_PROFILE_); } } throw new UnsupportedSpecializationException(this, new Node[] {null, null}, arg0Value, arg1Value); } @Override public NodeCost getCost() { int state_0 = this.state_0_; if ((state_0 & 0b1110111) == 0) { return NodeCost.UNINITIALIZED; } else { if (((state_0 & 0b1110111) & ((state_0 & 0b1110111) - 1)) == 0 /* is-single */) { return NodeCost.MONOMORPHIC; } } return NodeCost.POLYMORPHIC; } @NeverDefault public static ReadGlobalOrBuiltinNode create() { return new ReadGlobalOrBuiltinNodeGen(); } @NeverDefault public static ReadGlobalOrBuiltinNode getUncached() { return ReadGlobalOrBuiltinNodeGen.UNCACHED; } @GeneratedBy(ReadGlobalOrBuiltinNode.class) @DenyReplace private static final class ReadGlobalCachedData extends Node implements SpecializationDataNode { /** * State Info:
         *   0: InlinedCache
         *        Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalCached}
         *        Parameter: {@link InlinedBranchProfile} wasReadFromModule
         *        Inline method: {@link InlinedBranchProfile#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int readGlobalCached_state_0_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalCached}
         *   Parameter: {@link TruffleWeakReference} weakCachedGlobalsGen_
*/ @CompilationFinal TruffleWeakReference weakCachedGlobalsGen__; ReadGlobalCachedData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(ReadGlobalOrBuiltinNode.class) @DenyReplace private static final class ReadGlobalBuiltinDictCachedUnchangedStorageData extends Node implements SpecializationDataNode { /** * State Info:
         *   0: InlinedCache
         *        Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
         *        Parameter: {@link InlinedBranchProfile} wasReadFromModule
         *        Inline method: {@link InlinedBranchProfile#inline}
         *   1-8: InlinedCache
         *        Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
         *        Parameter: {@link HashingStorageGetItem} getItem
         *        Inline method: {@link HashingStorageGetItemNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int readGlobalBuiltinDictCachedUnchangedStorage_state_0_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
         *   Parameter: {@link TruffleWeakReference} weakCachedStorageGen_
*/ @CompilationFinal TruffleWeakReference weakCachedStorageGen__; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
         *   Parameter: {@link TruffleWeakReference} weakCachedGlobalsGen_
*/ @CompilationFinal TruffleWeakReference weakCachedGlobalsGen__; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDictCachedUnchangedStorage_getItem__field1_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field2
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDictCachedUnchangedStorage_getItem__field2_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDictCachedUnchangedStorage_getItem__field3_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDictCachedUnchangedStorage_getItem__field4_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCachedUnchangedStorage}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDictCachedUnchangedStorage_getItem__field5_; ReadGlobalBuiltinDictCachedUnchangedStorageData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(ReadGlobalOrBuiltinNode.class) @DenyReplace private static final class ReadGlobalBuiltinDictCachedData extends Node implements SpecializationDataNode { /** * State Info:
         *   0: InlinedCache
         *        Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCached}
         *        Parameter: {@link InlinedBranchProfile} wasReadFromModule
         *        Inline method: {@link InlinedBranchProfile#inline}
         *   1-8: InlinedCache
         *        Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCached}
         *        Parameter: {@link HashingStorageGetItem} getItem
         *        Inline method: {@link HashingStorageGetItemNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int readGlobalBuiltinDictCached_state_0_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCached}
         *   Parameter: {@link TruffleWeakReference} weakCachedGlobalsGen_
*/ @CompilationFinal TruffleWeakReference weakCachedGlobalsGen__; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCached}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDictCached_getItem__field1_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCached}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field2
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDictCached_getItem__field2_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCached}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDictCached_getItem__field3_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCached}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDictCached_getItem__field4_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDictCached}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDictCached_getItem__field5_; ReadGlobalBuiltinDictCachedData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(ReadGlobalOrBuiltinNode.class) @DenyReplace private static final class ReadGlobalBuiltinDictData extends Node implements SpecializationDataNode { /** * State Info:
         *   0: InlinedCache
         *        Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDict}
         *        Parameter: {@link InlinedBranchProfile} wasReadFromModule
         *        Inline method: {@link InlinedBranchProfile#inline}
         *   1-8: InlinedCache
         *        Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDict}
         *        Parameter: {@link HashingStorageGetItem} getItem
         *        Inline method: {@link HashingStorageGetItemNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int readGlobalBuiltinDict_state_0_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDict}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDict_getItem__field1_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDict}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field2
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDict_getItem__field2_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDict}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDict_getItem__field3_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDict}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDict_getItem__field4_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalBuiltinDict}
         *   Parameter: {@link HashingStorageGetItem} getItem
         *   Inline method: {@link HashingStorageGetItemNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalBuiltinDict_getItem__field5_; ReadGlobalBuiltinDictData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(ReadGlobalOrBuiltinNode.class) @DenyReplace private static final class ReadGlobalDictGenericData extends Node implements SpecializationDataNode { /** * State Info:
         *   0: InlinedCache
         *        Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
         *        Parameter: {@link InlinedBranchProfile} wasReadFromModule
         *        Inline method: {@link InlinedBranchProfile#inline}
         *   1-4: InlinedCache
         *        Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
         *        Parameter: {@link PyObjectGetItem} getItemNode
         *        Inline method: {@link PyObjectGetItemNodeGen#inline}
         *   5-24: InlinedCache
         *        Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
         *        Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *        Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int readGlobalDictGeneric_state_0_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
         *   Parameter: {@link PyObjectGetItem} getItemNode
         *   Inline method: {@link PyObjectGetItemNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalDictGeneric_getItemNode__field1_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
         *   Parameter: {@link PyObjectGetItem} getItemNode
         *   Inline method: {@link PyObjectGetItemNodeGen#inline}
         *   Inline field: {@link Node} field2
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalDictGeneric_getItemNode__field2_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
         *   Parameter: {@link PyObjectGetItem} getItemNode
         *   Inline method: {@link PyObjectGetItemNodeGen#inline}
         *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalDictGeneric_getItemNode__field3_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
         *   Parameter: {@link PyObjectGetItem} getItemNode
         *   Inline method: {@link PyObjectGetItemNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalDictGeneric_getItemNode__field4_; /** * Source Info:
         *   Specialization: {@link ReadGlobalOrBuiltinNode#readGlobalDictGeneric}
         *   Parameter: {@link IsBuiltinObjectProfile} errorProfile
         *   Inline method: {@link IsBuiltinObjectProfileNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node readGlobalDictGeneric_errorProfile__field1_; ReadGlobalDictGenericData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(ReadGlobalOrBuiltinNode.class) @DenyReplace private static final class Uncached extends ReadGlobalOrBuiltinNode { @Override protected Object executeWithGlobals(VirtualFrame frameValue, Object arg0Value, TruffleString arg1Value) { CompilerDirectives.transferToInterpreterAndInvalidate(); if (arg0Value instanceof PythonModule) { PythonModule arg0Value_ = (PythonModule) arg0Value; return ReadGlobalOrBuiltinNode.readGlobal(arg0Value_, arg1Value, (this), (ReadBuiltinNodeGen.getUncached()), (InlinedBranchProfile.getUncached()), (ReadAttributeFromObjectNode.getUncached())); } if (arg0Value instanceof PDict) { PDict arg0Value_ = (PDict) arg0Value; if ((PGuards.isBuiltinDict(arg0Value_))) { return ReadGlobalOrBuiltinNode.readGlobalBuiltinDict(arg0Value_, arg1Value, (this), (ReadBuiltinNodeGen.getUncached()), (InlinedBranchProfile.getUncached()), (arg0Value_.getDictStorage()), (HashingStorageGetItemNodeGen.getUncached())); } return ReadGlobalOrBuiltinNode.readGlobalDictGeneric(frameValue, arg0Value_, arg1Value, (this), (ReadBuiltinNodeGen.getUncached()), (InlinedBranchProfile.getUncached()), (PyObjectGetItem.getUncached()), (IsBuiltinObjectProfile.getUncached())); } throw new UnsupportedSpecializationException(this, new Node[] {null, null}, arg0Value, arg1Value); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } /** * Debug Info:
     *   Specialization {@link Lazy#doIt}
     *     Activation probability: 1.00000
     *     With/without class size: 24/4 bytes
     * 
*/ @GeneratedBy(Lazy.class) @SuppressWarnings("javadoc") public static final class LazyNodeGen { private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static Lazy getUncached() { return LazyNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#node_} *
*/ @NeverDefault public static Lazy inline(@RequiredField(bits = 1, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new LazyNodeGen.Inlined(target); } @GeneratedBy(Lazy.class) @DenyReplace private static final class Inlined extends Lazy { /** * State Info:
             *   0: SpecializationActive {@link Lazy#doIt}
             * 
*/ private final StateField state_0_; private final ReferenceField node_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(Lazy.class); this.state_0_ = target.getState(0, 1); this.node_ = target.getReference(1, ReadGlobalOrBuiltinNode.class); } @Override public ReadGlobalOrBuiltinNode execute(Node arg0Value) { int state_0 = this.state_0_.get(arg0Value); if (state_0 != 0 /* is SpecializationActive[ReadGlobalOrBuiltinNode.Lazy.doIt(ReadGlobalOrBuiltinNode)] */) { { ReadGlobalOrBuiltinNode node__ = this.node_.get(arg0Value); if (node__ != null) { return Lazy.doIt(node__); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value); } private ReadGlobalOrBuiltinNode executeAndSpecialize(Node arg0Value) { int state_0 = this.state_0_.get(arg0Value); ReadGlobalOrBuiltinNode node__ = arg0Value.insert((ReadGlobalOrBuiltinNode.create())); Objects.requireNonNull(node__, "Specialization 'doIt(ReadGlobalOrBuiltinNode)' cache 'node' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.node_.set(arg0Value, node__); state_0 = state_0 | 0b1 /* add SpecializationActive[ReadGlobalOrBuiltinNode.Lazy.doIt(ReadGlobalOrBuiltinNode)] */; this.state_0_.set(arg0Value, state_0); return Lazy.doIt(node__); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(Lazy.class) @DenyReplace private static final class Uncached extends Lazy { @TruffleBoundary @Override public ReadGlobalOrBuiltinNode execute(Node arg0Value) { return Lazy.doIt((ReadGlobalOrBuiltinNode.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy