A (natural) loop in Jimple. A back-edge (t,h) is a control-flog edge for which
h dominates t. In this case h is the header and the loop consists of all statements
s which reach t without passing through h.
Creates a new loop. Expects that the last statement in the list is the loop head
and the second-last statement is the back-jump to the head.
normally guarantee this.
head the loop header
loopStatements an ordered list of loop statements, ending with the header
g the unit graph according to which the loop exists
Returns the statement that jumps back to the head, thereby constituing the loop.
- all statements of the loop, including the header;
the header will be the first element returned and then the
other statements follow in the natural ordering of the loop
Returns all loop exists.
A loop exit is a statement which has a successor that is not contained in the loop.
Computes all targets of the given loop exit, i.e. statements that the exit jumps to but which are not
part of this loop.
if this loop certainly loops forever, i.e. if it has not exit.
if this loop has a single exit statement.
if (other.header != null)
if (other.loopStatements != null)