Skip to content

Commit b6cd4e8

Browse files
committed
Remove POL.isSame
1 parent 7abb520 commit b6cd4e8

13 files changed

+15
-278
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/PythonBuiltinClassType.java

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@
5656
import com.oracle.graal.python.builtins.objects.function.PArguments;
5757
import com.oracle.graal.python.builtins.objects.function.PArguments.ThreadState;
5858
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
59-
import com.oracle.graal.python.builtins.objects.type.PythonBuiltinClass;
6059
import com.oracle.graal.python.builtins.objects.type.SpecialMethodSlot;
6160
import com.oracle.graal.python.runtime.GilNode;
6261
import com.oracle.graal.python.runtime.PythonContext;
@@ -66,8 +65,6 @@
6665
import com.oracle.truffle.api.dsl.Cached;
6766
import com.oracle.truffle.api.dsl.Cached.Exclusive;
6867
import com.oracle.truffle.api.dsl.Cached.Shared;
69-
import com.oracle.truffle.api.dsl.Fallback;
70-
import com.oracle.truffle.api.dsl.Specialization;
7168
import com.oracle.truffle.api.frame.VirtualFrame;
7269
import com.oracle.truffle.api.interop.TruffleObject;
7370
import com.oracle.truffle.api.library.CachedLibrary;
@@ -749,25 +746,6 @@ public Object lookupAttributeOnTypeInternal(String attributeName, boolean strict
749746
}
750747
}
751748

