Skip to content
Snippets Groups Projects
Commit 2cda4baf authored by Lukas Stadler's avatar Lukas Stadler
Browse files

set visibility in FunctionExpressionNode

parent e7c9a51f
No related branches found
No related tags found
No related merge requests found
...@@ -32,6 +32,7 @@ import com.oracle.truffle.r.nodes.RASTUtils; ...@@ -32,6 +32,7 @@ import com.oracle.truffle.r.nodes.RASTUtils;
import com.oracle.truffle.r.nodes.RRootNode; import com.oracle.truffle.r.nodes.RRootNode;
import com.oracle.truffle.r.nodes.function.PromiseHelperNode.PromiseDeoptimizeFrameNode; import com.oracle.truffle.r.nodes.function.PromiseHelperNode.PromiseDeoptimizeFrameNode;
import com.oracle.truffle.r.nodes.function.opt.EagerEvalHelper; import com.oracle.truffle.r.nodes.function.opt.EagerEvalHelper;
import com.oracle.truffle.r.nodes.function.visibility.SetVisibilityNode;
import com.oracle.truffle.r.nodes.instrumentation.RInstrumentation; import com.oracle.truffle.r.nodes.instrumentation.RInstrumentation;
import com.oracle.truffle.r.runtime.ArgumentsSignature; import com.oracle.truffle.r.runtime.ArgumentsSignature;
import com.oracle.truffle.r.runtime.builtins.FastPathFactory; import com.oracle.truffle.r.runtime.builtins.FastPathFactory;
...@@ -49,6 +50,8 @@ public final class FunctionExpressionNode extends RSourceSectionNode implements ...@@ -49,6 +50,8 @@ public final class FunctionExpressionNode extends RSourceSectionNode implements
return new FunctionExpressionNode(src, callTarget); return new FunctionExpressionNode(src, callTarget);
} }
@Child private SetVisibilityNode visibility = SetVisibilityNode.create();
@CompilationFinal private RootCallTarget callTarget; @CompilationFinal private RootCallTarget callTarget;
private final PromiseDeoptimizeFrameNode deoptFrameNode; private final PromiseDeoptimizeFrameNode deoptFrameNode;
@CompilationFinal private FastPathFactory fastPath; @CompilationFinal private FastPathFactory fastPath;
...@@ -68,6 +71,7 @@ public final class FunctionExpressionNode extends RSourceSectionNode implements ...@@ -68,6 +71,7 @@ public final class FunctionExpressionNode extends RSourceSectionNode implements
@Override @Override
public RFunction executeFunction(VirtualFrame frame) { public RFunction executeFunction(VirtualFrame frame) {
visibility.execute(frame, true);
MaterializedFrame matFrame = frame.materialize(); MaterializedFrame matFrame = frame.materialize();
if (deoptFrameNode != null) { if (deoptFrameNode != null) {
// Deoptimize every promise which is now in this frame, as it might leave it's stack // Deoptimize every promise which is now in this frame, as it might leave it's stack
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment