public final class UnsafeLoadNode extends UnsafeAccessNode implements Lowerable, Virtualizable
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Canonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Unary<T extends Node>
Modifier and Type | Field and Description |
---|---|
(package private) LogicNode |
guardingCondition |
static NodeClass<UnsafeLoadNode> |
TYPE |
accessKind, locationIdentity, object, offset
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Constructor and Description |
---|
UnsafeLoadNode(ValueNode object,
ValueNode offset,
Kind accessKind,
LocationIdentity locationIdentity) |
UnsafeLoadNode(ValueNode object,
ValueNode offset,
Kind accessKind,
LocationIdentity locationIdentity,
LogicNode condition) |
Modifier and Type | Method and Description |
---|---|
protected ValueNode |
cloneAsArrayAccess(ValueNode location,
LocationIdentity identity) |
protected ValueNode |
cloneAsFieldAccess(ResolvedJavaField field) |
LogicNode |
getGuardingCondition() |
static Object |
load(Object object,
long offset,
Kind kind,
LocationIdentity locationIdentity) |
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
void |
virtualize(VirtualizerTool tool)
A node class can implement this method to convey information about what its effect would be
if some of its inputs were virtualized.
|
accessKind, canonical, getLocationIdentity, object, offset
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
public static final NodeClass<UnsafeLoadNode> TYPE
LogicNode guardingCondition
public UnsafeLoadNode(ValueNode object, ValueNode offset, Kind accessKind, LocationIdentity locationIdentity)
public UnsafeLoadNode(ValueNode object, ValueNode offset, Kind accessKind, LocationIdentity locationIdentity, LogicNode condition)
public LogicNode getGuardingCondition()
public void lower(LoweringTool tool)
Lowerable
public void virtualize(VirtualizerTool tool)
Virtualizable
virtualize
in interface Virtualizable
tool
- the tool used to describe the effects of this nodeprotected ValueNode cloneAsFieldAccess(ResolvedJavaField field)
cloneAsFieldAccess
in class UnsafeAccessNode
protected ValueNode cloneAsArrayAccess(ValueNode location, LocationIdentity identity)
cloneAsArrayAccess
in class UnsafeAccessNode
public static Object load(Object object, long offset, Kind kind, LocationIdentity locationIdentity)