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.ValueNumberable
DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring
Modifier and Type | Field and Description |
---|---|
protected NodeInputList<ValueNode> |
arguments |
protected int |
bci |
protected ForeignCallDescriptor |
descriptor |
protected FrameState |
stateDuring |
static NodeClass<ForeignCallNode> |
TYPE |
stateAfter
next
NODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
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() |
NodeInputList<ValueNode> |
getArguments() |
Map<Object,Object> |
getDebugProperties(Map<Object,Object> map)
Fills a
Map with properties of this node 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 node with a given
Verbosity . |
stateAfter, verify
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, 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, updateNodeSourcePosition, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePosition
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
canDeoptimize, computeStateDuring, generate, getKilledLocationIdentities, isGuaranteedSafepoint, operands
stateAfter
states
asNode
public 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 boolean hasSideEffect()
StateSplit
FrameState
nodes.hasSideEffect
in interface StateSplit
hasSideEffect
in class AbstractStateSplit
public ForeignCallDescriptor getDescriptor()
getDescriptor
in interface ForeignCall
public void setStateAfter(FrameState x)
StateSplit
FrameState
corresponding to the state of the JVM after execution of this
node.setStateAfter
in interface StateSplit
setStateAfter
in class AbstractStateSplit
public FrameState stateDuring()
stateDuring
in interface DeoptimizingNode.DeoptDuring
public void setStateDuring(FrameState stateDuring)
DeoptimizingNode.DeoptDuring
FrameState
describing the program state during the execution of this
node.setStateDuring
in interface DeoptimizingNode.DeoptDuring
public int bci()
bci
in interface DeoptBciSupplier
public void setBci(int bci)
DeoptBciSupplier
setBci
in interface DeoptBciSupplier
setBci
in interface ForeignCall
public NodeInputList<ValueNode> getArguments()
getArguments
in interface ForeignCall
public String toString(Verbosity verbosity)
Node
Verbosity
.public Map<Object,Object> getDebugProperties(Map<Object,Object> map)
Node
Map
with properties of this node 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