Class BackEdgePoints
java.lang.Object
org.ek9lang.compiler.phase9.BackEdgePoints
- All Implemented Interfaces:
BiConsumer<OperationInstr, Supplier<IRInstr>>
public final class BackEdgePoints
extends Object
implements BiConsumer<OperationInstr, Supplier<IRInstr>>
THE back-edge placement of IR_OPTIMISATION: a point instruction at the end of every loop body of an operation - the
back edge, reached once per iteration after the body's own scope has dropped its values - unless one of the same
opcode is already last.
SafePointPlacement places SAFE_POINT with it, CancelPointPlacement
places CANCEL_POINT; isLoopBody(CompositeInstr.NestedList) is THE test of which nested list that is, for a verifier too. Use
this - never a second walk of the loop bodies. Stateless: hold one.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(OperationInstr operation, Supplier<IRInstr> point) booleanisLoopBody(CompositeInstr.NestedList nested) Is this nested list a loop body, whose end is the back edge.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface BiConsumer
andThen
-
Constructor Details
-
BackEdgePoints
public BackEdgePoints()
-
-
Method Details
-
accept
- Specified by:
acceptin interfaceBiConsumer<OperationInstr, Supplier<IRInstr>>
-
isLoopBody
Is this nested list a loop body, whose end is the back edge.
-