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