Skip to content

Commit 46da9bc

Browse files
committed
Share cached nodes in ReadAttributeFromObjectNode.
1 parent 8bffebb commit 46da9bc

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/attributes/ReadAttributeFromObjectNode.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
import com.oracle.graal.python.nodes.object.GetDictIfExistsNode;
5050
import com.oracle.truffle.api.dsl.Bind;
5151
import com.oracle.truffle.api.dsl.Cached;
52-
import com.oracle.truffle.api.dsl.Cached.Exclusive;
52+
import com.oracle.truffle.api.dsl.Cached.Shared;
5353
import com.oracle.truffle.api.dsl.GenerateInline;
5454
import com.oracle.truffle.api.dsl.GenerateUncached;
5555
import com.oracle.truffle.api.dsl.NeverDefault;
@@ -86,10 +86,10 @@ public static ReadAttributeFromObjectNode getUncached() {
8686
@Specialization
8787
static Object readObjectAttribute(PythonObject object, TruffleString key,
8888
@Bind Node inliningTarget,
89-
@Cached InlinedConditionProfile profileHasDict,
90-
@Exclusive @Cached GetDictIfExistsNode getDict,
89+
@Shared @Cached InlinedConditionProfile profileHasDict,
90+
@Shared @Cached GetDictIfExistsNode getDict,
9191
@Cached ReadAttributeFromPythonObjectNode readAttributeFromPythonObjectNode,
92-
@Exclusive @Cached HashingStorageGetItemStringKey getItem) {
92+
@Shared @Cached HashingStorageGetItemStringKey getItem) {
9393
var dict = getDict.execute(object);
9494
if (profileHasDict.profile(inliningTarget, dict == null)) {
9595
return readAttributeFromPythonObjectNode.execute(object, key);
@@ -106,8 +106,8 @@ static Object readObjectAttribute(PythonObject object, TruffleString key,
106106
@Specialization
107107
static Object readNativeObject(PythonAbstractNativeObject object, TruffleString key,
108108
@Bind Node inliningTarget,
109-
@Exclusive @Cached GetDictIfExistsNode getDict,
110-
@Exclusive @Cached HashingStorageGetItemStringKey getItem) {
109+
@Shared @Cached GetDictIfExistsNode getDict,
110+
@Shared @Cached HashingStorageGetItemStringKey getItem) {
111111
PDict dict = getDict.execute(object);
112112
if (dict != null) {
113113
Object result = getItem.execute(inliningTarget, dict.getDictStorage(), key);

0 commit comments

Comments
 (0)