public static enum ExplodeLoop.LoopExplosionKind extends Enum<ExplodeLoop.LoopExplosionKind>
ExplodeLoop annotation.| Enum Constant and Description |
|---|
FULL_EXPLODE
Fully explode all loops.
|
FULL_EXPLODE_UNTIL_RETURN
Like
ExplodeLoop.LoopExplosionKind.FULL_EXPLODE, but in addition explosion does not stop at loop exits. |
FULL_UNROLL
Fully unroll all loops.
|
MERGE_EXPLODE
like
ExplodeLoop.LoopExplosionKind.FULL_EXPLODE, but copies of the loop body that have the exact same state
(all local variables have the same value) are merged. |
| Modifier and Type | Method and Description |
|---|---|
static ExplodeLoop.LoopExplosionKind |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static ExplodeLoop.LoopExplosionKind[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final ExplodeLoop.LoopExplosionKind FULL_UNROLL
public static final ExplodeLoop.LoopExplosionKind FULL_EXPLODE
public static final ExplodeLoop.LoopExplosionKind FULL_EXPLODE_UNTIL_RETURN
ExplodeLoop.LoopExplosionKind.FULL_EXPLODE, but in addition explosion does not stop at loop exits. Code
after the loop is duplicated for every loop exit of every loop iteration. For example, a
loop with 4 iterations and 2 loop exits leads to 4 * 2 = 8 copies of the code after the
loop.public static final ExplodeLoop.LoopExplosionKind MERGE_EXPLODE
ExplodeLoop.LoopExplosionKind.FULL_EXPLODE, but copies of the loop body that have the exact same state
(all local variables have the same value) are merged. This reduces the number of copies
necessary, but can introduce loops again. This kind is useful for bytecode interpreter
loops.public static ExplodeLoop.LoopExplosionKind[] values()
public static ExplodeLoop.LoopExplosionKind valueOf(String name)
name - the name of the enum constant to be returned.IllegalArgumentException - if this enum type has no constant with the specified nameNullPointerException - if the argument is null