public abstract class BasicObjectCloneNode extends MacroStateSplitNode implements ObjectClone
MacroNode.MacroParams
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberable
ArrayLengthProvider.FindLengthMode
Modifier and Type | Field and Description |
---|---|
static NodeClass<BasicObjectCloneNode> |
TYPE |
stateAfter
arguments, bci, callerMethod, invokeKind, returnStamp, targetMethod
next
NODE_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, stateAfter
afterClone, asFixedNode, assertArgumentCount, bci, createInvoke, getArgument, getArgumentCount, getContextMethod, getInvokeKind, getLocationIdentity, getLoweredSnippetGraph, getTargetMethod, lower, lowerReplacement, replaceWithInvoke, setBci, toArgumentArray
asNode, next, setNext
asConstant, asJavaConstant, asSerializableConstant, getStackKind, graph, hasUsagesOtherThan, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, replaceAtAllUsages, replaceAtUsages, setStamp, stamp, updateStamp
applyInputs, 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, withNodeSourcePosition
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
bci, computeStamp, findLength, genLoadFieldNode, genLoadIndexedNode, getConcreteType, virtualize
hasSideEffect, setStateAfter, stateAfter
states
asNode
isAlive, updateInliningLogAfterClone, updateInliningLogAfterRegister
public static final NodeClass<BasicObjectCloneNode> TYPE
public BasicObjectCloneNode(NodeClass<? extends MacroNode> c, MacroNode.MacroParams p)
public boolean inferStamp()
ValueNode
ValueNode
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 ValueNode
public ValueNode getObject()
getObject
in interface ObjectClone