Skip to content

Commit 8e56386

Browse files
msimacektimfel
authored andcommitted
Make ReadSlotByNameNode into inlined node
1 parent 544e9d2 commit 8e56386

File tree

4 files changed

+17
-4
lines changed

4 files changed

+17
-4
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/PyMappingMethodsWrapper.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,15 @@
4545
import com.oracle.graal.python.builtins.objects.type.PythonManagedClass;
4646
import com.oracle.graal.python.runtime.GilNode;
4747
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
48+
import com.oracle.truffle.api.dsl.Bind;
4849
import com.oracle.truffle.api.dsl.Cached;
4950
import com.oracle.truffle.api.dsl.Cached.Exclusive;
5051
import com.oracle.truffle.api.interop.InteropLibrary;
5152
import com.oracle.truffle.api.interop.UnknownIdentifierException;
5253
import com.oracle.truffle.api.interop.UnsupportedMessageException;
5354
import com.oracle.truffle.api.library.ExportLibrary;
5455
import com.oracle.truffle.api.library.ExportMessage;
56+
import com.oracle.truffle.api.nodes.Node;
5557
import com.oracle.truffle.llvm.spi.NativeTypeLibrary;
5658

5759
/**
@@ -88,11 +90,12 @@ protected Object getMembers(@SuppressWarnings("unused") boolean includeInternal)
8890

8991
@ExportMessage
9092
protected Object readMember(String member,
93+
@Bind("$node") Node inliningTarget,
9194
@Cached ReadSlotByNameNode readSlotByNameNode,
9295
@Exclusive @Cached GilNode gil) throws UnknownIdentifierException {
9396
boolean mustRelease = gil.acquire();
9497
try {
95-
Object result = readSlotByNameNode.execute(this, member, SLOTS);
98+
Object result = readSlotByNameNode.execute(inliningTarget, this, member, SLOTS);
9699
if (result == null) {
97100
throw UnknownIdentifierException.create(member);
98101
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/PyNumberMethodsWrapper.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
import com.oracle.graal.python.nodes.SpecialMethodNames;
8080
import com.oracle.graal.python.runtime.GilNode;
8181
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
82+
import com.oracle.truffle.api.dsl.Bind;
8283
import com.oracle.truffle.api.dsl.Cached;
8384
import com.oracle.truffle.api.dsl.Cached.Exclusive;
8485
import com.oracle.truffle.api.dsl.ImportStatic;
@@ -87,6 +88,7 @@
8788
import com.oracle.truffle.api.interop.UnsupportedMessageException;
8889
import com.oracle.truffle.api.library.ExportLibrary;
8990
import com.oracle.truffle.api.library.ExportMessage;
91+
import com.oracle.truffle.api.nodes.Node;
9092
import com.oracle.truffle.llvm.spi.NativeTypeLibrary;
9193

9294
/**
@@ -161,11 +163,12 @@ protected Object getMembers(@SuppressWarnings("unused") boolean includeInternal)
161163

162164
@ExportMessage
163165
protected Object readMember(String member,
166+
@Bind("$node") Node inliningTarget,
164167
@Cached ReadSlotByNameNode readSlotByNameNode,
165168
@Exclusive @Cached GilNode gil) throws UnknownIdentifierException {
166169
boolean mustRelease = gil.acquire();
167170
try {
168-
Object result = readSlotByNameNode.execute(this, member, SLOTS);
171+
Object result = readSlotByNameNode.execute(inliningTarget, this, member, SLOTS);
169172
if (result == null) {
170173
throw UnknownIdentifierException.create(member);
171174
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/PySequenceMethodsWrapper.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import com.oracle.graal.python.nodes.SpecialMethodNames;
5151
import com.oracle.graal.python.runtime.GilNode;
5252
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
53+
import com.oracle.truffle.api.dsl.Bind;
5354
import com.oracle.truffle.api.dsl.Cached;
5455
import com.oracle.truffle.api.dsl.Cached.Exclusive;
5556
import com.oracle.truffle.api.dsl.ImportStatic;
@@ -58,6 +59,7 @@
5859
import com.oracle.truffle.api.interop.UnsupportedMessageException;
5960
import com.oracle.truffle.api.library.ExportLibrary;
6061
import com.oracle.truffle.api.library.ExportMessage;
62+
import com.oracle.truffle.api.nodes.Node;
6163
import com.oracle.truffle.llvm.spi.NativeTypeLibrary;
6264

6365
/**
@@ -95,11 +97,12 @@ protected Object getMembers(@SuppressWarnings("unused") boolean includeInternal)
9597

9698
@ExportMessage
9799
protected Object readMember(String member,
100+
@Bind("$node") Node inliningTarget,
98101
@Cached ReadSlotByNameNode readSlotByNameNode,
99102
@Exclusive @Cached GilNode gil) throws UnknownIdentifierException {
100103
boolean mustRelease = gil.acquire();
101104
try {
102-
Object result = readSlotByNameNode.execute(this, member, SLOTS);
105+
Object result = readSlotByNameNode.execute(inliningTarget, this, member, SLOTS);
103106
if (result == null) {
104107
throw UnknownIdentifierException.create(member);
105108
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ReadSlotByNameNode.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,18 @@
4242

4343
import com.oracle.graal.python.nodes.attributes.LookupNativeSlotNode;
4444
import com.oracle.truffle.api.dsl.Cached;
45+
import com.oracle.truffle.api.dsl.GenerateCached;
46+
import com.oracle.truffle.api.dsl.GenerateInline;
4547
import com.oracle.truffle.api.dsl.GenerateUncached;
4648
import com.oracle.truffle.api.dsl.Specialization;
4749
import com.oracle.truffle.api.nodes.ExplodeLoop;
4850
import com.oracle.truffle.api.nodes.Node;
4951

5052
@GenerateUncached
53+
@GenerateCached(false)
54+
@GenerateInline
5155
public abstract class ReadSlotByNameNode extends Node {
52-
public abstract Object execute(PythonNativeWrapper wrapper, String member, SlotMethodDef[] slots);
56+
public abstract Object execute(Node inliningTarget, PythonNativeWrapper wrapper, String member, SlotMethodDef[] slots);
5357

5458
@Specialization(guards = {"cachedMember.equals(member)", "slot != null"})
5559
Object cachedMember(PythonNativeWrapper wrapper, @SuppressWarnings("unused") String member, @SuppressWarnings("unused") SlotMethodDef[] slots,

0 commit comments

Comments
 (0)