public final class HotSpotOptimizedCallTarget extends OptimizedCallTarget implements OptimizedAssumptionDependency
OptimizedCallTarget whose machine code (if any) is represented by an
associated InstalledCode.OptimizedCallTarget.ArgumentsProfile, OptimizedCallTarget.ReturnProfileOptimizedAssumptionDependency.Accessengine, id, initialized, speculationLog| Constructor and Description |
|---|
HotSpotOptimizedCallTarget(OptimizedCallTarget sourceCallTarget,
com.oracle.truffle.api.nodes.RootNode rootNode) |
| Modifier and Type | Method and Description |
|---|---|
long |
getCodeAddress()
Gets the address of the machine code for this call target.
|
CompilableTruffleAST |
getCompilable()
Gets the Truffle AST whose machine code is represented by this object.
|
SpeculationLog |
getCompilationSpeculationLog()
Gets a speculation log to be used for a single Truffle compilation.
|
boolean |
isValid()
Determines if this call target has valid machine code that can be entered attached to it.
|
boolean |
isValidLastTier()
Determines if this call target has valid machine code attached to it, and that this code was
compiled in the last tier.
|
void |
onAssumptionInvalidated(Object source,
CharSequence reason)
Called when a depended-on assumption is invalidated, with the intention to invalidate the
machine code referenced by this object.
|
void |
setInstalledCode(InstalledCode code)
This method may only be called during compilation, and only by the compiling thread.
|
boolean |
soleExecutionEntryPoint()
Determines if a reference to this object is the only way the machine code can be executed.
|
accept, asJavaConstant, calculateNonTrivialNodes, call, callBoundary, callDirect, callIndirect, callInlined, callOSR, cancelCompilation, compile, compiledTier, computeBlockCompilations, createFrame, dequeueInlined, doInvoke, ensureInitialized, equals, firstTierCall, getCallAndLoopCount, getCallCount, getCallNodes, getCallSiteForSplit, getDebugProperties, getInitializedArgumentsProfile, getInitializedReturnProfile, getInitializedTimestamp, getKnownCallSiteCount, getName, getNodeRewritingAssumptionConstant, getNonTrivialNodeCount, getOptionValue, getOptionValues, getRootNode, getSingleCallNode, getSourceCallTarget, getSpeculationLog, getValidRootAssumptionConstant, hashCode, highestCompiledTier, injectArgumentsProfile, invalidate, isInitialized, isSameOrSplit, isSingleCaller, isSourceCallTarget, isSplit, isSubmittedForCompilation, isTrivial, log, maybeWaitForTask, needsCompile, nodeReplaced, onCompilationFailed, onInvalidate, prepareForAOT, profileArguments, profiledPERoot, resetCompilationProfile, resetNeedsSplit, runtime, shouldCompile, toString, waitForCompilation, wasExecutedserializeExceptionpublic HotSpotOptimizedCallTarget(OptimizedCallTarget sourceCallTarget, com.oracle.truffle.api.nodes.RootNode rootNode)
public boolean soleExecutionEntryPoint()
OptimizedAssumptionDependencytrue, it means the assumption will use a weak reference to this object. Once the weak
reference is cleared, assumption invalidation can ignore this object without posing the risk
of invalid code remaining live.soleExecutionEntryPoint in interface OptimizedAssumptionDependencytrue if the referenced machine code is guaranteed never to be executed when
this object dies, false the referenced machine code can be still be executed
even when this object is deadpublic void setInstalledCode(InstalledCode code)
public CompilableTruffleAST getCompilable()
OptimizedAssumptionDependencynull.getCompilable in interface OptimizedAssumptionDependencypublic boolean isValid()
OptimizedCallTargetisValid in interface OptimizedAssumptionDependencyisValid in class OptimizedCallTargetpublic boolean isValidLastTier()
OptimizedCallTargetisValidLastTier in class OptimizedCallTargetpublic long getCodeAddress()
OptimizedCallTargetgetCodeAddress in class OptimizedCallTargetpublic void onAssumptionInvalidated(Object source, CharSequence reason)
OptimizedAssumptionDependencyonAssumptionInvalidated in interface OptimizedAssumptionDependencypublic SpeculationLog getCompilationSpeculationLog()
CompilableTruffleASTgetCompilationSpeculationLog in interface CompilableTruffleAST