public class ForeignCallNode extends AbstractMemoryCheckpoint implements ForeignCall
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableDeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuringMemoryKill.NoLocation| Modifier and Type | Field and Description |
|---|---|
protected NodeInputList<ValueNode> |
arguments |
protected int |
bci |
protected ForeignCallDescriptor |
descriptor |
protected FrameState |
stateDuring |
static NodeClass<ForeignCallNode> |
TYPE |
stateAfternextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdgesMULTI_KILL_NO_LOCATION, NO_LOCATION| Modifier | Constructor and Description |
|---|---|
|
ForeignCallNode(ForeignCallDescriptor descriptor,
Stamp stamp) |
|
ForeignCallNode(ForeignCallDescriptor descriptor,
Stamp stamp,
List<ValueNode> arguments) |
|
ForeignCallNode(ForeignCallDescriptor descriptor,
ValueNode... arguments) |
|
ForeignCallNode(ForeignCallsProvider foreignCalls,
ForeignCallSignature signature,
ValueNode... arguments) |
protected |
ForeignCallNode(NodeClass<? extends ForeignCallNode> c,
ForeignCallDescriptor descriptor,
ValueNode... arguments) |
| Modifier and Type | Method and Description |
|---|---|
int |
bci() |
static boolean |
finishIntrinsification(GraphBuilderContext b,
Stamp returnStamp,
ForeignCall node) |
NodeInputList<ValueNode> |
getArguments() |
Map<Object,Object> |
getDebugProperties(Map<Object,Object> map)
Fills a
Map with properties of this for use in debugging (e.g., to view in
the ideal graph visualizer). |
ForeignCallDescriptor |
getDescriptor() |
boolean |
hasSideEffect()
Determines if this node has a side-effect.
|
static boolean |
intrinsify(GraphBuilderContext b,
Stamp returnStamp,
ForeignCallDescriptor descriptor,
ValueNode... arguments) |
static boolean |
intrinsify(GraphBuilderContext b,
Stamp returnStamp,
ForeignCallsProvider foreignCalls,
ForeignCallSignature signature,
ValueNode... arguments) |
void |
setBci(int bci)
Remember the byte code index (BCI) for code generation or lowering purposes.
|
void |
setStateAfter(FrameState x)
Sets the
FrameState corresponding to the state of the JVM after execution of this
node. |
void |
setStateDuring(FrameState stateDuring)
Sets the
FrameState describing the program state during the execution of this
node. |
FrameState |
stateDuring() |
String |
toString(Verbosity verbosity)
Creates a String representation for
this with a given Verbosity. |
stateAfter, verifyasFixedWithNextNode, next, setNextasFixedNodeasConstant, asJavaConstant, asNode, asSerializableConstant, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterfaceafterClone, applyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, dynamicNodeSizeEstimate, estimatedNodeCycles, estimatedNodeSize, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hashCode, hasMoreThanOneUsage, hasNoUsages, hasOnlyUsagesOfType, hasUsages, hasUsagesOfType, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeUsage, replaceAllInputs, replaceAndDelete, replaceAtAllUsages, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, singleUsage, successorPositions, successors, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, getClass, notify, notifyAll, wait, wait, waitcanDeoptimize, computeStateDuring, generate, getKilledLocationIdentities, isGuaranteedSafepoint, operandsstateAfterstatesasFixedNodeasNodeasMultiMemoryKill, asSingleMemoryKill, isMemoryKill, isMultiMemoryKill, isSingleMemoryKillpublic static final NodeClass<ForeignCallNode> TYPE
protected NodeInputList<ValueNode> arguments
protected FrameState stateDuring
protected final ForeignCallDescriptor descriptor
protected int bci
public ForeignCallNode(ForeignCallsProvider foreignCalls, ForeignCallSignature signature, ValueNode... arguments)
public ForeignCallNode(ForeignCallDescriptor descriptor, ValueNode... arguments)
public ForeignCallNode(ForeignCallDescriptor descriptor, Stamp stamp, List<ValueNode> arguments)
public ForeignCallNode(ForeignCallDescriptor descriptor, Stamp stamp)
protected ForeignCallNode(NodeClass<? extends ForeignCallNode> c, ForeignCallDescriptor descriptor, ValueNode... arguments)
public static boolean intrinsify(GraphBuilderContext b, Stamp returnStamp, ForeignCallsProvider foreignCalls, ForeignCallSignature signature, ValueNode... arguments)
public static boolean intrinsify(GraphBuilderContext b, Stamp returnStamp, ForeignCallDescriptor descriptor, ValueNode... arguments)
public static boolean finishIntrinsification(GraphBuilderContext b, Stamp returnStamp, ForeignCall node)
public boolean hasSideEffect()
StateSplitFrameState nodes.hasSideEffect in interface StateSplithasSideEffect in class AbstractStateSplitpublic ForeignCallDescriptor getDescriptor()
getDescriptor in interface ForeignCallpublic void setStateAfter(FrameState x)
StateSplitFrameState corresponding to the state of the JVM after execution of this
node.setStateAfter in interface StateSplitsetStateAfter in class AbstractStateSplitpublic FrameState stateDuring()
stateDuring in interface DeoptimizingNode.DeoptDuringpublic void setStateDuring(FrameState stateDuring)
DeoptimizingNode.DeoptDuringFrameState describing the program state during the execution of this
node.setStateDuring in interface DeoptimizingNode.DeoptDuringpublic int bci()
bci in interface DeoptBciSupplierpublic void setBci(int bci)
DeoptBciSuppliersetBci in interface DeoptBciSuppliersetBci in interface ForeignCallpublic NodeInputList<ValueNode> getArguments()
getArguments in interface ForeignCallpublic String toString(Verbosity verbosity)
Nodethis with a given Verbosity.public Map<Object,Object> getDebugProperties(Map<Object,Object> map)
NodeMap with properties of this for use in debugging (e.g., to view in
the ideal graph visualizer). Subclasses overriding this method should also fill the map using
their superclass.getDebugProperties in class Node