From 2f54e6ddf0ed05200b9353e3b297893e3d10f209 Mon Sep 17 00:00:00 2001 From: Lukas Stadler <lukas.stadler@oracle.com> Date: Wed, 20 Aug 2014 11:15:16 +0200 Subject: [PATCH] remove unnecessary use of AbsentFrameSlotNode in ReadVariableNonFrame --- .../r/nodes/access/ReadVariableNode.java | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/ReadVariableNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/ReadVariableNode.java index 279df5eb5d..3cc29b032c 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/ReadVariableNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/ReadVariableNode.java @@ -31,7 +31,6 @@ import com.oracle.truffle.api.frame.*; import com.oracle.truffle.api.nodes.*; import com.oracle.truffle.api.source.*; import com.oracle.truffle.r.nodes.*; -import com.oracle.truffle.r.nodes.access.FrameSlotNode.AbsentFrameSlotNode; import com.oracle.truffle.r.nodes.access.ReadVariableNodeFactory.BuiltinFunctionVariableNodeFactory; import com.oracle.truffle.r.nodes.access.ReadVariableNodeFactory.ReadAndCopySuperVariableNodeFactory; import com.oracle.truffle.r.nodes.access.ReadVariableNodeFactory.ReadLocalVariableNodeFactory; @@ -336,31 +335,23 @@ public abstract class ReadVariableNode extends RNode implements VisibilityContro @Child private ReadVariableNode readNode; @Child private UnresolvedReadVariableNode unresolvedNode; - @Children private final AbsentFrameSlotNode[] absentFrameSlotNodes; + private final Assumption[] absentFrameSlotAssumptions; private final Symbol symbol; ReadVariableNonFrameNode(List<Assumption> assumptions, ReadVariableNode readNode, UnresolvedReadVariableNode unresolvedNode, Symbol symbol) { this.readNode = readNode; this.unresolvedNode = unresolvedNode; - this.absentFrameSlotNodes = wrapAssumptions(assumptions); + this.absentFrameSlotAssumptions = assumptions.toArray(new Assumption[assumptions.size()]); this.symbol = symbol; } - private AbsentFrameSlotNode[] wrapAssumptions(List<Assumption> assumptions) { - AbsentFrameSlotNode[] nodes = new AbsentFrameSlotNode[assumptions.size()]; - for (int i = 0; i < assumptions.size(); i++) { - nodes[i] = new AbsentFrameSlotNode(assumptions.get(i), symbol); - } - return nodes; - } - @ExplodeLoop @Override public Object execute(VirtualFrame frame) { controlVisibility(); try { - for (int i = 0; i < absentFrameSlotNodes.length; i++) { - absentFrameSlotNodes[i].getAssumption().check(); + for (Assumption assumption : absentFrameSlotAssumptions) { + assumption.check(); } } catch (InvalidAssumptionException e) { return replace(unresolvedNode).execute(frame); -- GitLab