752-
@ExportMessage
753-
static class IsSame {
754-
@Specialization
755-
static boolean tt(PythonBuiltinClassType receiver, PythonBuiltinClassType other) {
756-
return receiver == other;
757-
}
758-
759-
@Specialization
760-
static boolean tc(PythonBuiltinClassType receiver, PythonBuiltinClass other) {
761-
return receiver == other.getType();
762-
}
763-
764-
@Fallback
765-
@SuppressWarnings("unused")
766-
static boolean tO(PythonBuiltinClassType receiver, Object other) {
767-
return false;
768-
}
769-
}
770-
771749
@ExportMessage
772750
@SuppressWarnings("static-method")
773751
public boolean isCallable() {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/io/BufferedRWPairBuiltins.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,9 @@
6969
import com.oracle.graal.python.builtins.CoreFunctions;
7070
import com.oracle.graal.python.builtins.PythonBuiltins;
7171
import com.oracle.graal.python.builtins.objects.PNone;
72-
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
7372
import com.oracle.graal.python.lib.PyObjectCallMethodObjArgs;
7473
import com.oracle.graal.python.lib.PyObjectGetAttr;
74+
import com.oracle.graal.python.nodes.expression.IsExpressionNode;
7575
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
7676
import com.oracle.graal.python.nodes.function.builtins.PythonBinaryBuiltinNode;
7777
import com.oracle.graal.python.nodes.function.builtins.PythonQuaternaryClinicBuiltinNode;
@@ -84,7 +84,6 @@
8484
import com.oracle.truffle.api.dsl.NodeFactory;
8585
import com.oracle.truffle.api.dsl.Specialization;
8686
import com.oracle.truffle.api.frame.VirtualFrame;
87-
import com.oracle.truffle.api.library.CachedLibrary;
8887
import com.oracle.truffle.api.profiles.BranchProfile;
8988
import com.oracle.truffle.api.profiles.ConditionProfile;
9089

@@ -322,10 +321,10 @@ abstract static class IsAttyNode extends PythonUnaryBuiltinNode {
322321
Object doit(VirtualFrame frame, PRWPair self,
323322
@Cached PyObjectCallMethodObjArgs callMethodWriter,
324323
@Cached PyObjectCallMethodObjArgs callMethodReader,
325-
@CachedLibrary(limit = "1") PythonObjectLibrary isSame,
324+
@Cached IsExpressionNode.IsNode isNode,
326325
@Cached ConditionProfile isSameProfile) {
327326
Object res = callMethodWriter.execute(frame, self.getWriter(), ISATTY);
328-
if (isSameProfile.profile(!isSame.isSame(res, getCore().getFalse()))) {
327+
if (isSameProfile.profile(isNode.isTrue(res))) {
329328
/* either True or exception */
330329
return res;
331330
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/io/IOBaseBuiltins.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@
8888
import com.oracle.graal.python.builtins.objects.bytes.PBytes;
8989
import com.oracle.graal.python.builtins.objects.exception.PBaseException;
9090
import com.oracle.graal.python.builtins.objects.object.PythonObject;
91-
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
9291
import com.oracle.graal.python.lib.PyObjectCallMethodObjArgs;
9392
import com.oracle.graal.python.lib.PyObjectGetAttr;
9493
import com.oracle.graal.python.lib.PyObjectGetIter;
@@ -101,6 +100,7 @@
101100
import com.oracle.graal.python.nodes.attributes.SetAttributeNode;
102101
import com.oracle.graal.python.nodes.call.CallNode;
103102
import com.oracle.graal.python.nodes.control.GetNextNode;
103+
import com.oracle.graal.python.nodes.expression.IsExpressionNode;
104104
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
105105
import com.oracle.graal.python.nodes.function.PythonBuiltinNode;
106106
import com.oracle.graal.python.nodes.function.builtins.PythonBinaryBuiltinNode;
@@ -192,9 +192,9 @@ abstract static class CheckSeekableNode extends PythonUnaryBuiltinNode {
192192
@Specialization
193193
boolean doCheckSeekable(VirtualFrame frame, PythonObject self,
194194
@Cached PyObjectCallMethodObjArgs callMethod,
195-
@CachedLibrary(limit = "1") PythonObjectLibrary isSame) {
195+
@Cached IsExpressionNode.IsNode isNode) {
196196
Object v = callMethod.execute(frame, self, SEEKABLE);
197-
if (isSame.isSame(v, getCore().getTrue())) {
197+
if (isNode.isTrue(v)) {
198198
return true;
199199
}
200200
throw unsupported(getRaiseNode(), ErrorMessages.FILE_OR_STREAM_IS_NOT_SEEKABLE);
@@ -207,9 +207,9 @@ abstract static class CheckReadableNode extends PythonUnaryBuiltinNode {
207207
@Specialization
208208
boolean doCheckReadable(VirtualFrame frame, PythonObject self,
209209
@Cached PyObjectCallMethodObjArgs callMethod,
210-
@CachedLibrary(limit = "1") PythonObjectLibrary isSame) {
210+
@Cached IsExpressionNode.IsNode isNode) {
211211
Object v = callMethod.execute(frame, self, READABLE);
212-
if (isSame.isSame(v, getCore().getTrue())) {
212+
if (isNode.isTrue(v)) {
213213
return true;
214214
}
215215
throw unsupported(getRaiseNode(), ErrorMessages.FILE_OR_STREAM_IS_NOT_READABLE);
@@ -222,9 +222,9 @@ abstract static class CheckWritableNode extends PythonUnaryBuiltinNode {
222222
@Specialization
223223
boolean doCheckWritable(VirtualFrame frame, PythonObject self,
224224
@Cached PyObjectCallMethodObjArgs callMethod,
225-
@CachedLibrary(limit = "1") PythonObjectLibrary isSame) {
225+
@Cached IsExpressionNode.IsNode isNode) {
226226
Object result = callMethod.execute(frame, self, WRITABLE);
227-
if (isSame.isSame(result, true)) {
227+
if (isNode.isTrue(result)) {
228228
return true;
229229
}
230230
throw unsupported(getRaiseNode(), ErrorMessages.FILE_OR_STREAM_IS_NOT_WRITABLE);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/PythonAbstractObject.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -646,12 +646,6 @@ private static void addKeysFromObject(HashSet<String> keys, PythonObject o, bool
646646
}
647647
}
648648

649-
@ExportMessage
650-
public boolean isSame(Object other,
651-
@Cached IsNode isNode) {
652-
return isNode.execute(this, other);
653-
}
654-
655649
@ExportMessage
656650
public String asPathWithState(ThreadState state,
657651
@CachedLibrary("this") PythonObjectLibrary lib,
@@ -1735,15 +1729,15 @@ public static int systemHashCode(Object value) {
17351729
public TriState isIdenticalOrUndefined(Object otherInterop,
17361730
@Cached PForeignToPTypeNode convert,
17371731
@CachedLibrary(limit = "3") InteropLibrary otherLib,
1738-
@CachedLibrary("this") PythonObjectLibrary objectLib,
1732+
@Cached IsNode isNode,
17391733
@Exclusive @Cached GilNode gil) {
17401734
boolean mustRelease = gil.acquire();
17411735
try {
17421736
Object other = convert.executeConvert(otherInterop);
17431737
if (this == other) {
17441738
return TriState.TRUE;
17451739
} else if (otherLib.hasIdentity(other)) {
1746-
return objectLib.isSame(this, other) ? TriState.TRUE : TriState.FALSE;
1740+
return isNode.execute(this, other) ? TriState.TRUE : TriState.FALSE;
17471741
} else {
17481742
return TriState.UNDEFINED;
17491743
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/object/DefaultPythonBooleanExports.java

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -44,60 +44,19 @@
4444
import com.oracle.graal.python.builtins.objects.PythonAbstractObject;
4545
import com.oracle.graal.python.builtins.objects.function.PArguments;
4646
import com.oracle.graal.python.builtins.objects.function.PArguments.ThreadState;
47-
import com.oracle.graal.python.builtins.objects.ints.PInt;
4847
import com.oracle.graal.python.builtins.objects.type.TypeNodes;
4948
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
50-
import com.oracle.graal.python.nodes.object.IsBuiltinClassProfile;
51-
import com.oracle.graal.python.runtime.PythonContext;
5249
import com.oracle.truffle.api.dsl.Cached;
5350
import com.oracle.truffle.api.dsl.Cached.Exclusive;
5451
import com.oracle.truffle.api.dsl.Cached.Shared;
55-
import com.oracle.truffle.api.dsl.Fallback;
56-
import com.oracle.truffle.api.dsl.Specialization;
5752
import com.oracle.truffle.api.frame.VirtualFrame;
58-
import com.oracle.truffle.api.interop.InteropLibrary;
5953
import com.oracle.truffle.api.library.CachedLibrary;
6054
import com.oracle.truffle.api.library.ExportLibrary;
6155
import com.oracle.truffle.api.library.ExportMessage;
6256
import com.oracle.truffle.api.profiles.ConditionProfile;
6357

6458
@ExportLibrary(value = PythonObjectLibrary.class, receiverType = Boolean.class)
6559
final class DefaultPythonBooleanExports {
66-
@ExportMessage
67-
static class IsSame {
68-
@Specialization
69-
static boolean bb(Boolean receiver, boolean other) {
70-
return receiver == other;
71-
}
72-
73-
@Specialization
74-
static boolean bI(Boolean receiver, PInt other,
75-
@Cached IsBuiltinClassProfile isBuiltin,
76-
@CachedLibrary(limit = "1") InteropLibrary lib) {
77-
PythonContext context = PythonContext.get(lib);
78-
if (receiver) {
79-
if (other == context.getCore().getTrue()) {
80-
return true; // avoid the TruffleBoundary isOne call if we can
81-
} else if (isBuiltin.profileObject(other, PythonBuiltinClassType.Boolean)) {
82-
return other.isOne();
83-
}
84-
} else {
85-
if (other == context.getCore().getFalse()) {
86-
return true;
87-
} else if (isBuiltin.profileObject(other, PythonBuiltinClassType.Boolean)) {
88-
return other.isZero();
89-
}
90-
}
91-
return false;
92-
}
93-
94-
@Fallback
95-
@SuppressWarnings("unused")
96-
static boolean bO(Boolean receiver, Object other) {
97-
return false;
98-
}
99-
}
100-
10160
@ExportMessage
10261
static Object lookupAttributeInternal(Boolean receiver, ThreadState state, String name, boolean strict,
10362
@Cached ConditionProfile gotState,

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/object/DefaultPythonDoubleExports.java

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,13 @@
4242

4343
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
4444
import com.oracle.graal.python.builtins.objects.PythonAbstractObject;
45-
import com.oracle.graal.python.builtins.objects.floats.PFloat;
4645
import com.oracle.graal.python.builtins.objects.function.PArguments;
4746
import com.oracle.graal.python.builtins.objects.function.PArguments.ThreadState;
4847
import com.oracle.graal.python.builtins.objects.type.TypeNodes;
49-
import com.oracle.graal.python.lib.PyFloatCheckExactNode;
5048
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
5149
import com.oracle.truffle.api.dsl.Cached;
5250
import com.oracle.truffle.api.dsl.Cached.Exclusive;
5351
import com.oracle.truffle.api.dsl.Cached.Shared;
54-
import com.oracle.truffle.api.dsl.Fallback;
55-
import com.oracle.truffle.api.dsl.Specialization;
5652
import com.oracle.truffle.api.frame.VirtualFrame;
5753
import com.oracle.truffle.api.library.CachedLibrary;
5854
import com.oracle.truffle.api.library.ExportLibrary;
@@ -61,30 +57,6 @@
6157

6258
@ExportLibrary(value = PythonObjectLibrary.class, receiverType = Double.class)
6359
final class DefaultPythonDoubleExports {
64-
@ExportMessage
65-
static class IsSame {
66-
@Specialization
67-
static boolean dd(Double receiver, double other) {
68-
return Double.compare(receiver, other) == 0;
69-
}
70-
71-
@Specialization
72-
static boolean dF(Double receiver, PFloat other,
73-
@Cached PyFloatCheckExactNode isFloat) {
74-
if (isFloat.execute(other)) {
75-
return dd(receiver, other.getValue());
76-
} else {
77-
return false;
78-
}
79-
}
80-
81-
@Fallback
82-
@SuppressWarnings("unused")
83-
static boolean dO(Double receiver, Object other) {
84-
return false;
85-
}
86-
}
87-
8860
@ExportMessage
8961
static Object lookupAttributeInternal(Double receiver, ThreadState state, String name, boolean strict,
9062
@Cached ConditionProfile gotState,

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/object/DefaultPythonIntegerExports.java

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -44,78 +44,20 @@
4444
import com.oracle.graal.python.builtins.objects.PythonAbstractObject;
4545
import com.oracle.graal.python.builtins.objects.function.PArguments;
4646
import com.oracle.graal.python.builtins.objects.function.PArguments.ThreadState;
47-
import com.oracle.graal.python.builtins.objects.ints.PInt;
4847
import com.oracle.graal.python.builtins.objects.type.TypeNodes;
49-
import com.oracle.graal.python.lib.PyLongCheckExactNode;
5048
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
5149
import com.oracle.graal.python.runtime.GilNode;
52-
import com.oracle.graal.python.util.OverflowException;
5350
import com.oracle.truffle.api.dsl.Cached;
5451
import com.oracle.truffle.api.dsl.Cached.Exclusive;
5552
import com.oracle.truffle.api.dsl.Cached.Shared;
56-
import com.oracle.truffle.api.dsl.Fallback;
57-
import com.oracle.truffle.api.dsl.Specialization;
5853
import com.oracle.truffle.api.frame.VirtualFrame;
59-
import com.oracle.truffle.api.interop.InteropLibrary;
6054
import com.oracle.truffle.api.library.CachedLibrary;
6155
import com.oracle.truffle.api.library.ExportLibrary;
6256
import com.oracle.truffle.api.library.ExportMessage;
6357
import com.oracle.truffle.api.profiles.ConditionProfile;
6458

6559
@ExportLibrary(value = PythonObjectLibrary.class, receiverType = Integer.class)
6660
final class DefaultPythonIntegerExports {
67-
@ExportMessage
68-
static class IsSame {
69-
@Specialization
70-
static boolean ii(Integer receiver, int other) {
71-
return receiver == other;
72-
}
73-
74-
@Specialization
75-
static boolean il(Integer receiver, long other) {
76-
return receiver == other;
77-
}
78-
79-
@Specialization(rewriteOn = OverflowException.class)
80-
static boolean iP(Integer receiver, PInt other,
81-
@Shared("isBuiltinInt") @Cached PyLongCheckExactNode isBuiltin,
82-
@Shared("gil") @Cached GilNode gil) throws OverflowException {
83-
boolean mustRelease = gil.acquire();
84-
try {
85-
if (isBuiltin.execute(other)) {
86-
return receiver == other.intValueExact();
87-
}
88-
return false;
89-
} finally {
90-
gil.release(mustRelease);
91-
}
92-
}
93-
94-
@Specialization(replaces = "iP", limit = "1")
95-
static boolean iPOverflow(Integer receiver, PInt other,
96-
@CachedLibrary("other") InteropLibrary otherLib,
97-
@Shared("isBuiltinInt") @Cached PyLongCheckExactNode isBuiltin,
98-
@Shared("gil") @Cached GilNode gil) {
99-
boolean mustRelease = gil.acquire();
100-
try {
101-
if (isBuiltin.execute(other)) {
102-
if (otherLib.fitsInInt(other)) {
103-
return receiver == other.intValue();
104-
}
105-
}
106-
return false;
107-
} finally {
108-
gil.release(mustRelease);
109-
}
110-
}
111-
112-
@Fallback
113-
@SuppressWarnings("unused")
114-
static boolean iO(Integer receiver, Object other) {
115-
return false;
116-
}
117-
}
118-
11961
@ExportMessage
12062
static Object lookupAttributeInternal(Integer receiver, ThreadState state, String name, boolean strict,
12163
@Cached ConditionProfile gotState,

0 commit comments

Comments
 (0)