Mercurial > hg > truffle
changeset 22307:d9b3e229ee46
Truffle/Instrumentation: fix new EvalInstrument kind so that it works correctly in optimized environment
author | Michael Van De Vanter <michael.van.de.vanter@oracle.com> |
---|---|
date | Tue, 13 Oct 2015 16:22:31 -0400 |
parents | 8bc57c7bbf88 |
children | 78ebf3cda0b5 |
files | truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeInstrument.java |
diffstat | 1 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeInstrument.java Tue Oct 13 14:13:27 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeInstrument.java Tue Oct 13 16:22:31 2015 -0400 @@ -28,9 +28,9 @@ import com.oracle.truffle.api.CallTarget; import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.Truffle; import com.oracle.truffle.api.TruffleLanguage; import com.oracle.truffle.api.frame.VirtualFrame; -import com.oracle.truffle.api.impl.DefaultDirectCallNode; import com.oracle.truffle.api.nodes.DirectCallNode; import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.NodeCost; @@ -394,7 +394,8 @@ try { final CallTarget callTarget = Instrumenter.ACCESSOR.parse(languageClass, source, node, NO_ARGS); if (callTarget != null) { - callNode = new DefaultDirectCallNode(callTarget); // force inlining? + callNode = Truffle.getRuntime().createDirectCallNode(callTarget); + callNode.forceInlining(); adoptChildren(); EvalInstrument.this.probe.invalidateProbeUnchanged(); } @@ -406,7 +407,7 @@ } if (callNode != null) { try { - final Object result = callNode.call(vFrame, null); + final Object result = callNode.call(vFrame, NO_ARGS); if (evalListener != null) { evalListener.onExecution(node, vFrame, result); }