# HG changeset patch # User Christian Wimmer # Date 1448126829 28800 # Node ID 16b59063cfb91ae37fd943be40e5b99644cd0a4f # Parent fd53ccebb10b21af953de2da4340a7d17b85e5ed Method with VirtualFrame parameter must not be annotated with @TruffleBoundary diff -r fd53ccebb10b -r 16b59063cfb9 truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLLanguage.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLLanguage.java Fri Nov 20 18:02:49 2015 +0100 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLLanguage.java Sat Nov 21 09:27:09 2015 -0800 @@ -50,7 +50,7 @@ import java.util.List; import com.oracle.truffle.api.CallTarget; -import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.RootCallTarget; import com.oracle.truffle.api.Truffle; import com.oracle.truffle.api.TruffleLanguage; @@ -439,9 +439,16 @@ failed[0] = e; } RootNode rootNode = new RootNode(SLLanguage.class, null, null) { - @TruffleBoundary @Override public Object execute(VirtualFrame frame) { + /* + * We do not expect this node to be part of anything that gets compiled for + * performance reason. It can be compiled though when doing compilation stress + * testing. But in this case it is fine to just deoptimize. Note that we cannot + * declare the method as @TruffleBoundary because it has a VirtualFrame parameter. + */ + CompilerDirectives.transferToInterpreter(); + if (failed[0] instanceof RuntimeException) { throw (RuntimeException) failed[0]; }