@Specialization(guards = {"sessions.length == 1", "threadId == currentThreadId"}, limit = "CACHE_LIMIT") protected void executeCached(boolean suspensionEnabled, @SuppressWarnings("unused") DebuggerSession[] sessions, @SuppressWarnings("unused") long threadId, @SuppressWarnings("unused") @Cached("currentThreadId()") long currentThreadId, @Cached("getThreadSuspension(sessions)") ThreadSuspension threadSuspension) { threadSuspension.enabled = suspensionEnabled; }
/** * Created by lucas on 2014-09-14. */ @NodeChildren({@NodeChild("leftNode"), @NodeChild("rightNode")}) public abstract class LuaBinaryNode extends LuaExpressionNode { protected boolean isEitherString(Object a, Object b) { return a instanceof String || b instanceof String; } }
@Specialization void doObject(Object[] array, int index, Object value) { array[index] = value; } }
@TypeSystem({long.class, boolean.class, BigInteger.class, MumblerFunction.class, MumblerSymbol.class, MumblerList.class, String.class}) public class MumblerTypes { @ImplicitCast public static BigInteger castBigInteger(long value) { return BigInteger.valueOf(value); } }
@Specialization(guards = {"receiver == cachedReceiver", "cachedKey.equals(key)", "cachedContainsKey"}, limit = "8") Object readCached(@SuppressWarnings("unused") TruffleReadOnlyMap receiver, @SuppressWarnings("unused") String key, @Cached("receiver") @SuppressWarnings("unused") TruffleReadOnlyMap cachedReceiver, @Cached("key") @SuppressWarnings("unused") String cachedKey, @Cached("mapContainsKey(receiver, key)") @SuppressWarnings("unused") boolean cachedContainsKey, @Cached("mapGet(receiver, key)") Object cachedValue) { return cachedValue; }
@Specialization @SuppressWarnings("unused") boolean match(char c, boolean compactString) { return false; }
/** * Created by lucas on 2014-09-14. */ @NodeChildren({@NodeChild("childNode")}) public abstract class LuaUnaryNode extends LuaExpressionNode { }
@Specialization(guards = {"receiver == cachedReceiver", "cachedKey.equals(key)", "cachedContainsKey"}, limit = "8") Object readCached(@SuppressWarnings("unused") TruffleReadOnlyMap receiver, @SuppressWarnings("unused") String key, @Cached("receiver") @SuppressWarnings("unused") TruffleReadOnlyMap cachedReceiver, @Cached("key") @SuppressWarnings("unused") String cachedKey, @Cached("mapContainsKey(receiver, key)") @SuppressWarnings("unused") boolean cachedContainsKey) { return KeyInfo.READABLE; }
@SuppressWarnings("unused") @Specialization(guards = "operand == null") protected Object doNull(Object operand, Class<?> targetType, Type genericType, Object languageContext) { return null; }
@Specialization(guards = {"sessions.length == 1", "threadId == currentThreadId"}, limit = "CACHE_LIMIT") protected void executeCached(boolean suspensionEnabled, @SuppressWarnings("unused") DebuggerSession[] sessions, @SuppressWarnings("unused") long threadId, @SuppressWarnings("unused") @Cached("currentThreadId()") long currentThreadId, @Cached("getThreadSuspension(sessions)") ThreadSuspension threadSuspension) { threadSuspension.enabled = suspensionEnabled; }
@Specialization Object doObject(Object[] array, int index) { return array[index]; } }
@SuppressWarnings("unused") @Specialization(guards = {"onlyStatic == cachedStatic", "clazz == cachedClazz", "cachedName.equals(name)"}, limit = "LIMIT") static HostMethodDesc doCached(Class<?> clazz, String name, boolean onlyStatic, @Cached("onlyStatic") boolean cachedStatic, @Cached("clazz") Class<?> cachedClazz, @Cached("name") String cachedName, @Cached("doUncached(clazz, name, onlyStatic)") HostMethodDesc cachedMethod) { assert cachedMethod == HostInteropReflect.findMethod(clazz, name, onlyStatic); return cachedMethod; }
@SuppressWarnings("unused") @Specialization(guards = {"clazz == cachedClazz", "cachedName.equals(name)"}, limit = "LIMIT") static Class<?> doCached(Class<?> clazz, String name, @Cached("clazz") Class<?> cachedClazz, @Cached("name") String cachedName, @Cached("doUncached(clazz, name)") Class<?> cachedInnerClass) { assert cachedInnerClass == JavaInteropReflect.findInnerClass(clazz, name); return cachedInnerClass; }
@SuppressWarnings("unused") @Specialization(guards = {"clazz == cachedClazz", "cachedName.equals(name)"}, limit = "LIMIT") static Class<?> doCached(Class<?> clazz, String name, @Cached("clazz") Class<?> cachedClazz, @Cached("name") String cachedName, @Cached("doUncached(clazz, name)") Class<?> cachedInnerClass) { assert cachedInnerClass == HostInteropReflect.findInnerClass(clazz, name); return cachedInnerClass; }
@SuppressWarnings("unused") @Specialization(guards = "acceptCached(receiver, foreignAccess, canHandleCall)", limit = "CACHE_SIZE") protected static Object doCached(TruffleObject receiver, Object[] arguments, @Cached("receiver.getForeignAccess()") ForeignAccess foreignAccess, @Cached("createInlinedCallNode(createMessageTarget(foreignAccess))") DirectCallNode sendMessageCall, @Cached("createCanHandleInlinedCallNode(foreignAccess, receiver)") DirectCallNode canHandleCall) { return sendMessageCall.call(arguments); }
@SuppressWarnings("unused") @Specialization(guards = {"clazz == cachedClazz"}, limit = "LIMIT") static JavaMethodDesc doCached(Class<?> clazz, @Cached("clazz") Class<?> cachedClazz, @Cached("doUncached(clazz)") JavaMethodDesc cachedMethod) { assert cachedMethod == doUncached(clazz); return cachedMethod; }
@SuppressWarnings("unused") @Specialization(guards = {"argsLength == cachedArgsLength"}, limit = "LIMIT") static boolean doCached(JavaMethodDesc method, int argsLength, @Cached("argsLength") int cachedArgsLength, @Cached("doUncached(method, argsLength)") boolean applicableByArity) { assert applicableByArity == JavaInteropReflect.isApplicableByArity(method, argsLength); return applicableByArity; }
@Specialization(guards = "symbol.equals(cachedSymbol)", limit = "8", replaces = "readIdentity") public Object readEquals(PythonFlags receiver, @SuppressWarnings("unused") String symbol, @Cached("symbol") @SuppressWarnings("unused") String cachedSymbol, @Cached("buildFlagGetter(symbol)") PythonFlagsGetFlagNode getFlagNode) { return getFlagNode.execute(receiver); }
@Specialization(guards = "symbol == cachedSymbol", limit = "7") public Object readIdentity(RegexFlags receiver, @SuppressWarnings("unused") String symbol, @Cached("symbol") @SuppressWarnings("unused") String cachedSymbol, @Cached("getResultProperty(symbol)") RegexFlagsPropertyNode propertyNode) { return propertyNode.execute(receiver); }
@Specialization(guards = "receiver == cachedReceiver", limit = "1") Object readCached(@SuppressWarnings("unused") RegexFlags receiver, String symbol, @Cached("receiver") RegexFlags cachedReceiver) { return cache.execute(cachedReceiver, symbol); }