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.ValueNumberableHeapAccess.BarrierTypeDeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring| Modifier and Type | Field and Description |
|---|---|
protected boolean |
forceFixed |
static NodeClass<FloatableAccessNode> |
TYPE |
address, barrierType, guard, location, nullCheckstateBeforenextNODE_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, setNullChecksetStateBefore, stateBeforeasNode, next, setNextasConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStampacceptInputs, 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, verifyInputsclone, finalize, getClass, notify, notifyAll, wait, wait, waitcanNullCheckasNodestatespublic 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()