diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_Call.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_Call.java index eea56a31cdddef365ac83a65508a5d5afdb89735..c83f50b2f29e3f87f63164436393f82af6e1f683 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_Call.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_Call.java @@ -95,7 +95,7 @@ final class TruffleLLVM_Call implements CallRFFI { callbacks = (TruffleObject) context.getEnv().asGuestValue(callbacksArray); - Node setClbkAddrExecuteNode = Message.createExecute(1).createNode(); + Node setClbkAddrExecuteNode = Message.EXECUTE.createNode(); SymbolHandle setClbkAddrSymbolHandle = new SymbolHandle(context.getEnv().importSymbol("@" + "Rinternals_setCallbacksAddress")); setCallbacksAddress = setClbkAddrSymbolHandle.asTruffleObject(); // Initialize the callbacks global variable @@ -126,7 +126,7 @@ final class TruffleLLVM_Call implements CallRFFI { for (INIT_VAR_FUN initVarFun : INIT_VAR_FUN.values()) { initVarFun.symbolHandle = new SymbolHandle(context.getEnv().importSymbol("@" + initVarFun.funName)); } - Node executeNode = Message.createExecute(2).createNode(); + Node executeNode = Message.EXECUTE.createNode(); RFFIVariables[] variables = RFFIVariables.initialize(context); boolean isNullSetting = RContext.getRForeignAccessFactory().setIsNull(false); try { @@ -229,7 +229,7 @@ final class TruffleLLVM_Call implements CallRFFI { protected Object invokeCallCached(NativeCallInfo nativeCallInfo, Object[] args, @SuppressWarnings("unused") @Cached("nativeCallInfo") NativeCallInfo cachedNativeCallInfo, @SuppressWarnings("unused") @Cached("argCount(args)") int cachedArgCount, - @Cached("createMessageNode(args)") Node cachedMessageNode, + @Cached("createMessageNode()") Node cachedMessageNode, @Cached("createConvertNodes(cachedArgCount)") ToNativeNode[] convert) { return doInvoke(cachedMessageNode, nativeCallInfo, args, convert); } @@ -237,7 +237,7 @@ final class TruffleLLVM_Call implements CallRFFI { @Specialization(replaces = "invokeCallCached") @TruffleBoundary protected Object invokeCallNormal(NativeCallInfo nativeCallInfo, Object[] args) { - return doInvoke(Message.createExecute(args.length).createNode(), nativeCallInfo, args, null); + return doInvoke(Message.EXECUTE.createNode(), nativeCallInfo, args, null); } @ExplodeLoop @@ -273,8 +273,8 @@ final class TruffleLLVM_Call implements CallRFFI { return args.length; } - public Node createMessageNode(Object[] args) { - return Message.createExecute(args.length).createNode(); + public Node createMessageNode() { + return Message.EXECUTE.createNode(); } } @@ -313,7 +313,7 @@ final class TruffleLLVM_Call implements CallRFFI { } public static final class PushCallbacksNode extends Node { - @Child private Node setCallbacksNode = Message.createExecute(1).createNode(); + @Child private Node setCallbacksNode = Message.EXECUTE.createNode(); public void execute(TruffleObject setCallbacksAddress, TruffleObject callbacks) { try { diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_NativeDLL.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_NativeDLL.java index 31b5a53eb62d52197d7627d9bab7896e50feedd1..b045ff2967a297713fe9a32bd6c29976f9130498 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_NativeDLL.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_NativeDLL.java @@ -45,14 +45,14 @@ import com.oracle.truffle.r.runtime.ffi.interop.NativeCharArray; */ class TruffleLLVM_NativeDLL { enum Function { - dlopen(3), - dlclose(1); + dlopen, + dlclose; private final Node executeNode; private final String callName; - Function(int argCount) { - executeNode = Message.createExecute(argCount).createNode(); + Function() { + executeNode = Message.EXECUTE.createNode(); callName = "call_" + name(); } } diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_UpCallsRFFIImpl.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_UpCallsRFFIImpl.java index cebd2d02c8072d35e1287a1d61705552f0075b26..a7dc6e740a5ede59a4cd9aad56ffe4d230f34788 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_UpCallsRFFIImpl.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_UpCallsRFFIImpl.java @@ -133,7 +133,7 @@ public class TruffleLLVM_UpCallsRFFIImpl extends JavaUpCallsRFFIImpl { @Override protected Object setSymbol(DLLInfo dllInfo, int nstOrd, Object routines, int index) { - Node executeNode = Message.createExecute(4).createNode(); + Node executeNode = Message.EXECUTE.createNode(); try { return FFIUnwrapNode.unwrap(ForeignAccess.sendExecute(executeNode, setSymbolHandle, dllInfo, nstOrd, routines, index)); } catch (InteropException ex) { diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_UserRng.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_UserRng.java index 002ef9b2cc3433ced19872d4c320bddc18bd29e0..e24aa73c0ecf730f81aaa79e21956d2c25029ca7 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_UserRng.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_UserRng.java @@ -47,7 +47,7 @@ public class TruffleLLVM_UserRng implements UserRngRFFI { protected void init(NativeFunction userFunction, NativeFunction readFunction) { if (userFunctionNode == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); - userFunctionNode = Message.createExecute(userFunction.getArgumentCount()).createNode(); + userFunctionNode = Message.EXECUTE.createNode(); } if (userFunctionTarget == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); @@ -56,7 +56,7 @@ public class TruffleLLVM_UserRng implements UserRngRFFI { if (readFunction != null) { if (readPointerNode == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); - readPointerNode = Message.createExecute(readFunction.getArgumentCount()).createNode(); + readPointerNode = Message.EXECUTE.createNode(); } if (readPointerTarget == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_C.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_C.java index 818d21ea2956e1d6d9a946668fcf63e3108d26af..8ff484ec8a955f220314786b292b9497e7614378 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_C.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_C.java @@ -59,7 +59,7 @@ public class TruffleNFI_C implements CRFFI { static final class NFIFunctionObjectGetter extends FunctionObjectGetter { - @Child private Node bindNode = Message.createInvoke(1).createNode(); + @Child private Node bindNode = Message.INVOKE.createNode(); @Override @TruffleBoundary diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Call.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Call.java index e13209ce9f47a7eea0cd9060620196a87524d46d..3f0326653719d3ccb1acca3765d4d251c2ce85a4 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Call.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Call.java @@ -59,7 +59,7 @@ public class TruffleNFI_Call implements CallRFFI { } private abstract static class NodeAdapter extends Node { - @Child private Node bindNode = Message.createInvoke(1).createNode(); + @Child private Node bindNode = Message.INVOKE.createNode(); @TruffleBoundary protected TruffleObject getFunction(String name, String signature) { @@ -85,7 +85,7 @@ public class TruffleNFI_Call implements CallRFFI { @Cached("args.length") int cachedArgsLength, @Cached("create(cachedArgsLength)") FFIWrapNode[] ffiWrapNodes, @Cached("create()") FFIUnwrapNode unwrap, - @Cached("createExecute(cachedArgsLength)") Node executeNode, + @Cached("createExecute()") Node executeNode, @Cached("nativeCallInfo.address.asTruffleObject()") TruffleObject cachedAddress, @Cached("getFunction(cachedArgsLength)") TruffleObject cachedFunction) { Object result = null; @@ -109,7 +109,7 @@ public class TruffleNFI_Call implements CallRFFI { @Cached("args.length") int cachedArgsLength, @Cached("create(cachedArgsLength)") FFIWrapNode[] ffiWrapNodes, @Cached("create()") FFIUnwrapNode unwrap, - @Cached("createExecute(cachedArgsLength)") Node executeNode) { + @Cached("createExecute()") Node executeNode) { Object result = null; Object[] realArgs = new Object[cachedArgsLength + 1]; boolean isNullSetting = prepareCall(nativeCallInfo.name, args, ffiWrapNodes); @@ -126,8 +126,8 @@ public class TruffleNFI_Call implements CallRFFI { } } - public static Node createExecute(int n) { - return Message.createExecute(n).createNode(); + public static Node createExecute() { + return Message.EXECUTE.createNode(); } } @@ -135,8 +135,8 @@ public class TruffleNFI_Call implements CallRFFI { private static final String CallVoid1Sig = "(pointer, pointer): void"; private static final String CallVoid0Sig = "(pointer): void"; - @Child private Node execute0Node = Message.createExecute(0).createNode(); - @Child private Node execute1Node = Message.createExecute(1).createNode(); + @Child private Node execute0Node = Message.EXECUTE.createNode(); + @Child private Node execute1Node = Message.EXECUTE.createNode(); @Children private final FFIWrapNode[] ffiWrapNodes0 = FFIWrapNode.create(0); @Children private final FFIWrapNode[] ffiWrapNodes1 = FFIWrapNode.create(1); diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Context.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Context.java index 0033bd5e6c2e9592d05aca8764469aa006aa8558..5e7b679d4107bbe84dd8aa16f1ff3af1ac8877c1 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Context.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Context.java @@ -148,7 +148,7 @@ final class TruffleNFI_Context extends RFFIContext { } try { TruffleObject symbol = ((TruffleObject) ForeignAccess.sendRead(Message.READ.createNode(), dllInfo, function.getCallName())); - TruffleObject target = (TruffleObject) ForeignAccess.sendInvoke(Message.createInvoke(1).createNode(), symbol, "bind", function.getSignature()); + TruffleObject target = (TruffleObject) ForeignAccess.sendInvoke(Message.INVOKE.createNode(), symbol, "bind", function.getSignature()); nativeFunctions.put(function, target); } catch (InteropException e) { throw RInternalError.shouldNotReachHere(e); @@ -166,7 +166,7 @@ final class TruffleNFI_Context extends RFFIContext { synchronized (TruffleNFI_Context.class) { if (!variablesInitialized) { variablesInitialized = true; - Node executeNode = Message.createExecute(2).createNode(); + Node executeNode = Message.EXECUTE.createNode(); RFFIVariables[] variables = RFFIVariables.initialize(context); boolean isNullSetting = RContext.getRForeignAccessFactory().setIsNull(false); try { @@ -206,8 +206,8 @@ final class TruffleNFI_Context extends RFFIContext { private static long initCallbacksAddress() { // get the address of the native thread local try { - Node bind = Message.createInvoke(1).createNode(); - Node executeNode = Message.createExecute(1).createNode(); + Node bind = Message.INVOKE.createNode(); + Node executeNode = Message.EXECUTE.createNode(); TruffleObject getCallbacksAddressFunction = (TruffleObject) ForeignAccess.sendInvoke(bind, DLL.findSymbol("Rinternals_getCallbacksAddress", null).asTruffleObject(), "bind", "(): sint64"); return (long) ForeignAccess.sendExecute(executeNode, getCallbacksAddressFunction); } catch (InteropException ex) { @@ -219,8 +219,8 @@ final class TruffleNFI_Context extends RFFIContext { if (context.getKind() == ContextKind.SHARE_NOTHING) { // create and fill a new callbacks table callbacks = UnsafeAdapter.UNSAFE.allocateMemory(Callbacks.values().length * Unsafe.ARRAY_LONG_INDEX_SCALE); - Node bind = Message.createInvoke(1).createNode(); - Node executeNode = Message.createExecute(1).createNode(); + Node bind = Message.INVOKE.createNode(); + Node executeNode = Message.EXECUTE.createNode(); SymbolHandle symbolHandle = DLL.findSymbol("Rinternals_addCallback", null); try { Callbacks.createCalls(new TruffleNFI_UpCallsRFFIImpl()); diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_UpCallsRFFIImpl.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_UpCallsRFFIImpl.java index b6b5d10bf4c64f16332947a78c8090659a50b315..70c2794ff89edfa03c7dc8d665ce6ed83d296546 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_UpCallsRFFIImpl.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_UpCallsRFFIImpl.java @@ -81,7 +81,7 @@ public class TruffleNFI_UpCallsRFFIImpl extends JavaUpCallsRFFIImpl { @Override @TruffleBoundary protected DotSymbol setSymbol(DLLInfo dllInfo, int nstOrd, Object routines, int index) { - Node executeNode = Message.createExecute(4).createNode(); + Node executeNode = Message.EXECUTE.createNode(); try { return (DotSymbol) FFIUnwrapNode.unwrap( ForeignAccess.sendExecute(executeNode, TruffleNFI_Context.getInstance().lookupNativeFunction(NativeFunction.Rdynload_setSymbol), dllInfo, nstOrd, routines, index)); diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_UserRng.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_UserRng.java index a27358019d54d000b4b20b1d2065f3395993f466..dc0db2bc078c175b518710923f32618f9df5c4db 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_UserRng.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_UserRng.java @@ -47,7 +47,7 @@ public class TruffleNFI_UserRng implements UserRngRFFI { protected void init(NativeFunction userFunction, NativeFunction readFunction) { if (userFunctionNode == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); - userFunctionNode = insert(Message.createExecute(userFunction.getArgumentCount()).createNode()); + userFunctionNode = insert(Message.EXECUTE.createNode()); } if (userFunctionTarget == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); @@ -56,7 +56,7 @@ public class TruffleNFI_UserRng implements UserRngRFFI { if (readFunction != null) { if (readPointerNode == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); - readPointerNode = insert(Message.createExecute(readFunction.getArgumentCount()).createNode()); + readPointerNode = insert(Message.EXECUTE.createNode()); } if (readPointerTarget == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java index a42a49287a89c8e1ca14ef6dd60da14c6b43ec5b..a6301008fa92219799fcee26690ddc907a886385 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java @@ -219,7 +219,7 @@ public abstract class Unlist extends RBuiltinNode.Arg3 { @Specialization(guards = {"isJavaIterable(obj)", "!isForeignArray(obj, hasSize)"}) protected int getJavaIterableLength(TruffleObject obj, @Cached("READ.createNode()") Node read, - @Cached("createExecute(0).createNode()") Node execute, + @Cached("EXECUTE.createNode()") Node execute, @SuppressWarnings("unused") @Cached("HAS_SIZE.createNode()") Node hasSize, @Cached("create()") Foreign2R foreign2R) { int totalSize = 0; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ExtractVectorNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ExtractVectorNode.java index 4b86ed3e3efc1b6dabde69845a894dd66f82b343..be3d7ac14de7acb692230d382708859a296b8ea2 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ExtractVectorNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ExtractVectorNode.java @@ -421,7 +421,7 @@ public abstract class ExtractVectorNode extends RBaseNode { private Node getExecuteNode() { if (executeNode == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); - executeNode = insert(com.oracle.truffle.api.interop.Message.createExecute(0).createNode()); + executeNode = insert(com.oracle.truffle.api.interop.Message.EXECUTE.createNode()); } return executeNode; } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ReplaceVectorNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ReplaceVectorNode.java index f9662130c9f33532ecc66412f53b7bda0449e6f1..cec46cc226363c576c1e0c706b86dd04247b9d10 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ReplaceVectorNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ReplaceVectorNode.java @@ -323,7 +323,7 @@ public abstract class ReplaceVectorNode extends RBaseNode { } if (executeNode == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); - executeNode = insert(com.oracle.truffle.api.interop.Message.createExecute(0).createNode()); + executeNode = insert(com.oracle.truffle.api.interop.Message.EXECUTE.createNode()); } if (readNode == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/ForNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/ForNode.java index b1e058386ad3dd53b2b2b5bb31666df2036213cd..24440ed48778689dc4aac003e312da3f8369e13f 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/ForNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/ForNode.java @@ -117,7 +117,7 @@ public abstract class ForNode extends AbstractLoopNode implements RSyntaxNode, R @Cached("createWriteVariable(iteratorName)") WriteVariableNode writeIteratorNode, @Cached("createForIterableLoopNode(iteratorName)") LoopNode l, @Cached("READ.createNode()") Node readNode, - @Cached("createExecute(0).createNode()") Node executeNode) { + @Cached("EXECUTE.createNode()") Node executeNode) { TruffleObject iterator = getIterator((TruffleObject) range, readNode, executeNode); writeIteratorNode.execute(frame, iterator); @@ -368,7 +368,7 @@ public abstract class ForNode extends AbstractLoopNode implements RSyntaxNode, R this.readIteratorNode = LocalReadVariableNode.create(iteratorName, true); - this.executeForeignNode = Message.createExecute(0).createNode(); + this.executeForeignNode = Message.EXECUTE.createNode(); this.readForeignNode = Message.READ.createNode(); // pre-initialize the profile so that loop exits to not deoptimize diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/RLengthNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/RLengthNode.java index 39b77c067c2af5639e74bc9883d563fe43104f66..855da5167ca2e50df81b93e0a4e6d164459e37e2 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/RLengthNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/RLengthNode.java @@ -158,7 +158,7 @@ public abstract class RLengthNode extends RBaseNode { @Specialization(guards = "isJavaIterable(object)") protected int getJavaIterableSize(TruffleObject object, @Cached("READ.createNode()") Node read, - @Cached("createExecute(0).createNode()") Node execute, + @Cached("EXECUTE.createNode()") Node execute, @Cached("createBinaryProfile()") ConditionProfile profile) { try { Number sizeByMethod = null; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java index e505ec8047c8b6b350963f2105973dd63875087f..43ea373e11eaf7328ec776820adca7dc89fd2c26 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java @@ -655,13 +655,13 @@ public abstract class RCallNode extends RCallBaseNode implements RSyntaxNode, RS public abstract Object execute(TruffleObject function, Object[] args); - protected static Node createMessageNode(int argsLen) { - return Message.createExecute(argsLen).createNode(); + protected static Node createMessageNode() { + return Message.EXECUTE.createNode(); } @Specialization(guards = "argumentsArray.length == foreignCallArgCount", limit = "8") protected Object doCached(TruffleObject function, Object[] argumentsArray, - @Cached("createMessageNode(argumentsArray.length)") Node messageNode, + @Cached("createMessageNode()") Node messageNode, @Cached("argumentsArray.length") @SuppressWarnings("unused") int foreignCallArgCount) { try { return ForeignAccess.sendExecute(messageNode, function, args2Foreign(argumentsArray)); @@ -677,7 +677,7 @@ public abstract class RCallNode extends RCallBaseNode implements RSyntaxNode, RS @Specialization(replaces = "doCached") @TruffleBoundary protected Object doGeneric(TruffleObject function, Object[] argumentsArray) { - return doCached(function, argumentsArray, createMessageNode(argumentsArray.length), argumentsArray.length); + return doCached(function, argumentsArray, createMessageNode(), argumentsArray.length); } } @@ -688,13 +688,13 @@ public abstract class RCallNode extends RCallBaseNode implements RSyntaxNode, RS public abstract Object execute(DeferredFunctionValue function, Object[] args); - protected static Node createMessageNode(int argsLen) { - return Message.createInvoke(argsLen).createNode(); + protected static Node createMessageNode() { + return Message.INVOKE.createNode(); } @Specialization(guards = "argumentsArray.length == foreignCallArgCount", limit = "8") protected Object doCached(DeferredFunctionValue lhs, Object[] argumentsArray, - @Cached("createMessageNode(argumentsArray.length)") Node messageNode, + @Cached("createMessageNode()") Node messageNode, @Cached("argumentsArray.length") @SuppressWarnings("unused") int foreignCallArgCount) { TruffleObject receiver = lhs.getLHSReceiver(); String member = lhs.getLHSMember(); @@ -710,7 +710,7 @@ public abstract class RCallNode extends RCallBaseNode implements RSyntaxNode, RS @Specialization(replaces = "doCached") @TruffleBoundary protected Object doGeneric(DeferredFunctionValue lhs, Object[] argumentsArray) { - return doCached(lhs, argumentsArray, createMessageNode(argumentsArray.length), argumentsArray.length); + return doCached(lhs, argumentsArray, createMessageNode(), argumentsArray.length); } } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/PrecedenceNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/PrecedenceNode.java index 175ad4453907e29a87c08e34a793560b90d73f1a..20e4ffb876ab5ef310a21440dc5939ace6e67052 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/PrecedenceNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/PrecedenceNode.java @@ -262,7 +262,7 @@ public abstract class PrecedenceNode extends RBaseNode { protected int doJavaIterable(TruffleObject obj, boolean recursive, @Cached("HAS_SIZE.createNode()") Node hasSize, @Cached("READ.createNode()") Node read, - @Cached("createExecute(0).createNode()") Node execute, + @Cached("EXECUTE.createNode()") Node execute, @Cached("createRecursive()") PrecedenceNode precedenceNode, @Cached("create()") Foreign2R foreign2R) { int precedence = -1; diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java index 3efe69b56e1940f2b862392577ecf7a59515672f..393fd3ea883530d7e69d2966daf7d4b7258d8d56 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java @@ -957,7 +957,7 @@ public final class RContext { } private final Node read = Message.READ.createNode(); - private final Node execute = Message.createExecute(1).createNode(); + private final Node execute = Message.EXECUTE.createNode(); @TruffleBoundary public String getPrompt() { diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/DownCallNodeFactory.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/DownCallNodeFactory.java index 0c4ae0ac9a6b07259a48f9b0b4497f0cf79314c9..471d1a6e4ce98593b6aa4228cc15da4a30aefadd 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/DownCallNodeFactory.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/DownCallNodeFactory.java @@ -69,7 +69,7 @@ public abstract class DownCallNodeFactory { try { if (message == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); - message = insert(Message.createExecute(function.getArgumentCount()).createNode()); + message = insert(Message.EXECUTE.createNode()); } if (target == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/InvokeCNode.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/InvokeCNode.java index 9654d6020b36693a7389df10e15126057617f903..220aa43e31a96c26f9653acb70b873ad2d413d29 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/InvokeCNode.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/InvokeCNode.java @@ -81,14 +81,14 @@ public abstract class InvokeCNode extends RBaseNode { return functionGetterNode.execute(address, arity); } - public static Node createExecute(int n) { - return Message.createExecute(n).createNode(); + public static Node createExecute() { + return Message.EXECUTE.createNode(); } @Specialization(guards = {"args.length == cachedArgsLength", "nativeCallInfo.address.asTruffleObject() == cachedAddress"}) protected void invokeCallCached(@SuppressWarnings("unused") NativeCallInfo nativeCallInfo, Object[] args, @SuppressWarnings("unused") @Cached("args.length") int cachedArgsLength, - @Cached("createExecute(cachedArgsLength)") Node executeNode, + @Cached("createExecute()") Node executeNode, @SuppressWarnings("unused") @Cached("nativeCallInfo.address.asTruffleObject()") TruffleObject cachedAddress, @Cached("getFunction(cachedAddress, cachedArgsLength)") TruffleObject cachedFunction) { try { @@ -101,7 +101,7 @@ public abstract class InvokeCNode extends RBaseNode { @Specialization(replaces = "invokeCallCached", limit = "99", guards = "args.length == cachedArgsLength") protected void invokeCallCachedLength(NativeCallInfo nativeCallInfo, Object[] args, @Cached("args.length") int cachedArgsLength, - @Cached("createExecute(cachedArgsLength)") Node executeNode) { + @Cached("createExecute()") Node executeNode) { try { ForeignAccess.sendExecute(executeNode, getFunction(nativeCallInfo.address.asTruffleObject(), cachedArgsLength), args); } catch (InteropException ex) { diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/VectorRFFIWrapper.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/VectorRFFIWrapper.java index 7f40f5f89ab0584c9bdac1dd0090d9b7baf875e0..2561d6b77ac747a31d762ff7e39723d9f74612b0 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/VectorRFFIWrapper.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/VectorRFFIWrapper.java @@ -306,7 +306,7 @@ public final class VectorRFFIWrapper implements TruffleObject { @Resolve(message = "EXECUTE") abstract static class VectorWrapperExecuteNode extends Node { - @Child private Node execMsg = Message.createExecute(0).createNode(); + @Child private Node execMsg = Message.EXECUTE.createNode(); protected Object access(VectorRFFIWrapper receiver, Object[] arguments) { try { diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/interop/ForeignArray2R.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/interop/ForeignArray2R.java index 93b6df62c7595fd18caa3bb0923ad38866cfaa38..70bc27b6922ba135900c3b17aa235bc3dca79e9b 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/interop/ForeignArray2R.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/interop/ForeignArray2R.java @@ -174,7 +174,7 @@ public abstract class ForeignArray2R extends RBaseNode { @Specialization(guards = "isJavaIterable(obj)") @TruffleBoundary protected ForeignArrayData doJavaIterable(TruffleObject obj, @SuppressWarnings("unused") boolean recursive, ForeignArrayData arrayData, @SuppressWarnings("unused") int depth, boolean onlyInspect, - @Cached("createExecute(0).createNode()") Node execute) { + @Cached("EXECUTE.createNode()") Node execute) { try { return getIterableElements(arrayData == null ? new ForeignArrayData() : arrayData, obj, execute, onlyInspect); diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RFunctionMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RFunctionMRTest.java index 6e93b2b5e28c4f15b8a1a5ca491b0cb09a1c0596..79a659d8aa6f904e957618423e3ce870073bb62f 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RFunctionMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RFunctionMRTest.java @@ -54,21 +54,21 @@ public class RFunctionMRTest extends AbstractMRTest { assertSingletonVector(true, ForeignAccess.sendExecute(Message.EXECUTE.createNode(), f)); f = create("function(a) {a}"); - assertSingletonVector("abc", ForeignAccess.sendExecute(Message.createExecute(1).createNode(), f, "abc")); + assertSingletonVector("abc", ForeignAccess.sendExecute(Message.EXECUTE.createNode(), f, "abc")); f = create("function(a) { is.logical(a) }"); - assertSingletonVector(true, ForeignAccess.sendExecute(Message.createExecute(1).createNode(), f, true)); + assertSingletonVector(true, ForeignAccess.sendExecute(Message.EXECUTE.createNode(), f, true)); f = create("function(a) { .fastr.interop.asShort(a) }"); - assertTrue(ForeignAccess.sendExecute(Message.createExecute(1).createNode(), f, 123) instanceof Short); + assertTrue(ForeignAccess.sendExecute(Message.EXECUTE.createNode(), f, 123) instanceof Short); f = create("function(a) { NA }"); - Object naVectorResult = ForeignAccess.sendExecute(Message.createExecute(1).createNode(), f, true); + Object naVectorResult = ForeignAccess.sendExecute(Message.EXECUTE.createNode(), f, true); Object naValue = ForeignAccess.sendRead(Message.READ.createNode(), (TruffleObject) naVectorResult, 0); assertTrue(ForeignAccess.sendIsNull(Message.IS_NULL.createNode(), (TruffleObject) naValue)); f = create("function(a) { NULL }"); - Object nullResult = ForeignAccess.sendExecute(Message.createExecute(1).createNode(), f, true); + Object nullResult = ForeignAccess.sendExecute(Message.EXECUTE.createNode(), f, true); assertTrue(ForeignAccess.sendIsNull(Message.IS_NULL.createNode(), (TruffleObject) nullResult)); }