public abstract class BasicObjectCloneNode extends MacroStateSplitNode implements ObjectClone
MacroNode.MacroParamsNode.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableArrayLengthProvider.FindLengthMode| Modifier and Type | Field and Description |
|---|---|
static NodeClass<BasicObjectCloneNode> |
TYPE |
stateAfterarguments, bci, callerMethod, invokeKind, returnStamp, targetMethodnextNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
BasicObjectCloneNode(NodeClass<? extends MacroNode> c,
MacroNode.MacroParams p) |
| Modifier and Type | Method and Description |
|---|---|
ValueNode |
getObject() |
boolean |
inferStamp()
This method can be overridden by subclasses of
ValueNode if they need to recompute
their stamp if their inputs change. |
getKilledLocationIdentity, hasSideEffect, replaceSnippetInvokes, setStateAfter, stateAfterafterClone, asFixedNode, assertArgumentCount, bci, createInvoke, getArgument, getArgumentCount, getContextMethod, getInvokeKind, getLocationIdentity, getLoweredSnippetGraph, getTargetMethod, lower, lowerReplacement, replaceWithInvoke, setBci, toArgumentArrayasNode, next, setNextasConstant, asJavaConstant, asSerializableConstant, getStackKind, graph, hasUsagesOtherThan, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, replaceAtAllUsages, replaceAtUsages, setStamp, stamp, updateStampapplyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, estimatedNodeCycles, estimatedNodeSize, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getDebugProperties, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hashCode, hasMoreThanOneUsage, hasNoUsages, hasOnlyUsagesOfType, hasUsages, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeUsage, replaceAllInputs, replaceAndDelete, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, simplify, successorPositions, successors, toString, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, finalize, getClass, notify, notifyAll, wait, wait, waitbci, computeStamp, findLength, genLoadFieldNode, genLoadIndexedNode, getConcreteType, virtualizehasSideEffect, setStateAfter, stateAfterstatesasNodeisAlive, updateInliningLogAfterClone, updateInliningLogAfterRegisterpublic static final NodeClass<BasicObjectCloneNode> TYPE
public BasicObjectCloneNode(NodeClass<? extends MacroNode> c, MacroNode.MacroParams p)
public boolean inferStamp()
ValueNodeValueNode if they need to recompute
their stamp if their inputs change. A typical implementation will compute the stamp and pass
it to ValueNode.updateStamp(Stamp), whose return value can be used as the result of this
method.inferStamp in class ValueNodepublic ValueNode getObject()
getObject in interface ObjectClone