Mercurial > hg > truffle
changeset 22406:16b59063cfb9
Method with VirtualFrame parameter must not be annotated with @TruffleBoundary
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Sat, 21 Nov 2015 09:27:09 -0800 |
parents | fd53ccebb10b |
children | a6a1efa177d2 |
files | truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLLanguage.java |
diffstat | 1 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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]; }