public abstract class BeginStateSplitNode extends AbstractBeginNode implements StateSplit
AbstractBeginNode
s that are associated with a frame state.
TODO (dnsimon) this not needed until AbstractBeginNode
no longer implements
StateSplit
which is not possible until loop peeling works without requiring begin nodes
to have frames states.Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Modifier and Type | Field and Description |
---|---|
protected FrameState |
stateAfter |
static NodeClass<BeginStateSplitNode> |
TYPE |
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
protected |
BeginStateSplitNode(NodeClass<? extends BeginStateSplitNode> c) |
protected |
BeginStateSplitNode(NodeClass<? extends BeginStateSplitNode> c,
Stamp stamp) |
Modifier and Type | Method and Description |
---|---|
boolean |
hasSideEffect()
A begin node has no side effect.
|
void |
setStateAfter(FrameState x)
Sets the
FrameState corresponding to the state of the JVM after execution of this
node. |
FrameState |
stateAfter()
Gets the
FrameState corresponding to the state of the JVM after execution of this
node. |
anchored, generate, getBlockNodes, guards, prepareDelete, prepareDelete, prevBegin, proxies, removeProxies, simplify, verify
asNode, next, setNext
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, 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, successors, toString, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
asNode
states
asNode
asNode
public static final NodeClass<BeginStateSplitNode> TYPE
protected FrameState stateAfter
protected BeginStateSplitNode(NodeClass<? extends BeginStateSplitNode> c)
protected BeginStateSplitNode(NodeClass<? extends BeginStateSplitNode> c, Stamp stamp)
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 x)
StateSplit
FrameState
corresponding to the state of the JVM after execution of this
node.setStateAfter
in interface StateSplit
public boolean hasSideEffect()
hasSideEffect
in interface StateSplit