Skip to content

Commit f8e087b

Browse files
committed
Adjust library limit for CExtNodes
1 parent 6cbb163 commit f8e087b

File tree

1 file changed

+24
-33
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext

1 file changed

+24
-33
lines changed

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

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,6 @@
138138
import com.oracle.truffle.api.Assumption;
139139
import com.oracle.truffle.api.CompilerAsserts;
140140
import com.oracle.truffle.api.CompilerDirectives;
141-
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
142141
import com.oracle.truffle.api.TruffleLanguage.ContextReference;
143142
import com.oracle.truffle.api.TruffleLogger;
144143
import com.oracle.truffle.api.dsl.Cached;
@@ -449,32 +448,32 @@ static Object doPythonClassUncached(@SuppressWarnings("unused") CExtContext cext
449448
return PythonClassNativeWrapper.wrap(object, getNameNode.execute(object));
450449
}
451450

452-
@Specialization(guards = {"cachedClass == object.getClass()", "!isClass(object, lib)", "!isNativeObject(object)", "!isSpecialSingleton(object)"}, limit = "3")
451+
@Specialization(guards = {"cachedClass == object.getClass()", "!isClass(object, lib)", "!isNativeObject(object)", "!isSpecialSingleton(object)"})
453452
static Object runAbstractObjectCached(@SuppressWarnings("unused") CExtContext cextContext, PythonAbstractObject object,
454453
@Cached("createBinaryProfile()") ConditionProfile noWrapperProfile,
455454
@Cached("object.getClass()") Class<? extends PythonAbstractObject> cachedClass,
456-
@SuppressWarnings("unused") @CachedLibrary("object") InteropLibrary lib) {
455+
@SuppressWarnings("unused") @CachedLibrary(limit = "3") InteropLibrary lib) {
457456
assert object != PNone.NO_VALUE;
458457
return PythonObjectNativeWrapper.wrap(CompilerDirectives.castExact(object, cachedClass), noWrapperProfile);
459458
}
460459

461-
@Specialization(guards = {"!isClass(object, lib)", "!isNativeObject(object)", "!isSpecialSingleton(object)"}, replaces = "runAbstractObjectCached", limit = "3")
460+
@Specialization(guards = {"!isClass(object, lib)", "!isNativeObject(object)", "!isSpecialSingleton(object)"}, replaces = "runAbstractObjectCached")
462461
static Object runAbstractObject(@SuppressWarnings("unused") CExtContext cextContext, PythonAbstractObject object,
463462
@Cached("createBinaryProfile()") ConditionProfile noWrapperProfile,
464-
@SuppressWarnings("unused") @CachedLibrary("object") InteropLibrary lib) {
463+
@SuppressWarnings("unused") @CachedLibrary(limit = "3") InteropLibrary lib) {
465464
assert object != PNone.NO_VALUE;
466465
return PythonObjectNativeWrapper.wrap(object, noWrapperProfile);
467466
}
468467

469-
@Specialization(guards = {"lib.isForeignObject(object)", "!isNativeWrapper(object)", "!isNativeNull(object)"}, limit = "3")
468+
@Specialization(guards = {"lib.isForeignObject(object)", "!isNativeWrapper(object)", "!isNativeNull(object)"})
470469
static Object doForeignObject(@SuppressWarnings("unused") CExtContext cextContext, TruffleObject object,
471-
@SuppressWarnings("unused") @CachedLibrary("object") PythonObjectLibrary lib) {
470+
@SuppressWarnings("unused") @CachedLibrary(limit = "3") PythonObjectLibrary lib) {
472471
return TruffleObjectNativeWrapper.wrap(object);
473472
}
474473

