From b4361fcccfe451070610584d1bbcb13f8885005b Mon Sep 17 00:00:00 2001 From: stepan <stepan.sindelar@oracle.com> Date: Mon, 12 Jun 2017 10:40:20 +0200 Subject: [PATCH] Fix: DoCall should not call transferToInterpreter() when the call is not simple. --- .../src/com/oracle/truffle/r/nodes/builtin/base/DoCall.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/DoCall.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/DoCall.java index ce6d340ec5..5ad611a303 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/DoCall.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/DoCall.java @@ -30,7 +30,6 @@ import static com.oracle.truffle.r.runtime.builtins.RBehavior.COMPLEX; import java.util.Arrays; -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.Specialization; @@ -184,12 +183,10 @@ public abstract class DoCall extends RBuiltinNode.Arg4 implements InternalRSynta protected static boolean isSimple(RFunction function, RList args) { RBuiltinDescriptor builtin = function.getRBuiltin(); if (builtin != null && builtin.getDispatch() != RDispatch.DEFAULT) { - CompilerDirectives.transferToInterpreter(); return false; } for (int i = 0; i < args.getLength(); i++) { if (args.getDataAt(i) instanceof RLanguage) { - CompilerDirectives.transferToInterpreter(); // Note: language is tricky because of formulae, which are language that is // really not meant to be evaluated again in a different frame than the one were // the were evaluated for the first time. The solution should be to clone the -- GitLab