public final class InvokeWithExceptionNode extends ControlSplitNode implements Invoke, MemoryCheckpoint.Single, LIRLowerable
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberableDeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuringMemoryCheckpoint.Multi, MemoryCheckpoint.Single, MemoryCheckpoint.TypeAssertion| Modifier and Type | Field and Description |
|---|---|
protected int |
bci |
(package private) CallTargetNode |
callTarget |
private static double |
EXCEPTION_PROBA |
(package private) AbstractBeginNode |
exceptionEdge |
protected double |
exceptionProbability |
(package private) GuardingNode |
guard |
(package private) AbstractBeginNode |
next |
protected boolean |
polymorphic |
(package private) FrameState |
stateAfter |
(package private) FrameState |
stateDuring |
static NodeClass<InvokeWithExceptionNode> |
TYPE |
protected boolean |
useForInlining |
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
InvokeWithExceptionNode(CallTargetNode callTarget,
AbstractBeginNode exceptionEdge,
int bci) |
| Modifier and Type | Method and Description |
|---|---|
int |
bci() |
CallTargetNode |
callTarget() |
boolean |
canDeoptimize()
Determines if this node needs deoptimization information.
|
AbstractBeginNode |
exceptionEdge() |
void |
generate(NodeLIRBuilderTool gen) |
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). |
GuardingNode |
getGuard() |
LocationIdentity |
getLocationIdentity()
This method is used to determine which memory location is killed by this node.
|
AbstractBeginNode |
getPrimarySuccessor()
Primary successor of the control split.
|
boolean |
hasSideEffect()
Determines if this node has a side-effect.
|
void |
intrinsify(Node node) |
boolean |
isPolymorphic()
True if this invocation is almost certainly polymorphic, false when in doubt.
|
void |
killExceptionEdge() |
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
MethodCallTargetNode |
methodCallTarget() |
AbstractBeginNode |
next() |
double |
probability(AbstractBeginNode successor) |
(package private) void |
setCallTarget(CallTargetNode callTarget) |
void |
setExceptionEdge(AbstractBeginNode x) |
void |
setGuard(GuardingNode guard) |
void |
setNext(AbstractBeginNode x) |
void |
setNext(FixedNode x) |
void |
setPolymorphic(boolean value) |
void |
setStateAfter(FrameState stateAfter)
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. |
void |
setUseForInlining(boolean value) |
FrameState |
stateAfter()
Gets the
FrameState corresponding to the state of the JVM after execution of this
node. |
FrameState |
stateDuring() |
String |
toString(Verbosity verbosity)
Creates a String representation for this node with a given
Verbosity. |
boolean |
useForInlining() |
asConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStampacceptInputs, acceptSuccessors, afterClone, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearSuccessors, copyWithInputs, copyWithInputs, equals, fail, formatTo, getDebugProperties, getId, getNodeClass, getUsageAt, getUsageCount, hashCode, hasNoUsages, hasUsages, inputs, isAlive, isDeleted, markDeleted, modCount, newIdentityMap, newIdentityMap, newIdentityMap, newMap, newMap, newMap, newSet, newSet, predecessor, pushInputs, removeUsage, replaceAndDelete, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceFirstInput, replaceFirstSuccessor, safeDelete, simplify, successors, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputsclone, finalize, getClass, notify, notifyAll, wait, wait, waitasNode, computeStateDuring, getContextMethod, getContextType, getInvokeKind, getReceiver, getReceiverType, predecessor, uncheckedStampstatesuncheckedOrNullpublic static final NodeClass<InvokeWithExceptionNode> TYPE
private static final double EXCEPTION_PROBA
AbstractBeginNode next
AbstractBeginNode exceptionEdge
CallTargetNode callTarget
FrameState stateDuring
FrameState stateAfter
GuardingNode guard
protected final int bci
protected boolean polymorphic
protected boolean useForInlining
protected double exceptionProbability
public InvokeWithExceptionNode(CallTargetNode callTarget, AbstractBeginNode exceptionEdge, int bci)
public AbstractBeginNode exceptionEdge()
public void setExceptionEdge(AbstractBeginNode x)
public AbstractBeginNode next()
public void setNext(AbstractBeginNode x)
public CallTargetNode callTarget()
callTarget in interface Invokevoid setCallTarget(CallTargetNode callTarget)
public MethodCallTargetNode methodCallTarget()
public boolean isPolymorphic()
InvokeisPolymorphic in interface Invokepublic void setPolymorphic(boolean value)
setPolymorphic in interface Invokepublic boolean useForInlining()
useForInlining in interface Invokepublic void setUseForInlining(boolean value)
setUseForInlining in interface Invokepublic String toString(Verbosity verbosity)
NodeVerbosity.public void lower(LoweringTool tool)
Lowerablepublic void generate(NodeLIRBuilderTool gen)
generate in interface LIRLowerablepublic FrameState stateAfter()
StateSplitFrameState corresponding to the state of the JVM after execution of this
node.stateAfter in interface StateSplitpublic void setStateAfter(FrameState stateAfter)
StateSplitFrameState corresponding to the state of the JVM after execution of this
node.setStateAfter in interface StateSplitpublic boolean hasSideEffect()
StateSplitFrameState nodes.hasSideEffect in interface StateSplitpublic LocationIdentity getLocationIdentity()
MemoryCheckpoint.SingleLocationIdentity.any() will kill all memory locations.getLocationIdentity in interface MemoryCheckpoint.Singlepublic Map<Object,Object> getDebugProperties(Map<Object,Object> map)
NodeMap 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 Nodepublic void killExceptionEdge()
public void intrinsify(Node node)
intrinsify in interface Invokepublic double probability(AbstractBeginNode successor)
probability in class ControlSplitNodepublic boolean canDeoptimize()
DeoptimizingNodecanDeoptimize in interface DeoptimizingNodepublic 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 GuardingNode getGuard()
getGuard in interface GuardedNodepublic void setGuard(GuardingNode guard)
setGuard in interface GuardedNodepublic AbstractBeginNode getPrimarySuccessor()
ControlSplitNodegetPrimarySuccessor in class ControlSplitNode