diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/fastpaths/IsElementFastPath.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/fastpaths/IsElementFastPath.java index 01be68a9120f2a3f3736aa1a3299477f2a2115f6..6a5a881ad2e592db19a7de720e4e0fdcc4c16a4a 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/fastpaths/IsElementFastPath.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/fastpaths/IsElementFastPath.java @@ -29,6 +29,7 @@ import com.oracle.truffle.api.profiles.BranchProfile; import com.oracle.truffle.api.profiles.ConditionProfile; import com.oracle.truffle.r.runtime.RRuntime; import com.oracle.truffle.r.runtime.VisibilityController; +import com.oracle.truffle.r.runtime.context.RContext; import com.oracle.truffle.r.runtime.data.RIntSequence; import com.oracle.truffle.r.runtime.data.model.RAbstractDoubleVector; import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector; @@ -42,7 +43,7 @@ public abstract class IsElementFastPath extends RFastPathNode implements Visibil protected Byte iselementOne(RAbstractStringVector el, RAbstractStringVector set, // @Cached("create()") BranchProfile trueProfile, // @Cached("create()") BranchProfile falseProfile) { - controlVisibility(); + RContext.getInstance().setVisible(true); String element = el.getDataAt(0); int length = set.getLength(); for (int i = 0; i < length; i++) { @@ -57,7 +58,7 @@ public abstract class IsElementFastPath extends RFastPathNode implements Visibil @Specialization protected Byte iselementOne(double el, double set) { - controlVisibility(); + RContext.getInstance().setVisible(true); return RRuntime.asLogical(el == set); } @@ -65,7 +66,7 @@ public abstract class IsElementFastPath extends RFastPathNode implements Visibil protected Byte iselementOne(RAbstractDoubleVector el, RAbstractDoubleVector set, // @Cached("create()") BranchProfile trueProfile, // @Cached("create()") BranchProfile falseProfile) { - controlVisibility(); + RContext.getInstance().setVisible(true); double element = el.getDataAt(0); int length = set.getLength(); for (int i = 0; i < length; i++) { @@ -81,7 +82,7 @@ public abstract class IsElementFastPath extends RFastPathNode implements Visibil @Specialization(guards = "el.getLength() == 1") protected Byte isElementOneSequence(RAbstractDoubleVector el, RIntSequence set, // @Cached("createBinaryProfile()") ConditionProfile profile) { - controlVisibility(); + RContext.getInstance().setVisible(true); double element = el.getDataAt(0); return RRuntime.asLogical(profile.profile(element >= set.getStart() && element <= set.getEnd())); } @@ -91,7 +92,7 @@ public abstract class IsElementFastPath extends RFastPathNode implements Visibil @Cached("create()") NACheck na, // @Cached("create()") BranchProfile trueProfile, // @Cached("create()") BranchProfile falseProfile) { - controlVisibility(); + RContext.getInstance().setVisible(true); double element = el.getDataAt(0); int length = set.getLength(); na.enable(set); diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/ConstantNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/ConstantNode.java index ae23ed865a3cd740638ecaa3feda691e0bcc2cd3..88862767187928c60568ee0f94894ddb55823c2d 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/ConstantNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/ConstantNode.java @@ -28,6 +28,7 @@ import com.oracle.truffle.api.source.SourceSection; import com.oracle.truffle.r.runtime.RRuntime; import com.oracle.truffle.r.runtime.RSerialize; import com.oracle.truffle.r.runtime.VisibilityController; +import com.oracle.truffle.r.runtime.context.RContext; import com.oracle.truffle.r.runtime.data.RArgsValuesAndNames; import com.oracle.truffle.r.runtime.data.RMissing; import com.oracle.truffle.r.runtime.data.RPromise; @@ -62,7 +63,7 @@ public abstract class ConstantNode extends RSourceSectionNode implements RSyntax @Override public final Object execute(VirtualFrame frame) { - controlVisibility(); + RContext.getInstance().setVisible(true); return getValue(); } @@ -119,7 +120,7 @@ public abstract class ConstantNode extends RSourceSectionNode implements RSyntax @Override public double executeDouble(VirtualFrame frame) { - controlVisibility(); + RContext.getInstance().setVisible(true); return doubleValue; } } @@ -142,7 +143,7 @@ public abstract class ConstantNode extends RSourceSectionNode implements RSyntax @Override public byte executeByte(VirtualFrame frame) { - controlVisibility(); + RContext.getInstance().setVisible(true); return logicalValue; } } @@ -165,7 +166,7 @@ public abstract class ConstantNode extends RSourceSectionNode implements RSyntax @Override public int executeInteger(VirtualFrame frame) { - controlVisibility(); + RContext.getInstance().setVisible(true); return intValue; } } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/ReadVariadicComponentNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/ReadVariadicComponentNode.java index 3c16440037b5a4fbd62c82f9d36bdddc612c1049..6df33e30b46bbcb214e9e41a868946ad55e00423 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/ReadVariadicComponentNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/ReadVariadicComponentNode.java @@ -33,6 +33,7 @@ import com.oracle.truffle.r.runtime.RError; import com.oracle.truffle.r.runtime.RInternalError; import com.oracle.truffle.r.runtime.RType; import com.oracle.truffle.r.runtime.VisibilityController; +import com.oracle.truffle.r.runtime.context.RContext; import com.oracle.truffle.r.runtime.data.RArgsValuesAndNames; import com.oracle.truffle.r.runtime.data.RMissing; import com.oracle.truffle.r.runtime.data.RPromise; @@ -62,7 +63,7 @@ public class ReadVariadicComponentNode extends RSourceSectionNode implements RSy @Override public Object execute(VirtualFrame frame) { - controlVisibility(); + RContext.getInstance().setVisible(true); Object args = lookup.execute(frame); if (args == null) { diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/RemoveAndAnswerNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/RemoveAndAnswerNode.java index 67055dcc472e92cd13f779510e2aa6a993994aec..3d7a39838b550f50ff798218406dd5039c3e9b6e 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/RemoveAndAnswerNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/RemoveAndAnswerNode.java @@ -32,6 +32,7 @@ import com.oracle.truffle.r.nodes.access.RemoveAndAnswerNodeFactory.RemoveAndAns import com.oracle.truffle.r.runtime.RError; import com.oracle.truffle.r.runtime.RInternalError; import com.oracle.truffle.r.runtime.VisibilityController; +import com.oracle.truffle.r.runtime.context.RContext; import com.oracle.truffle.r.runtime.env.frame.FrameSlotChangeMonitor; import com.oracle.truffle.r.runtime.nodes.RNode; @@ -85,11 +86,6 @@ public abstract class RemoveAndAnswerNode extends RNode { this.slot = slot; } - @Override - public boolean getVisibility() { - return false; - } - protected boolean isObject(VirtualFrame frame) { return frame.isObject(slot); } @@ -108,7 +104,7 @@ public abstract class RemoveAndAnswerNode extends RNode { @Specialization(guards = "isObject(frame)") protected Object doObject(VirtualFrame frame) { - controlVisibility(); + RContext.getInstance().setVisible(false); Object result; try { result = frame.getObject(slot); @@ -123,7 +119,7 @@ public abstract class RemoveAndAnswerNode extends RNode { @Specialization(guards = "isInt(frame)") protected int doInt(VirtualFrame frame) { - controlVisibility(); + RContext.getInstance().setVisible(false); int result; try { result = frame.getInt(slot); @@ -138,7 +134,7 @@ public abstract class RemoveAndAnswerNode extends RNode { @Specialization(guards = "isDouble(frame)") protected double doDouble(VirtualFrame frame) { - controlVisibility(); + RContext.getInstance().setVisible(false); double result; try { result = frame.getDouble(slot); @@ -153,7 +149,7 @@ public abstract class RemoveAndAnswerNode extends RNode { @Specialization(guards = "isByte(frame)") protected byte doByte(VirtualFrame frame) { - controlVisibility(); + RContext.getInstance().setVisible(false); byte result; try { result = frame.getByte(slot); diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/ReadVariableNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/ReadVariableNode.java index 1bf4c9fcea7536b40a4f6823587a97eaded66f77..283c3c5eaa8a2a03f8e7160cf1aca08d445359fd 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/ReadVariableNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/ReadVariableNode.java @@ -59,6 +59,7 @@ import com.oracle.truffle.r.runtime.RSerialize; import com.oracle.truffle.r.runtime.RType; import com.oracle.truffle.r.runtime.StableValue; import com.oracle.truffle.r.runtime.VisibilityController; +import com.oracle.truffle.r.runtime.context.RContext; import com.oracle.truffle.r.runtime.data.RArgsValuesAndNames; import com.oracle.truffle.r.runtime.data.RFunction; import com.oracle.truffle.r.runtime.data.RMissing; @@ -197,7 +198,7 @@ public final class ReadVariableNode extends RSourceSectionNode implements RSynta private Object executeInternal(VirtualFrame frame, Frame variableFrame) { if (kind != ReadKind.Silent) { - controlVisibility(); + RContext.getInstance().setVisible(true); } Object result; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/BlockNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/BlockNode.java index a153a33b363133a7b4a7b240049c00b35132e476..881151eff48e0ee0624c0ee5b7cd0b8fa8bb6ae1 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/BlockNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/BlockNode.java @@ -30,6 +30,7 @@ import com.oracle.truffle.r.nodes.RASTUtils; import com.oracle.truffle.r.runtime.ArgumentsSignature; import com.oracle.truffle.r.runtime.RSerialize; import com.oracle.truffle.r.runtime.VisibilityController; +import com.oracle.truffle.r.runtime.context.RContext; import com.oracle.truffle.r.runtime.data.RNull; import com.oracle.truffle.r.runtime.env.REnvironment; import com.oracle.truffle.r.runtime.gnur.SEXPTYPE; @@ -61,7 +62,7 @@ public final class BlockNode extends RSourceSectionNode implements RSyntaxNode, @Override @ExplodeLoop public Object execute(VirtualFrame frame) { - controlVisibility(); + RContext.getInstance().setVisible(true); Object lastResult = RNull.instance; for (int i = 0; i < sequence.length; i++) { lastResult = sequence[i].execute(frame); diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/UseMethodInternalNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/UseMethodInternalNode.java index 4eeeb55e4fcaa10a1756273493decc890a0b9322..33503be2f0d16e7e3adc83bb901b9b8e9a67cac5 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/UseMethodInternalNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/UseMethodInternalNode.java @@ -18,6 +18,7 @@ import com.oracle.truffle.r.runtime.FastROptions; import com.oracle.truffle.r.runtime.RArguments.S3Args; import com.oracle.truffle.r.runtime.RInternalError; import com.oracle.truffle.r.runtime.VisibilityController; +import com.oracle.truffle.r.runtime.context.RContext; import com.oracle.truffle.r.runtime.data.RStringVector; import com.oracle.truffle.r.runtime.nodes.RNode; @@ -39,7 +40,7 @@ public final class UseMethodInternalNode extends RNode implements VisibilityCont } public Object execute(VirtualFrame frame, RStringVector type, Object[] arguments) { - controlVisibility(); + RContext.getInstance().setVisible(true); Result lookupResult = lookup.execute(frame, generic, type, null, frame.materialize(), null); if (wrap) { assert arguments != null;