Class PureFunctionStubIntrinsicNode
java.lang.Object
jdk.graal.compiler.graph.Node
jdk.graal.compiler.nodes.ValueNode
jdk.graal.compiler.nodes.FixedNode
jdk.graal.compiler.nodes.FixedWithNextNode
jdk.graal.compiler.replacements.nodes.PureFunctionStubIntrinsicNode
- All Implemented Interfaces:
Cloneable
,Formattable
,FixedNodeInterface
,FixedWithNextNodeInterface
,MemoryAccess
,LIRLowerable
,ValueNodeInterface
,IntrinsicMethodNodeInterface
- Direct Known Subclasses:
ArrayCompareToNode
,ArrayEqualsNode
,ArrayIndexOfNode
,ArrayRegionCompareToNode
,ArrayRegionEqualsNode
,ArrayRegionEqualsWithMaskNode
,CalcStringAttributesNode
,CountPositivesNode
,VectorizedHashCodeNode
,VectorizedMismatchNode
public abstract class PureFunctionStubIntrinsicNode
extends FixedWithNextNode
implements MemoryAccess, IntrinsicMethodNodeInterface
Base class for nodes that represent large intrinsic methods without side effects, such as
ArrayEqualsNode
. These methods are compiled as stubs and later called via foreign call.-
Nested Class Summary
Nested classes/interfaces inherited from class jdk.graal.compiler.graph.Node
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectInputChangedCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.InputsChangedCanonicalization, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.graalvm.word.LocationIdentity
protected final EnumSet
<?> static final NodeClass
<PureFunctionStubIntrinsicNode> Fields inherited from class jdk.graal.compiler.nodes.FixedWithNextNode
next
Fields inherited from class jdk.graal.compiler.nodes.ValueNode
EMPTY_ARRAY, stamp
Fields inherited from class jdk.graal.compiler.graph.Node
NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithOnlyInputEdges
-
Constructor Summary
ConstructorsConstructorDescriptionPureFunctionStubIntrinsicNode
(NodeClass<? extends PureFunctionStubIntrinsicNode> c, Stamp stamp, EnumSet<?> runtimeCheckedCPUFeatures, org.graalvm.word.LocationIdentity locationIdentity) -
Method Summary
Modifier and TypeMethodDescriptionorg.graalvm.word.LocationIdentity
EnumSet
<?> On SVM, we AOT-compile additional stub versions with more modern CPU flags enabled.void
Methods inherited from class jdk.graal.compiler.nodes.FixedWithNextNode
asFixedWithNextNode, next, setNext
Methods inherited from class jdk.graal.compiler.nodes.FixedNode
asFixedNode, verifyNode
Methods inherited from class jdk.graal.compiler.nodes.ValueNode
asConstant, asJavaConstant, asNode, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterface
Methods inherited from class jdk.graal.compiler.graph.Node
afterClone, applyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, dynamicNodeSizeEstimate, estimatedNodeCycles, estimatedNodeSize, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getDebugProperties, getId, getIdBeforeDeletion, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hasExactlyOneUsageOfType, hashCode, hasMoreThanOneUsage, hasNoUsages, hasUsages, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeDeadUsages, removeUsage, removeUsages, replaceAllInputs, replaceAndDelete, replaceAtAllUsages, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, singleUsage, successorPositions, successors, toString, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verify, verify, verifyEdges, verifyInputs, withNodeSourcePosition
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface jdk.graal.compiler.nodes.FixedNodeInterface
asFixedNode
Methods inherited from interface jdk.graal.compiler.replacements.nodes.IntrinsicMethodNodeInterface
canBeEmitted, emitIntrinsic, generate, getForeignCallArguments, getForeignCallDescriptor, graph
Methods inherited from interface jdk.graal.compiler.nodes.ValueNodeInterface
asNode
-
Field Details
-
TYPE
-
runtimeCheckedCPUFeatures
-
locationIdentity
protected final org.graalvm.word.LocationIdentity locationIdentity
-
-
Constructor Details
-
PureFunctionStubIntrinsicNode
public PureFunctionStubIntrinsicNode(NodeClass<? extends PureFunctionStubIntrinsicNode> c, Stamp stamp, EnumSet<?> runtimeCheckedCPUFeatures, org.graalvm.word.LocationIdentity locationIdentity)
-
-
Method Details
-
getRuntimeCheckedCPUFeatures
On SVM, we AOT-compile additional stub versions with more modern CPU flags enabled. We can emit foreign calls to these variants in JIT code when these flags are available. -
getLocationIdentity
public org.graalvm.word.LocationIdentity getLocationIdentity()- Specified by:
getLocationIdentity
in interfaceMemoryAccess
-
getLastLocationAccess
- Specified by:
getLastLocationAccess
in interfaceMemoryAccess
- Returns:
- a MemoryKill that represents the last memory state in the memory graph for the LocationIdentity returned by MemoryAccess.getLocationIdentity()
-
setLastLocationAccess
- Specified by:
setLastLocationAccess
in interfaceMemoryAccess
- Parameters:
lla
- theMemoryKill
that represents the last kill of the LocationIdentity returned by MemoryAccess.getLocationIdentity()
-