ControlSplitNode
are visited.FixedNode
this method finds the most immediate AbstractBeginNode
preceding it that either:
has no predecessor (ie, the begin-node is a merge, in particular a loop-begin, or the
start-node)
has a control-split predecessor
BlockClosure
interface represents a closure for iterating over blocks.String
value of this name.BasePhase.apply(StructuredGraph, Object, boolean)
.BasePhase.apply(StructuredGraph, Object, boolean)
.SinglePassNodeIterator.apply()
AbstractBeginNode
s.BasePhase.apply(StructuredGraph, Object, boolean)
.BasePhase.apply(StructuredGraph, Object, boolean)
.node
is assignable to the VerifyUsageWithEquals.restrictedClass
.x
is assignable to the restricted type and that y
is not a null constant.String
value is computed only when it is needed.LoopBeginNode
is visited).LoopEndNode
s belonging to a loop have been visited.BasePhase.apply(StructuredGraph, Object, boolean)
.BasePhase.apply(StructuredGraph, Object, boolean)
.FixedNode
to visit.SinglePassNodeIterator.finishLoopEnds(LoopEndNode)
forward-ends of merge-nodes, see SinglePassNodeIterator.queueMerge(EndNode)
SinglePassNodeIterator.nodeQueue
SinglePassNodeIterator.nodeQueue
.SchedulePhase.getBlockToNodesMap()
.SchedulePhase.SchedulingError
with a message assembled via
String.format(String, Object...)
.SinglePassNodeIterator.nodeQueue
can be used to continue with the single-pass visit after
the previous path can't be followed anymore.BasePhase.apply(StructuredGraph, Object, boolean)
.BasePhase.apply(StructuredGraph, Object, boolean)
.Debug.log(String)
methods is the result of
StringBuilder.toString()
or StringBuffer.toString()
.VerifyPhase
fails.