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