Class AbstractNewObjectNode
java.lang.Object
jdk.graal.compiler.graph.Node
jdk.graal.compiler.nodes.ValueNode
jdk.graal.compiler.nodes.FixedNode
jdk.graal.compiler.nodes.FixedWithNextNode
jdk.graal.compiler.nodes.DeoptimizingFixedWithNextNode
jdk.graal.compiler.nodes.java.AbstractNewObjectNode
- All Implemented Interfaces:
Cloneable
,Formattable
,DeoptimizingNode
,DeoptimizingNode.DeoptBefore
,FixedNodeInterface
,FixedWithNextNodeInterface
,Lowerable
,NodeWithState
,ValueNodeInterface
- Direct Known Subclasses:
AbstractNewArrayNode
,DynamicNewInstanceNode
,NewInstanceNode
public abstract class AbstractNewObjectNode
extends DeoptimizingFixedWithNextNode
implements Lowerable
The
AbstractNewObjectNode
is the base class for the new instance and new array nodes.-
Nested Class Summary
Nested classes/interfaces inherited from class jdk.graal.compiler.graph.Node
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectInputChangedCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.InputsChangedCanonicalization, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Nested classes/interfaces inherited from interface jdk.graal.compiler.nodes.DeoptimizingNode
DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
Controls whether this allocation emits aMembarNode
withMembarNode.FenceKind.ALLOCATION_INIT
as part of the object initialization.protected boolean
static final NodeClass
<AbstractNewObjectNode> Fields inherited from class jdk.graal.compiler.nodes.DeoptimizingFixedWithNextNode
stateBefore
Fields inherited from class jdk.graal.compiler.nodes.FixedWithNextNode
next
Fields inherited from class jdk.graal.compiler.nodes.ValueNode
EMPTY_ARRAY, stamp
Fields inherited from class jdk.graal.compiler.graph.Node
NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithOnlyInputEdges
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractNewObjectNode
(NodeClass<? extends AbstractNewObjectNode> c, Stamp stamp, boolean fillContents, FrameState stateBefore) -
Method Summary
Modifier and TypeMethodDescriptionboolean
Determines if this node needs deoptimization information.void
boolean
boolean
void
setFillContents
(boolean fillContents) Methods inherited from class jdk.graal.compiler.nodes.DeoptimizingFixedWithNextNode
setStateBefore, stateBefore
Methods inherited from class jdk.graal.compiler.nodes.FixedWithNextNode
asFixedWithNextNode, next, setNext
Methods inherited from class jdk.graal.compiler.nodes.FixedNode
asFixedNode, verifyNode
Methods inherited from class jdk.graal.compiler.nodes.ValueNode
asConstant, asJavaConstant, asNode, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterface
Methods inherited from class jdk.graal.compiler.graph.Node
afterClone, applyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, dynamicNodeSizeEstimate, estimatedNodeCycles, estimatedNodeSize, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getDebugProperties, getId, getIdBeforeDeletion, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hasExactlyOneUsageOfType, hashCode, hasMoreThanOneUsage, hasNoUsages, hasUsages, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeDeadUsages, removeUsage, removeUsages, replaceAllInputs, replaceAndDelete, replaceAtAllUsages, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, singleUsage, successorPositions, successors, toString, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verify, verify, verifyEdges, verifyInputs, withNodeSourcePosition
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface jdk.graal.compiler.nodes.DeoptimizingNode
validateDeoptFrameStates
Methods inherited from interface jdk.graal.compiler.nodes.DeoptimizingNode.DeoptBefore
canUseAsStateDuring
Methods inherited from interface jdk.graal.compiler.nodes.FixedNodeInterface
asFixedNode
Methods inherited from interface jdk.graal.compiler.nodes.spi.NodeWithState
states
Methods inherited from interface jdk.graal.compiler.nodes.ValueNodeInterface
asNode
-
Field Details
-
TYPE
-
fillContents
protected boolean fillContents -
emitMemoryBarrier
protected boolean emitMemoryBarrierControls whether this allocation emits aMembarNode
withMembarNode.FenceKind.ALLOCATION_INIT
as part of the object initialization.
-
-
Constructor Details
-
AbstractNewObjectNode
protected AbstractNewObjectNode(NodeClass<? extends AbstractNewObjectNode> c, Stamp stamp, boolean fillContents, FrameState stateBefore)
-
-
Method Details
-
fillContents
public boolean fillContents()- Returns:
true
if the object's contents should be initialized to zero/null.
-
setFillContents
public void setFillContents(boolean fillContents) -
canDeoptimize
public boolean canDeoptimize()Description copied from interface:DeoptimizingNode
Determines if this node needs deoptimization information.- Specified by:
canDeoptimize
in interfaceDeoptimizingNode
-
emitMemoryBarrier
public boolean emitMemoryBarrier() -
clearEmitMemoryBarrier
public void clearEmitMemoryBarrier()
-