com.oracle.graal.python.nodes.frame.ReadGlobalOrBuiltinNodeGen Maven / Gradle / Ivy
// 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