package org.graalvm.compiler.lir.phases;
import java.util.*;
import org.graalvm.compiler.options.*;
import org.graalvm.compiler.options.OptionType;
public class PostAllocationOptimizationStage_OptionDescriptors implements OptionDescriptors {
@Override
public OptionDescriptor get(String value) {
switch (value) {
case "LIROptControlFlowOptimizer": {
return OptionDescriptor.create(
"LIROptControlFlowOptimizer",
OptionType.Debug,
Boolean.class,
"",
PostAllocationOptimizationStage.Options.class,
"LIROptControlFlowOptimizer",
PostAllocationOptimizationStage.Options.LIROptControlFlowOptimizer);
}
case "LIROptEdgeMoveOptimizer": {
return OptionDescriptor.create(
"LIROptEdgeMoveOptimizer",
OptionType.Debug,
Boolean.class,
"",
PostAllocationOptimizationStage.Options.class,
"LIROptEdgeMoveOptimizer",
PostAllocationOptimizationStage.Options.LIROptEdgeMoveOptimizer);
}
case "LIROptNullCheckOptimizer": {
return OptionDescriptor.create(
"LIROptNullCheckOptimizer",
OptionType.Debug,
Boolean.class,
"",
PostAllocationOptimizationStage.Options.class,
"LIROptNullCheckOptimizer",
PostAllocationOptimizationStage.Options.LIROptNullCheckOptimizer);
}
case "LIROptRedundantMoveElimination": {
return OptionDescriptor.create(
"LIROptRedundantMoveElimination",
OptionType.Debug,
Boolean.class,
"",
PostAllocationOptimizationStage.Options.class,
"LIROptRedundantMoveElimination",
PostAllocationOptimizationStage.Options.LIROptRedundantMoveElimination);
}
case "LIRProfileMethods": {
return OptionDescriptor.create(
"LIRProfileMethods",
OptionType.Debug,
Boolean.class,
"Enables profiling of methods.",
PostAllocationOptimizationStage.Options.class,
"LIRProfileMethods",
PostAllocationOptimizationStage.Options.LIRProfileMethods);
}
case "LIRProfileMoves": {
return OptionDescriptor.create(
"LIRProfileMoves",
OptionType.Debug,
Boolean.class,
"Enables profiling of move types on LIR level. Move types are for example stores (register to stack), constant loads (constant to register) or copies (register to register).",
PostAllocationOptimizationStage.Options.class,
"LIRProfileMoves",
PostAllocationOptimizationStage.Options.LIRProfileMoves);
}
}
return null;
}
@Override
public Iterator<OptionDescriptor> iterator() {
return new Iterator<OptionDescriptor>() {
int i = 0;
@Override
public boolean hasNext() {
return i < 6;
}
@Override
public OptionDescriptor next() {
switch (i++) {
case 0: return get("LIROptControlFlowOptimizer");
case 1: return get("LIROptEdgeMoveOptimizer");
case 2: return get("LIROptNullCheckOptimizer");
case 3: return get("LIROptRedundantMoveElimination");
case 4: return get("LIRProfileMethods");
case 5: return get("LIRProfileMoves");
}
throw new NoSuchElementException();
}
};
}
}