From dfde06bdef2b0adbf7feb0f831b46a82b2eb68be Mon Sep 17 00:00:00 2001 From: Gero Leinemann <gero.leinemann@oracle.com> Date: Thu, 25 Sep 2014 12:36:20 +0200 Subject: [PATCH] Fixed compilation issues for generic cases of RCallNode PIC --- .../src/com/oracle/truffle/r/nodes/function/RCallNode.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java index 82340bf9e9..3faef1fa51 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java @@ -459,7 +459,10 @@ public abstract class RCallNode extends RNode { } @Override + @SlowPath public Object execute(VirtualFrame frame, RFunction currentFunction) { + CompilerDirectives.transferToInterpreter(); + if (lastCallTarget == currentFunction.getTarget() && lastMatchedArgs != null) { // poor man's caching succeeded - same function: no re-match needed Object[] argsObject = RArguments.create(currentFunction, getSourceSection(), lastMatchedArgs.doExecuteArray(frame), lastMatchedArgs.getNames()); @@ -639,7 +642,7 @@ public abstract class RCallNode extends RNode { @Override @SlowPath public Object execute(VirtualFrame frame, RFunction currentFunction) { - CompilerAsserts.neverPartOfCompilation(); + CompilerDirectives.transferToInterpreter(); // Function and arguments may change every call: Flatt'n'Match on SlowPath! :-/ UnrolledVariadicArguments argsValuesAndNames = suppliedArgs.executeFlatten(frame); -- GitLab