From 90cb75f14060fb4f4c93cd140bb3384eddd98e13 Mon Sep 17 00:00:00 2001
From: stepan <stepan.sindelar@oracle.com>
Date: Fri, 10 Aug 2018 22:23:16 +0200
Subject: [PATCH] Fix more Truffle API deprecation warnings

---
 .../r/ffi/impl/llvm/TruffleLLVM_Call.java        | 14 +++++++-------
 .../r/ffi/impl/llvm/TruffleLLVM_NativeDLL.java   |  8 ++++----
 .../impl/llvm/TruffleLLVM_UpCallsRFFIImpl.java   |  2 +-
 .../r/ffi/impl/llvm/TruffleLLVM_UserRng.java     |  4 ++--
 .../truffle/r/ffi/impl/nfi/TruffleNFI_C.java     |  2 +-
 .../truffle/r/ffi/impl/nfi/TruffleNFI_Call.java  | 14 +++++++-------
 .../r/ffi/impl/nfi/TruffleNFI_Context.java       | 12 ++++++------
 .../ffi/impl/nfi/TruffleNFI_UpCallsRFFIImpl.java |  2 +-
 .../r/ffi/impl/nfi/TruffleNFI_UserRng.java       |  4 ++--
 .../truffle/r/nodes/builtin/base/Unlist.java     |  2 +-
 .../r/nodes/access/vector/ExtractVectorNode.java |  2 +-
 .../r/nodes/access/vector/ReplaceVectorNode.java |  2 +-
 .../oracle/truffle/r/nodes/control/ForNode.java  |  4 ++--
 .../truffle/r/nodes/control/RLengthNode.java     |  2 +-
 .../truffle/r/nodes/function/RCallNode.java      | 16 ++++++++--------
 .../truffle/r/nodes/unary/PrecedenceNode.java    |  2 +-
 .../truffle/r/runtime/context/RContext.java      |  2 +-
 .../r/runtime/ffi/DownCallNodeFactory.java       |  2 +-
 .../truffle/r/runtime/ffi/InvokeCNode.java       |  8 ++++----
 .../truffle/r/runtime/ffi/VectorRFFIWrapper.java |  2 +-
 .../r/runtime/interop/ForeignArray2R.java        |  2 +-
 .../r/test/engine/interop/RFunctionMRTest.java   | 10 +++++-----
 22 files changed, 59 insertions(+), 59 deletions(-)

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 eea56a31cd..c83f50b2f2 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 31b5a53eb6..b045ff2967 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 cebd2d02c8..a7dc6e740a 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 002ef9b2cc..e24aa73c0e 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 818d21ea29..8ff484ec8a 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 e13209ce9f..3f03266537 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 0033bd5e6c..5e7b679d41 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 b6b5d10bf4..70c2794ff8 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 a27358019d..dc0db2bc07 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 a42a49287a..a6301008fa 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 4b86ed3e3e..be3d7ac14d 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 f9662130c9..cec46cc226 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 b1e058386a..24440ed487 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 39b77c067c..855da5167c 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 e505ec8047..43ea373e11 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 175ad44539..20e4ffb876 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 3efe69b56e..393fd3ea88 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 0c4ae0ac9a..471d1a6e4c 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 9654d6020b..220aa43e31 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 7f40f5f89a..2561d6b77a 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 93b6df62c7..70bc27b692 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 6e93b2b5e2..79a659d8aa 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));
     }
 
-- 
GitLab