From 9bb8a7e11eb57d7f68667efc0226a2b061361974 Mon Sep 17 00:00:00 2001
From: Lukas Stadler <lukas.stadler@oracle.com>
Date: Tue, 31 Jan 2017 14:06:28 +0100
Subject: [PATCH] =?UTF-8?q?AccessSlotNode=20and=20UpdateSlotNode=20don?=
 =?UTF-8?q?=E2=80=99t=20need=20to=20be=20RNodes?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../truffle/r/library/methods/MethodsListDispatch.java     | 2 +-
 .../src/com/oracle/truffle/r/library/methods/Slot.java     | 4 ++--
 .../src/com/oracle/truffle/r/nodes/builtin/base/Slot.java  | 2 +-
 .../oracle/truffle/r/nodes/builtin/base/UpdateSlot.java    | 2 +-
 .../com/oracle/truffle/r/nodes/access/AccessSlotNode.java  | 7 ++-----
 .../com/oracle/truffle/r/nodes/access/UpdateSlotNode.java  | 7 ++-----
 .../src/com/oracle/truffle/r/nodes/objects/NewObject.java  | 6 +++---
 7 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/methods/MethodsListDispatch.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/methods/MethodsListDispatch.java
index 3e8b28ed97..0fa12c99f3 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/methods/MethodsListDispatch.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/methods/MethodsListDispatch.java
@@ -202,7 +202,7 @@ public class MethodsListDispatch {
 
         private AccessSlotNode initAccessSlotNode() {
             if (accessSlotNode == null) {
-                accessSlotNode = insert(AccessSlotNodeGen.create(true, null, null));
+                accessSlotNode = insert(AccessSlotNodeGen.create(true));
             }
             return accessSlotNode;
         }
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/methods/Slot.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/methods/Slot.java
index 897a0a18f7..b1bc33c799 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/methods/Slot.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/methods/Slot.java
@@ -34,7 +34,7 @@ public class Slot {
 
     public abstract static class R_getSlot extends RExternalBuiltinNode.Arg2 {
 
-        @Child private AccessSlotNode accessSlotNode = AccessSlotNodeGen.create(false, null, null);
+        @Child private AccessSlotNode accessSlotNode = AccessSlotNodeGen.create(false);
         @Child private CastToAttributableNode castAttributable = CastToAttributableNodeGen.create(true, true, true);
 
         @Override
@@ -62,7 +62,7 @@ public class Slot {
 
     public abstract static class R_setSlot extends RExternalBuiltinNode.Arg3 {
 
-        @Child private UpdateSlotNode updateSlotNode = UpdateSlotNodeGen.create(null, null, null);
+        @Child private UpdateSlotNode updateSlotNode = UpdateSlotNodeGen.create();
         @Child private CastToAttributableNode castAttributable = CastToAttributableNodeGen.create(true, true, true);
 
         @Override
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Slot.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Slot.java
index 086d7d1fae..a01de6f6ad 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Slot.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Slot.java
@@ -36,7 +36,7 @@ import com.oracle.truffle.r.runtime.data.RSymbol;
 @RBuiltin(name = "@", kind = PRIMITIVE, parameterNames = {"", ""}, nonEvalArgs = 1, behavior = COMPLEX)
 public abstract class Slot extends RBuiltinNode {
 
-    @Child private AccessSlotNode accessSlotNode = AccessSlotNodeGen.create(true, null, null);
+    @Child private AccessSlotNode accessSlotNode = AccessSlotNodeGen.create(true);
 
     @Override
     protected void createCasts(CastBuilder casts) {
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateSlot.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateSlot.java
index d97465df82..e97872b6a2 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateSlot.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateSlot.java
@@ -51,7 +51,7 @@ public abstract class UpdateSlot extends RBuiltinNode {
     @CompilationFinal private RFunction checkSlotAssignFunction;
     @Child private ClassHierarchyNode objClassHierarchy;
     @Child private ClassHierarchyNode valClassHierarchy;
-    @Child private UpdateSlotNode updateSlotNode = com.oracle.truffle.r.nodes.access.UpdateSlotNodeGen.create(null, null, null);
+    @Child private UpdateSlotNode updateSlotNode = com.oracle.truffle.r.nodes.access.UpdateSlotNodeGen.create();
     @Child private ReadVariableNode checkAtAssignmentFind = ReadVariableNode.createFunctionLookup(RSyntaxNode.INTERNAL, "checkAtAssignment");
     @Child private CallRFunctionNode checkAtAssignmentCall;
     private final ConditionProfile cached = ConditionProfile.createBinaryProfile();
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/AccessSlotNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/AccessSlotNode.java
index 8d21162716..c35d7aca70 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/AccessSlotNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/AccessSlotNode.java
@@ -15,8 +15,6 @@ package com.oracle.truffle.r.nodes.access;
 import com.oracle.truffle.api.CompilerDirectives;
 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
 import com.oracle.truffle.api.dsl.Cached;
-import com.oracle.truffle.api.dsl.NodeChild;
-import com.oracle.truffle.api.dsl.NodeChildren;
 import com.oracle.truffle.api.dsl.Specialization;
 import com.oracle.truffle.api.profiles.BranchProfile;
 import com.oracle.truffle.r.nodes.RASTUtils;
@@ -39,15 +37,14 @@ import com.oracle.truffle.r.runtime.data.RStringVector;
 import com.oracle.truffle.r.runtime.data.RSymbol;
 import com.oracle.truffle.r.runtime.data.model.RAbstractVector;
 import com.oracle.truffle.r.runtime.env.REnvironment;
-import com.oracle.truffle.r.runtime.nodes.RNode;
+import com.oracle.truffle.r.runtime.nodes.RBaseNode;
 
 // Transcribed from src/main/attrib.c file (R_do_slot function)
 
 /**
  * Perform a slot access. This node represents the {@code @} operator in R.
  */
-@NodeChildren({@NodeChild(value = "object", type = RNode.class), @NodeChild(value = "name", type = RNode.class)})
-public abstract class AccessSlotNode extends RNode {
+public abstract class AccessSlotNode extends RBaseNode {
 
     public abstract Object executeAccess(Object o, String name);
 
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/UpdateSlotNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/UpdateSlotNode.java
index 9f5e173e2d..4cd1ffa866 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/UpdateSlotNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/UpdateSlotNode.java
@@ -14,8 +14,6 @@ package com.oracle.truffle.r.nodes.access;
 
 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
 import com.oracle.truffle.api.dsl.Cached;
-import com.oracle.truffle.api.dsl.NodeChild;
-import com.oracle.truffle.api.dsl.NodeChildren;
 import com.oracle.truffle.api.dsl.Specialization;
 import com.oracle.truffle.r.nodes.RASTUtils;
 import com.oracle.truffle.r.nodes.attributes.InitAttributesNode;
@@ -28,12 +26,11 @@ import com.oracle.truffle.r.runtime.data.RAttributable;
 import com.oracle.truffle.r.runtime.data.RFunction;
 import com.oracle.truffle.r.runtime.data.RNull;
 import com.oracle.truffle.r.runtime.env.REnvironment;
-import com.oracle.truffle.r.runtime.nodes.RNode;
+import com.oracle.truffle.r.runtime.nodes.RBaseNode;
 
 // Transcribed from src/main/attrib.c file (R_do_slot_assign function)
 
-@NodeChildren({@NodeChild(value = "object", type = RNode.class), @NodeChild(value = "name", type = RNode.class), @NodeChild(value = "value", type = RNode.class)})
-public abstract class UpdateSlotNode extends RNode {
+public abstract class UpdateSlotNode extends RBaseNode {
 
     public abstract Object executeUpdate(Object object, String name, Object value);
 
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/objects/NewObject.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/objects/NewObject.java
index 747246759b..59f2ef25c1 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/objects/NewObject.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/objects/NewObject.java
@@ -33,9 +33,9 @@ import com.oracle.truffle.r.runtime.data.RS4Object;
 // transcribed from src/main/objects.c
 public abstract class NewObject extends RExternalBuiltinNode.Arg1 {
 
-    @Child private AccessSlotNode accessSlotVirtual = AccessSlotNodeGen.create(true, null, null);
-    @Child private AccessSlotNode accessSlotClassName = AccessSlotNodeGen.create(true, null, null);
-    @Child private AccessSlotNode accessSlotPrototypeName = AccessSlotNodeGen.create(true, null, null);
+    @Child private AccessSlotNode accessSlotVirtual = AccessSlotNodeGen.create(true);
+    @Child private AccessSlotNode accessSlotClassName = AccessSlotNodeGen.create(true);
+    @Child private AccessSlotNode accessSlotPrototypeName = AccessSlotNodeGen.create(true);
     @Child private DuplicateNode duplicate = DuplicateNodeGen.create(true);
     @Child private GetFixedAttributeNode pckgAttrAccess = GetFixedAttributeNode.create(RRuntime.PCKG_ATTR_KEY);
     @Child private SetClassAttributeNode setClassAttrNode;
-- 
GitLab