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.