475-
@Specialization(guards = "isFallback(object, lib)", limit = "1")
474+
@Specialization(guards = "isFallback(object, lib)")
476475
static Object run(@SuppressWarnings("unused") CExtContext cextContext, Object object,
477-
@SuppressWarnings("unused") @CachedLibrary("object") PythonObjectLibrary lib) {
476+
@SuppressWarnings("unused") @CachedLibrary(limit = "3") PythonObjectLibrary lib) {
478477
assert object != null : "Java 'null' cannot be a Sulong value";
479478
Object o = lib.getDelegatedValue(object);
480479
assert CApiGuards.isNativeWrapper(o) : "unknown object cannot be a Sulong value";
@@ -687,33 +686,33 @@ static Object doPythonClassUncached(@SuppressWarnings("unused") CExtContext cext
687686
return PythonClassNativeWrapper.wrapNewRef(object, getNameNode.execute(object));
688687
}
689688

690-
@Specialization(guards = {"cachedClass == object.getClass()", "!isClass(object, lib)", "!isNativeObject(object)", "!isSpecialSingleton(object)"}, limit = "3")
689+
@Specialization(guards = {"cachedClass == object.getClass()", "!isClass(object, lib)", "!isNativeObject(object)", "!isSpecialSingleton(object)"})
691690
static Object runAbstractObjectCached(@SuppressWarnings("unused") CExtContext cextContext, PythonAbstractObject object,
692691
@Cached("createBinaryProfile()") ConditionProfile noWrapperProfile,
693692
@Cached("object.getClass()") Class<? extends PythonAbstractObject> cachedClass,
694-
@SuppressWarnings("unused") @CachedLibrary("object") InteropLibrary lib) {
693+
@SuppressWarnings("unused") @CachedLibrary(limit = "3") InteropLibrary lib) {
695694
assert object != PNone.NO_VALUE;
696695
return PythonObjectNativeWrapper.wrapNewRef(CompilerDirectives.castExact(object, cachedClass), noWrapperProfile);
697696
}
698697

699-
@Specialization(guards = {"!isClass(object, lib)", "!isNativeObject(object)", "!isSpecialSingleton(object)"}, replaces = "runAbstractObjectCached", limit = "3")
698+
@Specialization(guards = {"!isClass(object, lib)", "!isNativeObject(object)", "!isSpecialSingleton(object)"}, replaces = "runAbstractObjectCached")
700699
static Object runAbstractObject(@SuppressWarnings("unused") CExtContext cextContext, PythonAbstractObject object,
701700
@Cached("createBinaryProfile()") ConditionProfile noWrapperProfile,
702-
@SuppressWarnings("unused") @CachedLibrary("object") InteropLibrary lib) {
701+
@SuppressWarnings("unused") @CachedLibrary(limit = "3") InteropLibrary lib) {
703702
assert object != PNone.NO_VALUE;
704703
return PythonObjectNativeWrapper.wrapNewRef(object, noWrapperProfile);
705704
}
706705

707-
@Specialization(guards = {"lib.isForeignObject(object)", "!isNativeWrapper(object)", "!isNativeNull(object)"}, limit = "3")
706+
@Specialization(guards = {"lib.isForeignObject(object)", "!isNativeWrapper(object)", "!isNativeNull(object)"})
708707
static Object doForeignObject(CExtContext cextContext, TruffleObject object,
709-
@CachedLibrary("object") PythonObjectLibrary lib) {
708+
@CachedLibrary(limit = "3") PythonObjectLibrary lib) {
710709
// this will always be a new wrapper; it's implicitly always a new reference in any case
711710
return ToSulongNode.doForeignObject(cextContext, object, lib);
712711
}
713712

714-
@Specialization(guards = "isFallback(object, lib)", limit = "1")
713+
@Specialization(guards = "isFallback(object, lib)")
715714
static Object run(CExtContext cextContext, Object object,
716-
@CachedLibrary("object") PythonObjectLibrary lib) {
715+
@CachedLibrary(limit = "3") PythonObjectLibrary lib) {
717716
return ToSulongNode.run(cextContext, object, lib);
718717
}
719718

@@ -850,33 +849,33 @@ static Object doPythonClassUncached(@SuppressWarnings("unused") CExtContext cext
850849
return PythonClassNativeWrapper.wrapNewRef(object, getNameNode.execute(object));
851850
}
852851

853-
@Specialization(guards = {"cachedClass == object.getClass()", "!isClass(object, lib)", "!isNativeObject(object)", "!isSpecialSingleton(object)"}, limit = "3")
852+
@Specialization(guards = {"cachedClass == object.getClass()", "!isClass(object, lib)", "!isNativeObject(object)", "!isSpecialSingleton(object)"})
854853
static Object runAbstractObjectCached(@SuppressWarnings("unused") CExtContext cextContext, PythonAbstractObject object,
855854
@Cached("createBinaryProfile()") ConditionProfile noWrapperProfile,
856855
@Cached("object.getClass()") Class<? extends PythonAbstractObject> cachedClass,
857-
@SuppressWarnings("unused") @CachedLibrary("object") InteropLibrary lib) {
856+
@SuppressWarnings("unused") @CachedLibrary(limit = "3") InteropLibrary lib) {
858857
assert object != PNone.NO_VALUE;
859858
return PythonObjectNativeWrapper.wrapNewRef(CompilerDirectives.castExact(object, cachedClass), noWrapperProfile);
860859
}
861860

862-
@Specialization(guards = {"!isClass(object, lib)", "!isNativeObject(object)", "!isSpecialSingleton(object)"}, replaces = "runAbstractObjectCached", limit = "3")
861+
@Specialization(guards = {"!isClass(object, lib)", "!isNativeObject(object)", "!isSpecialSingleton(object)"}, replaces = "runAbstractObjectCached")
863862
static Object runAbstractObject(@SuppressWarnings("unused") CExtContext cextContext, PythonAbstractObject object,
864863
@Cached("createBinaryProfile()") ConditionProfile noWrapperProfile,
865-
@SuppressWarnings("unused") @CachedLibrary("object") InteropLibrary lib) {
864+
@SuppressWarnings("unused") @CachedLibrary(limit = "3") InteropLibrary lib) {
866865
assert object != PNone.NO_VALUE;
867866
return PythonObjectNativeWrapper.wrapNewRef(object, noWrapperProfile);
868867
}
869868

870-
@Specialization(guards = {"lib.isForeignObject(object)", "!isNativeWrapper(object)", "!isNativeNull(object)"}, limit = "3")
869+
@Specialization(guards = {"lib.isForeignObject(object)", "!isNativeWrapper(object)", "!isNativeNull(object)"})
871870
static Object doForeignObject(CExtContext cextContext, TruffleObject object,
872-
@CachedLibrary("object") PythonObjectLibrary lib) {
871+
@CachedLibrary(limit = "3") PythonObjectLibrary lib) {
873872
// this will always be a new wrapper; it's implicitly always a new reference in any case
874873
return ToSulongNode.doForeignObject(cextContext, object, lib);
875874
}
876875

877-
@Specialization(guards = "isFallback(object, lib)", limit = "1")
876+
@Specialization(guards = "isFallback(object, lib)")
878877
static Object run(CExtContext cextContext, Object object,
879-
@CachedLibrary("object") PythonObjectLibrary lib) {
878+
@CachedLibrary(limit = "3") PythonObjectLibrary lib) {
880879
return ToSulongNode.run(cextContext, object, lib);
881880
}
882881

@@ -2493,7 +2492,6 @@ public abstract static class MayRaiseUnaryNode extends PythonUnaryBuiltinNode {
24932492
@Child private CreateArgumentsNode createArgsNode;
24942493
@Child private FunctionInvokeNode invokeNode;
24952494
@Child private TransformExceptionToNativeNode transformExceptionToNativeNode;
2496-
@CompilationFinal private ConditionProfile frameProfile;
24972495

24982496
private final PFunction func;
24992497
private final Object errorResult;
@@ -2532,7 +2530,6 @@ public abstract static class MayRaiseBinaryNode extends PythonBinaryBuiltinNode
25322530
@Child private CreateArgumentsNode createArgsNode;
25332531
@Child private FunctionInvokeNode invokeNode;
25342532
@Child private TransformExceptionToNativeNode transformExceptionToNativeNode;
2535-
@CompilationFinal private ConditionProfile frameProfile;
25362533

25372534
private final PFunction func;
25382535
private final Object errorResult;
@@ -2571,7 +2568,6 @@ public abstract static class MayRaiseTernaryNode extends PythonTernaryBuiltinNod
25712568
@Child private CreateArgumentsNode createArgsNode;
25722569
@Child private FunctionInvokeNode invokeNode;
25732570
@Child private TransformExceptionToNativeNode transformExceptionToNativeNode;
2574-
@CompilationFinal private ConditionProfile frameProfile;
25752571

25762572
private final PFunction func;
25772573
private final Object errorResult;
@@ -2611,7 +2607,6 @@ public static class MayRaiseNode extends PythonBuiltinNode {
26112607
@Child private ReadVarArgsNode readVarargsNode;
26122608
@Child private CreateArgumentsNode createArgsNode;
26132609
@Child private TransformExceptionToNativeNode transformExceptionToNativeNode;
2614-
@CompilationFinal private ConditionProfile frameProfile;
26152610

26162611
private final PFunction func;
26172612
private final Object errorResult;
@@ -2893,10 +2888,6 @@ public final int raiseIntWithoutFrame(int errorValue, Object errType, String for
28932888
return executeInt(null, errorValue, errType, format, arguments);
28942889
}
28952890

2896-
public final Object raiseWithoutFrame(Object errorValue, Object errType, String format, Object... arguments) {
2897-
return execute(null, errorValue, errType, format, arguments);
2898-
}
2899-
29002891
public abstract Object execute(Frame frame, Object errorValue, Object errType, String format, Object[] arguments);
29012892

29022893
public abstract int executeInt(Frame frame, int errorValue, Object errType, String format, Object[] arguments);

0 commit comments

Comments
 (0)