public class DefaultTruffleSplittingStrategyNew extends Object implements TruffleSplittingStrategy
Modifier and Type | Field and Description |
---|---|
private TruffleStamp |
argumentStamp |
private OptimizedDirectCallNode |
call |
private int |
splitStart |
private boolean |
splittingEnabled |
private boolean |
splittingForced |
Constructor and Description |
---|
DefaultTruffleSplittingStrategyNew(OptimizedDirectCallNode call) |
Modifier and Type | Method and Description |
---|---|
void |
afterCall(Object returnValue) |
void |
beforeCall(Object[] arguments) |
private static void |
cleanup(OptimizedCallTarget currentTarget) |
private static void |
disposeTarget(OptimizedCallTarget removed) |
void |
forceSplitting() |
private static boolean |
isSplittingEnabled(OptimizedDirectCallNode call) |
private void |
newSplitting(Object[] arguments) |
private OptimizedCallTarget |
runSplitIteration(TruffleStamp oldProfile,
TruffleStamp newProfile,
int calls) |
private final int splitStart
private final OptimizedDirectCallNode call
private final boolean splittingEnabled
private boolean splittingForced
private TruffleStamp argumentStamp
public DefaultTruffleSplittingStrategyNew(OptimizedDirectCallNode call)
private static boolean isSplittingEnabled(OptimizedDirectCallNode call)
public void forceSplitting()
forceSplitting
in interface TruffleSplittingStrategy
public void beforeCall(Object[] arguments)
beforeCall
in interface TruffleSplittingStrategy
public void afterCall(Object returnValue)
afterCall
in interface TruffleSplittingStrategy
private void newSplitting(Object[] arguments)
private OptimizedCallTarget runSplitIteration(TruffleStamp oldProfile, TruffleStamp newProfile, int calls)
private static void cleanup(OptimizedCallTarget currentTarget)
private static void disposeTarget(OptimizedCallTarget removed)