Mercurial > hg > graal-compiler
comparison graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/call/SLAbstractDispatchNode.java @ 13836:64c77f0577bb
More documentation and improvements of Simple Language
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Thu, 30 Jan 2014 17:53:27 -0800 |
parents | b16ec83edc73 |
children | 89ac75425681 |
comparison
equal
deleted
inserted
replaced
13835:67e4e7f56911 | 13836:64c77f0577bb |
---|---|
26 import com.oracle.truffle.api.nodes.*; | 26 import com.oracle.truffle.api.nodes.*; |
27 import com.oracle.truffle.sl.runtime.*; | 27 import com.oracle.truffle.sl.runtime.*; |
28 | 28 |
29 /** | 29 /** |
30 * Before a call is executed the first time, the dispatch node is a | 30 * Before a call is executed the first time, the dispatch node is a |
31 * {@link SLUninitializedDispatchNode}. During execution, the call is optimized using a polymprphic | 31 * {@link SLUninitializedDispatchNode}. During execution, the call is optimized using a polymorphic |
32 * inline cache, i.e., a chain of {@link SLDirectDispatchNode}s. The chain is terminated by a | 32 * inline cache, i.e., a chain of {@link SLDirectDispatchNode}s. The chain is terminated by a |
33 * {@link SLUninitializedDispatchNode}. If the chain gets too long (longer than | 33 * {@link SLUninitializedDispatchNode}. If the chain gets too long (longer than |
34 * {@link #INLINE_CACHE_SIZE}), i.e., if the call is too polymorphic, the whole chain is replaced by | 34 * {@link #INLINE_CACHE_SIZE}), i.e., if the call is too polymorphic, the whole chain is replaced by |
35 * a single {@link SLGenericDispatchNode}. All this rewriting happens on runtime, based on profiling | 35 * a single {@link SLGenericDispatchNode}. All this rewriting happens on runtime, based on profiling |
36 * feedback of the actual execution. | 36 * feedback of the actual execution. |