public final class InvokeWithExceptionNode extends ControlSplitNode implements Invoke, MemoryCheckpoint.Single, LIRLowerable
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring
MemoryCheckpoint.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, updateStamp
acceptInputs, 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, verifyInputs
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
asNode, computeStateDuring, getContextMethod, getContextType, getInvokeKind, getReceiver, getReceiverType, predecessor, uncheckedStamp
states
uncheckedOrNull
public 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 Invoke
void setCallTarget(CallTargetNode callTarget)
public MethodCallTargetNode methodCallTarget()
public boolean isPolymorphic()
Invoke
isPolymorphic
in interface Invoke
public void setPolymorphic(boolean value)
setPolymorphic
in interface Invoke
public boolean useForInlining()
useForInlining
in interface Invoke
public void setUseForInlining(boolean value)
setUseForInlining
in interface Invoke
public String toString(Verbosity verbosity)
Node
Verbosity
.public void lower(LoweringTool tool)
Lowerable
public void generate(NodeLIRBuilderTool gen)
generate
in interface LIRLowerable
public FrameState stateAfter()
StateSplit
FrameState
corresponding to the state of the JVM after execution of this
node.stateAfter
in interface StateSplit
public void setStateAfter(FrameState stateAfter)
StateSplit
FrameState
corresponding to the state of the JVM after execution of this
node.setStateAfter
in interface StateSplit
public boolean hasSideEffect()
StateSplit
FrameState
nodes.hasSideEffect
in interface StateSplit
public LocationIdentity getLocationIdentity()
MemoryCheckpoint.Single
LocationIdentity.any()
will kill all memory locations.getLocationIdentity
in interface MemoryCheckpoint.Single
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
public void killExceptionEdge()
public void intrinsify(Node node)
intrinsify
in interface Invoke
public double probability(AbstractBeginNode successor)
probability
in class ControlSplitNode
public boolean canDeoptimize()
DeoptimizingNode
canDeoptimize
in interface DeoptimizingNode
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 GuardingNode getGuard()
getGuard
in interface GuardedNode
public void setGuard(GuardingNode guard)
setGuard
in interface GuardedNode
public AbstractBeginNode getPrimarySuccessor()
ControlSplitNode
getPrimarySuccessor
in class ControlSplitNode