public abstract class GraalTruffleRuntime extends Object implements com.oracle.truffle.api.TruffleRuntime
Modifier and Type | Class and Description |
---|---|
private class |
GraalTruffleRuntime.DispatchTruffleCompilationListener |
Modifier and Type | Field and Description |
---|---|
static com.oracle.truffle.api.TruffleRuntime |
alternateRuntime |
protected ResolvedJavaMethod[] |
anyFrameMethod |
protected ResolvedJavaMethod[] |
callNodeMethod |
protected ResolvedJavaMethod[] |
callTargetMethod |
private List<GraalTruffleCompilationListener> |
compilationListeners |
private GraalTruffleCompilationListener |
compilationNotify |
private ArrayList<String> |
excludes |
private ArrayList<String> |
includes |
protected LoopNodeFactory |
loopNodeFactory |
private StackIntrospection |
stackIntrospection |
protected TruffleCompiler |
truffleCompiler |
Constructor and Description |
---|
GraalTruffleRuntime() |
Modifier and Type | Method and Description |
---|---|
protected boolean |
acceptForCompilation(com.oracle.truffle.api.nodes.RootNode rootNode) |
void |
addCompilationListener(GraalTruffleCompilationListener listener) |
abstract boolean |
cancelInstalledTask(OptimizedCallTarget optimizedCallTarget,
Object source,
CharSequence reason) |
abstract void |
compile(OptimizedCallTarget optimizedCallTarget,
boolean mayBeAsynchronous) |
com.oracle.truffle.api.Assumption |
createAssumption() |
com.oracle.truffle.api.Assumption |
createAssumption(String name) |
abstract com.oracle.truffle.api.RootCallTarget |
createClonedCallTarget(OptimizedCallTarget sourceCallTarget,
com.oracle.truffle.api.nodes.RootNode root) |
com.oracle.truffle.api.CompilerOptions |
createCompilerOptions() |
com.oracle.truffle.api.nodes.DirectCallNode |
createDirectCallNode(com.oracle.truffle.api.CallTarget target) |
com.oracle.truffle.api.nodes.IndirectCallNode |
createIndirectCallNode() |
com.oracle.truffle.api.nodes.LoopNode |
createLoopNode(com.oracle.truffle.api.nodes.RepeatingNode repeatingNode) |
com.oracle.truffle.api.frame.MaterializedFrame |
createMaterializedFrame(Object[] arguments) |
com.oracle.truffle.api.frame.MaterializedFrame |
createMaterializedFrame(Object[] arguments,
com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor) |
com.oracle.truffle.api.frame.VirtualFrame |
createVirtualFrame(Object[] arguments,
com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor) |
protected void |
doCompile(OptimizedCallTarget optimizedCallTarget) |
boolean |
enableInfopoints() |
com.oracle.truffle.api.frame.FrameInstance |
getCallerFrame() |
<T> T |
getCapability(Class<T> capability) |
GraalTruffleCompilationListener |
getCompilationNotify() |
com.oracle.truffle.api.frame.FrameInstance |
getCurrentFrame() |
protected LoopNodeFactory |
getLoopNodeFactory() |
abstract Collection<OptimizedCallTarget> |
getQueuedCallTargets() |
abstract TruffleCompiler |
getTruffleCompiler() |
private void |
initStackIntrospection() |
protected void |
installDefaultListeners() |
abstract void |
invalidateInstalledCode(OptimizedCallTarget optimizedCallTarget,
Object source,
CharSequence reason) |
abstract boolean |
isCompiling(OptimizedCallTarget optimizedCallTarget) |
<T> T |
iterateFrames(com.oracle.truffle.api.frame.FrameInstanceVisitor<T> visitor) |
private static <T extends PrioritizedServiceProvider> |
loadPrioritizedServiceProvider(Class<T> clazz) |
void |
log(String message) |
protected void |
lookupCallMethods(MetaAccessProvider metaAccess) |
protected void |
parseCompileOnly() |
protected abstract boolean |
platformEnableInfopoints() |
abstract void |
reinstallStubs() |
void |
removeCompilationListener(GraalTruffleCompilationListener listener) |
private void |
shutdown() |
abstract void |
waitForCompilation(OptimizedCallTarget optimizedCallTarget,
long timeout) |
public static com.oracle.truffle.api.TruffleRuntime alternateRuntime
private StackIntrospection stackIntrospection
protected ResolvedJavaMethod[] callNodeMethod
protected ResolvedJavaMethod[] callTargetMethod
protected ResolvedJavaMethod[] anyFrameMethod
private final List<GraalTruffleCompilationListener> compilationListeners
private final GraalTruffleCompilationListener compilationNotify
protected TruffleCompiler truffleCompiler
protected LoopNodeFactory loopNodeFactory
public GraalTruffleRuntime()
public abstract TruffleCompiler getTruffleCompiler()
private static <T extends PrioritizedServiceProvider> T loadPrioritizedServiceProvider(Class<T> clazz)
protected void installDefaultListeners()
protected void lookupCallMethods(MetaAccessProvider metaAccess)
public com.oracle.truffle.api.nodes.LoopNode createLoopNode(com.oracle.truffle.api.nodes.RepeatingNode repeatingNode)
createLoopNode
in interface com.oracle.truffle.api.TruffleRuntime
protected LoopNodeFactory getLoopNodeFactory()
public com.oracle.truffle.api.nodes.DirectCallNode createDirectCallNode(com.oracle.truffle.api.CallTarget target)
createDirectCallNode
in interface com.oracle.truffle.api.TruffleRuntime
public com.oracle.truffle.api.nodes.IndirectCallNode createIndirectCallNode()
createIndirectCallNode
in interface com.oracle.truffle.api.TruffleRuntime
public com.oracle.truffle.api.frame.VirtualFrame createVirtualFrame(Object[] arguments, com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor)
createVirtualFrame
in interface com.oracle.truffle.api.TruffleRuntime
public com.oracle.truffle.api.frame.MaterializedFrame createMaterializedFrame(Object[] arguments)
createMaterializedFrame
in interface com.oracle.truffle.api.TruffleRuntime
public com.oracle.truffle.api.frame.MaterializedFrame createMaterializedFrame(Object[] arguments, com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor)
createMaterializedFrame
in interface com.oracle.truffle.api.TruffleRuntime
public com.oracle.truffle.api.CompilerOptions createCompilerOptions()
createCompilerOptions
in interface com.oracle.truffle.api.TruffleRuntime
public com.oracle.truffle.api.Assumption createAssumption()
createAssumption
in interface com.oracle.truffle.api.TruffleRuntime
public com.oracle.truffle.api.Assumption createAssumption(String name)
createAssumption
in interface com.oracle.truffle.api.TruffleRuntime
public GraalTruffleCompilationListener getCompilationNotify()
public <T> T iterateFrames(com.oracle.truffle.api.frame.FrameInstanceVisitor<T> visitor)
iterateFrames
in interface com.oracle.truffle.api.TruffleRuntime
private void initStackIntrospection()
public com.oracle.truffle.api.frame.FrameInstance getCallerFrame()
getCallerFrame
in interface com.oracle.truffle.api.TruffleRuntime
public com.oracle.truffle.api.frame.FrameInstance getCurrentFrame()
getCurrentFrame
in interface com.oracle.truffle.api.TruffleRuntime
public <T> T getCapability(Class<T> capability)
getCapability
in interface com.oracle.truffle.api.TruffleRuntime
protected boolean acceptForCompilation(com.oracle.truffle.api.nodes.RootNode rootNode)
protected void parseCompileOnly()
public abstract com.oracle.truffle.api.RootCallTarget createClonedCallTarget(OptimizedCallTarget sourceCallTarget, com.oracle.truffle.api.nodes.RootNode root)
public void addCompilationListener(GraalTruffleCompilationListener listener)
public void removeCompilationListener(GraalTruffleCompilationListener listener)
private void shutdown()
public abstract Collection<OptimizedCallTarget> getQueuedCallTargets()
public abstract void compile(OptimizedCallTarget optimizedCallTarget, boolean mayBeAsynchronous)
protected void doCompile(OptimizedCallTarget optimizedCallTarget)
public abstract boolean cancelInstalledTask(OptimizedCallTarget optimizedCallTarget, Object source, CharSequence reason)
public abstract void waitForCompilation(OptimizedCallTarget optimizedCallTarget, long timeout) throws ExecutionException, TimeoutException
ExecutionException
TimeoutException
public abstract boolean isCompiling(OptimizedCallTarget optimizedCallTarget)
public abstract void invalidateInstalledCode(OptimizedCallTarget optimizedCallTarget, Object source, CharSequence reason)
public abstract void reinstallStubs()
public final boolean enableInfopoints()
protected abstract boolean platformEnableInfopoints()