public abstract class AbstractDeoptimizeNode extends ControlSinkNode implements IterableNodeType, DeoptimizingNode.DeoptBefore
deoptimization state
.Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberable
DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring
Modifier and Type | Field and Description |
---|---|
static NodeClass<AbstractDeoptimizeNode> |
TYPE |
EMPTY_ARRAY, stamp
NODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
protected |
AbstractDeoptimizeNode(NodeClass<? extends AbstractDeoptimizeNode> c,
FrameState stateBefore) |
Modifier and Type | Method and Description |
---|---|
boolean |
canDeoptimize()
Determines if this node needs deoptimization information.
|
abstract ValueNode |
getActionAndReason(MetaAccessProvider metaAccess) |
abstract ValueNode |
getSpeculation(MetaAccessProvider metaAccess) |
void |
setStateBefore(FrameState f)
Sets the
FrameState describing the program state before the execution of this
node. |
FrameState |
stateBefore() |
asFixedNode, verify
asConstant, asJavaConstant, asNode, asSerializableConstant, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterface
afterClone, applyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, dynamicNodeSizeEstimate, estimatedNodeCycles, estimatedNodeSize, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getDebugProperties, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hasExactlyOneUsageOfType, hashCode, hasMoreThanOneUsage, hasNoUsages, hasOnlyUsagesOfType, hasUsages, hasUsagesOfType, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeUsage, replaceAllInputs, replaceAndDelete, replaceAtAllUsages, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, singleUsage, successorPositions, successors, toString, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePosition
clone, equals, getClass, notify, notifyAll, wait, wait, wait
canUseAsStateDuring
validateDeoptFrameStates
states
asFixedNode
asNode
public static final NodeClass<AbstractDeoptimizeNode> TYPE
protected AbstractDeoptimizeNode(NodeClass<? extends AbstractDeoptimizeNode> c, FrameState stateBefore)
public boolean canDeoptimize()
DeoptimizingNode
canDeoptimize
in interface DeoptimizingNode
public FrameState stateBefore()
stateBefore
in interface DeoptimizingNode.DeoptBefore
public void setStateBefore(FrameState f)
DeoptimizingNode.DeoptBefore
FrameState
describing the program state before the execution of this
node.setStateBefore
in interface DeoptimizingNode.DeoptBefore
public abstract ValueNode getActionAndReason(MetaAccessProvider metaAccess)
public abstract ValueNode getSpeculation(MetaAccessProvider metaAccess)