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.ValueNumberableCanonicalizable.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 |
nextNODE_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, setNextasConstant, asJavaConstant, asSerializableConstant, getStackKind, graph, hasUsagesOtherThan, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, replaceAtAllUsages, replaceAtUsages, setStamp, stamp, updateStampafterClone, 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, withNodeSourcePositionclone, equals, finalize, getClass, notify, notifyAll, wait, wait, waitcanUseAsStateDuringstatespublic 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()
DeoptimizingNodecanDeoptimize in interface DeoptimizingNodepublic void setStateBefore(FrameState f)
DeoptimizingNode.DeoptBeforeFrameState describing the program state before the execution of this
node.setStateBefore in interface DeoptimizingNode.DeoptBeforepublic FrameState stateBefore()
stateBefore in interface DeoptimizingNode.DeoptBeforepublic 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 MemoryAccesspublic Node canonical(CanonicalizerTool tool)
Canonicalizablenull 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 Canonicalizabletool - provides access to runtime interfaces like MetaAccessProviderpublic MemoryKill getLastLocationAccess()
getLastLocationAccess in interface MemoryAccesspublic void setLastLocationAccess(MemoryKill lla)
setLastLocationAccess in interface MemoryAccesslla - 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)