# HG changeset patch # User Christian Humer # Date 1394058816 -3600 # Node ID cd4595e8a685660386a2243c77bccb4675f1f033 # Parent ca92db718c74232f0c0fbf635f5362f57fb6fb95 Truffle: added notification from callee to callers in the CallNode. diff -r ca92db718c74 -r cd4595e8a685 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/CallNode.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/CallNode.java Wed Mar 05 23:33:25 2014 +0100 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/CallNode.java Wed Mar 05 23:33:36 2014 +0100 @@ -114,13 +114,17 @@ registerCallTarget((CallNode) newNode); } - protected final void registerCallTarget(CallNode newNode) { + protected static final void registerCallTarget(CallNode newNode) { RootNode newRoot = newNode.getCurrentRootNode(); if (newRoot != null) { newRoot.addCachedCallNode(newNode); } } + protected void notifyCallNodeAdded() { + + } + /** * Returns the {@link RootNode} associated with {@link CallTarget} returned by * {@link #getCurrentCallTarget()}. @@ -140,7 +144,7 @@ * @deprecated always returns true now. */ @Deprecated - public final boolean isInlinable() { + public boolean isInlinable() { return true; } diff -r ca92db718c74 -r cd4595e8a685 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/RootNode.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/RootNode.java Wed Mar 05 23:33:25 2014 +0100 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/RootNode.java Wed Mar 05 23:33:36 2014 +0100 @@ -128,7 +128,13 @@ /* Internal API. Do not use. */ void addCachedCallNode(CallNode callSite) { - this.cachedCallNodes.add(callSite); + if (cachedCallNodes.add(callSite)) { + for (CallNode callNode : cachedCallNodes) { + if (callSite != callNode) { + callNode.notifyCallNodeAdded(); + } + } + } } /* Internal API. Do not use. */