public abstract class BasicObjectCloneNode extends MacroNode 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.FindLengthModeMemoryKill.NoLocation| Modifier and Type | Field and Description |
|---|---|
static NodeClass<BasicObjectCloneNode> |
TYPE |
arguments, bci, callerMethod, invokeKind, returnStamp, stateAfter, targetMethodnextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdgesMULTI_KILL_NO_LOCATION, NO_LOCATION| 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. |
afterClone, bci, createInvoke, getArguments, getContextMethod, getInvokeKind, getKilledLocationIdentity, getLocationIdentity, getTargetMethod, hasSideEffect, replaceWithInvoke, setStateAfter, stateAfter, toArgumentArray, verifyStampasFixedWithNextNode, next, setNextasFixedNode, verifyasConstant, asJavaConstant, asNode, asSerializableConstant, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterfaceapplyInputs, 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, 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, withNodeSourcePositionclone, equals, getClass, notify, notifyAll, wait, wait, waitbci, computeStamp, findLength, genLoadFieldNode, genLoadIndexedNode, getConcreteType, virtualizehasSideEffect, setStateAfter, stateAfterstatesasFixedNodeasNodeassertArgumentCount, getArgument, getArgumentCount, lower, lowerReplacement, setBciasFixedNodeOrNull, updateInliningLogAfterClone, updateInliningLogAfterRegisterasMultiMemoryKill, asSingleMemoryKill, isMemoryKill, isMultiMemoryKill, isSingleMemoryKillpublic 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 MacroNodepublic ValueNode getObject()
getObject in interface ObjectClone