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);
                         }