public class AMD64ArrayIndexOfDispatchNode extends FixedWithNextNode implements Canonicalizable, Lowerable, MemoryAccess, DeoptimizingNode.DeoptBefore
AMD64ArrayIndexOfNode
or a specialized snippet.Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Canonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Ternary<T extends Node>, Canonicalizable.Unary<T extends Node>
DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring
Modifier and Type | Field and Description |
---|---|
protected FrameState |
stateBefore |
static NodeClass<AMD64ArrayIndexOfDispatchNode> |
TYPE |
next
NODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Constructor and Description |
---|
AMD64ArrayIndexOfDispatchNode(ForeignCallSignature stubCallDescriptor,
jdk.vm.ci.meta.JavaKind arrayKind,
jdk.vm.ci.meta.JavaKind valueKind,
boolean findTwoConsecutive,
ValueNode arrayPointer,
ValueNode arrayLength,
ValueNode fromIndex,
ValueNode... searchValues) |
AMD64ArrayIndexOfDispatchNode(ForeignCallSignature stubCallDescriptor,
jdk.vm.ci.meta.JavaKind arrayKind,
jdk.vm.ci.meta.JavaKind valueKind,
ValueNode arrayPointer,
ValueNode arrayLength,
ValueNode fromIndex,
ValueNode... searchValues) |
Modifier and Type | Method and Description |
---|---|
boolean |
canDeoptimize()
Determines if this node needs deoptimization information.
|
Node |
canonical(CanonicalizerTool tool)
Implementations of this method can provide local optimizations like constant folding and
strength reduction.
|
jdk.vm.ci.meta.JavaKind |
getArrayKind() |
ValueNode |
getArrayLength() |
ValueNode |
getArrayPointer() |
jdk.vm.ci.meta.JavaKind |
getComparisonKind() |
ValueNode |
getFromIndex() |
MemoryKill |
getLastLocationAccess() |
org.graalvm.word.LocationIdentity |
getLocationIdentity() |
int |
getNumberOfValues() |
NodeInputList<ValueNode> |
getSearchValues() |
ValueNode[] |
getStubCallArgs() |
ForeignCallSignature |
getStubCallDescriptor() |
jdk.vm.ci.meta.JavaKind |
getValueKind() |
static int |
indexOf(ForeignCallSignature descriptor,
byte[] array,
int arrayLength,
int fromIndex,
byte v1) |
static int |
indexOf(ForeignCallSignature descriptor,
byte[] array,
int arrayLength,
int fromIndex,
byte v1,
byte v2) |
static int |
indexOf(ForeignCallSignature descriptor,
byte[] array,
int arrayLength,
int fromIndex,
byte v1,
byte v2,
byte v3) |
static int |
indexOf(ForeignCallSignature descriptor,
byte[] array,
int arrayLength,
int fromIndex,
byte v1,
byte v2,
byte v3,
byte v4) |
static int |
indexOf(ForeignCallSignature descriptor,
byte[] array,
int arrayLength,
int fromIndex,
char v1) |
static int |
indexOf(ForeignCallSignature descriptor,
byte[] array,
int arrayLength,
int fromIndex,
char v1,
char v2) |
static int |
indexOf(ForeignCallSignature descriptor,
byte[] array,
int arrayLength,
int fromIndex,
char v1,
char v2,
char v3) |
static int |
indexOf(ForeignCallSignature descriptor,
byte[] array,
int arrayLength,
int fromIndex,
char v1,
char v2,
char v3,
char v4) |
static int |
indexOf(ForeignCallSignature descriptor,
char[] array,
int arrayLength,
int fromIndex,
char v1) |
static int |
indexOf(ForeignCallSignature descriptor,
char[] array,
int arrayLength,
int fromIndex,
char v1,
char v2) |
static int |
indexOf(ForeignCallSignature descriptor,
char[] array,
int arrayLength,
int fromIndex,
char v1,
char v2,
char v3) |
static int |
indexOf(ForeignCallSignature descriptor,
char[] array,
int arrayLength,
int fromIndex,
char v1,
char v2,
char v3,
char v4) |
static int |
indexOf2ConsecutiveBytes(ForeignCallSignature descriptor,
byte[] array,
int arrayLength,
int fromIndex,
int values) |
static int |
indexOf2ConsecutiveChars(ForeignCallSignature descriptor,
byte[] array,
int arrayLength,
int fromIndex,
int values) |
static int |
indexOf2ConsecutiveChars(ForeignCallSignature descriptor,
char[] array,
int arrayLength,
int fromIndex,
int values) |
boolean |
isFindTwoConsecutive() |
void |
setLastLocationAccess(MemoryKill lla) |
void |
setStateBefore(FrameState f)
Sets the
FrameState describing the program state before the execution of this
node. |
FrameState |
stateBefore() |
asNode, next, setNext
asConstant, asJavaConstant, asSerializableConstant, getStackKind, graph, hasUsagesOtherThan, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, replaceAtAllUsages, replaceAtUsages, setStamp, stamp, updateStamp
afterClone, 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
canUseAsStateDuring
states
public static final NodeClass<AMD64ArrayIndexOfDispatchNode> TYPE
protected FrameState stateBefore
public AMD64ArrayIndexOfDispatchNode(ForeignCallSignature stubCallDescriptor, jdk.vm.ci.meta.JavaKind arrayKind, jdk.vm.ci.meta.JavaKind valueKind, boolean findTwoConsecutive, ValueNode arrayPointer, ValueNode arrayLength, ValueNode fromIndex, ValueNode... searchValues)
public AMD64ArrayIndexOfDispatchNode(ForeignCallSignature stubCallDescriptor, jdk.vm.ci.meta.JavaKind arrayKind, jdk.vm.ci.meta.JavaKind valueKind, ValueNode arrayPointer, ValueNode arrayLength, ValueNode fromIndex, ValueNode... searchValues)
public boolean isFindTwoConsecutive()
public ValueNode getArrayPointer()
public ValueNode getArrayLength()
public ValueNode getFromIndex()
public NodeInputList<ValueNode> getSearchValues()
public boolean canDeoptimize()
DeoptimizingNode
canDeoptimize
in interface DeoptimizingNode
public void setStateBefore(FrameState f)
DeoptimizingNode.DeoptBefore
FrameState
describing the program state before the execution of this
node.setStateBefore
in interface DeoptimizingNode.DeoptBefore
public FrameState stateBefore()
stateBefore
in interface DeoptimizingNode.DeoptBefore
public ForeignCallSignature getStubCallDescriptor()
public int getNumberOfValues()
public jdk.vm.ci.meta.JavaKind getArrayKind()
public jdk.vm.ci.meta.JavaKind getValueKind()
public jdk.vm.ci.meta.JavaKind getComparisonKind()
public ValueNode[] getStubCallArgs()
public org.graalvm.word.LocationIdentity getLocationIdentity()
getLocationIdentity
in interface MemoryAccess
public Node canonical(CanonicalizerTool tool)
Canonicalizable
null
will delete the current node and replace it with null
at
all usages. Note that it is not necessary to delete floating nodes that have no more usages
this way - they will be deleted automatically.canonical
in interface Canonicalizable
tool
- provides access to runtime interfaces like MetaAccessProvider
public MemoryKill getLastLocationAccess()
getLastLocationAccess
in interface MemoryAccess
public void setLastLocationAccess(MemoryKill lla)
setLastLocationAccess
in interface MemoryAccess
lla
- the MemoryKill
that represents the last kill of the
LocationIdentity returned by
MemoryAccess.getLocationIdentity()public static int indexOf(ForeignCallSignature descriptor, byte[] array, int arrayLength, int fromIndex, byte v1)
public static int indexOf(ForeignCallSignature descriptor, byte[] array, int arrayLength, int fromIndex, byte v1, byte v2)
public static int indexOf(ForeignCallSignature descriptor, byte[] array, int arrayLength, int fromIndex, byte v1, byte v2, byte v3)
public static int indexOf(ForeignCallSignature descriptor, byte[] array, int arrayLength, int fromIndex, byte v1, byte v2, byte v3, byte v4)
public static int indexOf(ForeignCallSignature descriptor, byte[] array, int arrayLength, int fromIndex, char v1)
public static int indexOf(ForeignCallSignature descriptor, byte[] array, int arrayLength, int fromIndex, char v1, char v2)
public static int indexOf(ForeignCallSignature descriptor, byte[] array, int arrayLength, int fromIndex, char v1, char v2, char v3)
public static int indexOf(ForeignCallSignature descriptor, byte[] array, int arrayLength, int fromIndex, char v1, char v2, char v3, char v4)
public static int indexOf(ForeignCallSignature descriptor, char[] array, int arrayLength, int fromIndex, char v1)
public static int indexOf(ForeignCallSignature descriptor, char[] array, int arrayLength, int fromIndex, char v1, char v2)
public static int indexOf(ForeignCallSignature descriptor, char[] array, int arrayLength, int fromIndex, char v1, char v2, char v3)
public static int indexOf(ForeignCallSignature descriptor, char[] array, int arrayLength, int fromIndex, char v1, char v2, char v3, char v4)
public static int indexOf2ConsecutiveBytes(ForeignCallSignature descriptor, byte[] array, int arrayLength, int fromIndex, int values)
public static int indexOf2ConsecutiveChars(ForeignCallSignature descriptor, byte[] array, int arrayLength, int fromIndex, int values)
public static int indexOf2ConsecutiveChars(ForeignCallSignature descriptor, char[] array, int arrayLength, int fromIndex, int values)