public abstract class FloatableAccessNode extends FixedAccessNode
FixedAccessNode
that can be converted to a FloatingAccessNode
.Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
HeapAccess.BarrierType
DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring
Modifier and Type | Field and Description |
---|---|
protected boolean |
forceFixed |
static NodeClass<FloatableAccessNode> |
TYPE |
address, barrierType, guard, location, nullCheck
stateBefore
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
protected |
FloatableAccessNode(NodeClass<? extends FloatableAccessNode> c,
AddressNode address,
LocationIdentity location,
Stamp stamp) |
protected |
FloatableAccessNode(NodeClass<? extends FloatableAccessNode> c,
AddressNode address,
LocationIdentity location,
Stamp stamp,
GuardingNode guard,
HeapAccess.BarrierType barrierType) |
protected |
FloatableAccessNode(NodeClass<? extends FloatableAccessNode> c,
AddressNode address,
LocationIdentity location,
Stamp stamp,
GuardingNode guard,
HeapAccess.BarrierType barrierType,
boolean nullCheck,
FrameState stateBefore) |
Modifier and Type | Method and Description |
---|---|
abstract FloatingAccessNode |
asFloatingNode(MemoryNode lastLocationAccess) |
boolean |
canFloat()
AccessNodes can float only if their location identities are not ANY_LOCATION.
|
void |
setForceFixed(boolean flag) |
canDeoptimize, getAddress, getBarrierType, getGuard, getLocationIdentity, getNullCheck, setAddress, setGuard, setNullCheck
setStateBefore, stateBefore
asNode, next, setNext
asConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStamp
acceptInputs, acceptSuccessors, afterClone, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearSuccessors, copyWithInputs, copyWithInputs, equals, fail, formatTo, getDebugProperties, getDebugProperties, getId, getNodeClass, getUsageAt, getUsageCount, hashCode, hasNoUsages, hasUsages, inputs, isAlive, isDeleted, markDeleted, modCount, newIdentityMap, newIdentityMap, newIdentityMap, newMap, newMap, newMap, newSet, newSet, predecessor, pushInputs, removeUsage, replaceAndDelete, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceFirstInput, replaceFirstSuccessor, safeDelete, simplify, successors, toString, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
canNullCheck
asNode
states
public static final NodeClass<FloatableAccessNode> TYPE
protected boolean forceFixed
protected FloatableAccessNode(NodeClass<? extends FloatableAccessNode> c, AddressNode address, LocationIdentity location, Stamp stamp)
protected FloatableAccessNode(NodeClass<? extends FloatableAccessNode> c, AddressNode address, LocationIdentity location, Stamp stamp, GuardingNode guard, HeapAccess.BarrierType barrierType)
protected FloatableAccessNode(NodeClass<? extends FloatableAccessNode> c, AddressNode address, LocationIdentity location, Stamp stamp, GuardingNode guard, HeapAccess.BarrierType barrierType, boolean nullCheck, FrameState stateBefore)
public abstract FloatingAccessNode asFloatingNode(MemoryNode lastLocationAccess)
public void setForceFixed(boolean flag)
public boolean canFloat()