< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/DebugOptions.java
Print this page
*** 28,61 ****
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import jdk.internal.vm.compiler.collections.EconomicMap;
import org.graalvm.compiler.options.Option;
import org.graalvm.compiler.options.OptionKey;
import org.graalvm.compiler.options.OptionType;
import org.graalvm.compiler.options.OptionValues;
import org.graalvm.compiler.serviceprovider.GraalServices;
/**
* Options that configure a {@link DebugContext} and related functionality.
*/
public class DebugOptions {
- static class DeprecatedOptionKey<T> extends OptionKey<T> {
- private final OptionKey<T> replacement;
! DeprecatedOptionKey(OptionKey<T> replacement) {
! super(replacement.getDefaultValue());
! this.replacement = replacement;
! }
!
! @Override
! protected void onValueUpdate(EconomicMap<OptionKey<?>, Object> values, T oldValue, T newValue) {
! // Ideally we'd use TTY here but it may not yet be initialized.
! System.err.printf("Warning: the %s option is deprecated - use %s instead%n", getName(), replacement.getName());
! replacement.update(values, newValue);
! }
}
// @formatter:off
@Option(help = "Comma separated names of timers that are enabled irrespective of the value for Time option. " +
"An empty value enables all timers unconditionally.", type = OptionType.Debug)
--- 28,70 ----
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import jdk.internal.vm.compiler.collections.EconomicMap;
+ import org.graalvm.compiler.options.EnumOptionKey;
import org.graalvm.compiler.options.Option;
import org.graalvm.compiler.options.OptionKey;
import org.graalvm.compiler.options.OptionType;
import org.graalvm.compiler.options.OptionValues;
import org.graalvm.compiler.serviceprovider.GraalServices;
/**
* Options that configure a {@link DebugContext} and related functionality.
*/
public class DebugOptions {
! /**
! * Values for the {@link DebugOptions#PrintGraph} option denoting where graphs dumped as a
! * result of the {@link DebugOptions#Dump} option are sent.
! */
! public enum PrintGraphTarget {
! /**
! * Dump graphs to files.
! */
! File,
!
! /**
! * Dump graphs to the network. The network destination is specified by the
! * {@link DebugOptions#PrintGraphHost} and {@link DebugOptions#PrintGraphPort} options. If a
! * network connection cannot be opened, dumping falls back to {@link #File} dumping.
! */
! Network,
!
! /**
! * Do not dump graphs.
! */
! Disable;
}
// @formatter:off
@Option(help = "Comma separated names of timers that are enabled irrespective of the value for Time option. " +
"An empty value enables all timers unconditionally.", type = OptionType.Debug)
*** 116,143 ****
public static final OptionKey<Boolean> InterceptBailout = new OptionKey<>(false);
@Option(help = "Enable more verbose log output when available", type = OptionType.Debug)
public static final OptionKey<Boolean> LogVerbose = new OptionKey<>(false);
@Option(help = "The directory where various Graal dump files are written.")
! public static final OptionKey<String> DumpPath = new OptionKey<>("dumps");
@Option(help = "Print the name of each dump file path as it's created.")
public static final OptionKey<Boolean> ShowDumpFiles = new OptionKey<>(false);
@Option(help = "Enable dumping to the C1Visualizer. Enabling this option implies PrintBackendCFG.", type = OptionType.Debug)
public static final OptionKey<Boolean> PrintCFG = new OptionKey<>(false);
@Option(help = "Enable dumping LIR, register allocation and code generation info to the C1Visualizer.", type = OptionType.Debug)
public static final OptionKey<Boolean> PrintBackendCFG = new OptionKey<>(true);
! @Option(help = "Enable dumping to the IdealGraphVisualizer.", type = OptionType.Debug)
! public static final OptionKey<Boolean> PrintGraph = new OptionKey<>(true);
! @Option(help = "Print graphs to files instead of sending them over the network.", type = OptionType.Debug)
! public static final OptionKey<Boolean> PrintGraphFile = new OptionKey<>(false);
@Option(help = "Host part of the address to which graphs are dumped.", type = OptionType.Debug)
public static final OptionKey<String> PrintGraphHost = new OptionKey<>("127.0.0.1");
@Option(help = "Port part of the address to which graphs are dumped in binary format.", type = OptionType.Debug)
! public static final OptionKey<Integer> PrintBinaryGraphPort = new OptionKey<>(4445);
@Option(help = "Schedule graphs as they are dumped.", type = OptionType.Debug)
public static final OptionKey<Boolean> PrintGraphWithSchedule = new OptionKey<>(false);
@Option(help = "Enable dumping Truffle ASTs to the IdealGraphVisualizer.", type = OptionType.Debug)
public static final OptionKey<Boolean> PrintTruffleTrees = new OptionKey<>(true);
--- 125,167 ----
public static final OptionKey<Boolean> InterceptBailout = new OptionKey<>(false);
@Option(help = "Enable more verbose log output when available", type = OptionType.Debug)
public static final OptionKey<Boolean> LogVerbose = new OptionKey<>(false);
@Option(help = "The directory where various Graal dump files are written.")
! public static final OptionKey<String> DumpPath = new OptionKey<>("graal_dumps");
@Option(help = "Print the name of each dump file path as it's created.")
public static final OptionKey<Boolean> ShowDumpFiles = new OptionKey<>(false);
@Option(help = "Enable dumping to the C1Visualizer. Enabling this option implies PrintBackendCFG.", type = OptionType.Debug)
public static final OptionKey<Boolean> PrintCFG = new OptionKey<>(false);
@Option(help = "Enable dumping LIR, register allocation and code generation info to the C1Visualizer.", type = OptionType.Debug)
public static final OptionKey<Boolean> PrintBackendCFG = new OptionKey<>(true);
! @Option(help = "file:doc-files/PrintGraphHelp.txt", type = OptionType.Debug)
! public static final EnumOptionKey<PrintGraphTarget> PrintGraph = new EnumOptionKey<>(PrintGraphTarget.File);
!
! @Option(help = "Setting to true sets PrintGraph=file, setting to false sets PrintGraph=network", type = OptionType.Debug)
! public static final OptionKey<Boolean> PrintGraphFile = new OptionKey<Boolean>(true) {
! @Override
! protected void onValueUpdate(EconomicMap<OptionKey<?>, Object> values, Boolean oldValue, Boolean newValue) {
! PrintGraphTarget v = PrintGraph.getValueOrDefault(values);
! if (newValue.booleanValue()) {
! if (v != PrintGraphTarget.File) {
! PrintGraph.update(values, PrintGraphTarget.File);
! }
! } else {
! if (v != PrintGraphTarget.Network) {
! PrintGraph.update(values, PrintGraphTarget.Network);
! }
! }
! }
! };
@Option(help = "Host part of the address to which graphs are dumped.", type = OptionType.Debug)
public static final OptionKey<String> PrintGraphHost = new OptionKey<>("127.0.0.1");
@Option(help = "Port part of the address to which graphs are dumped in binary format.", type = OptionType.Debug)
! public static final OptionKey<Integer> PrintGraphPort = new OptionKey<>(4445);
@Option(help = "Schedule graphs as they are dumped.", type = OptionType.Debug)
public static final OptionKey<Boolean> PrintGraphWithSchedule = new OptionKey<>(false);
@Option(help = "Enable dumping Truffle ASTs to the IdealGraphVisualizer.", type = OptionType.Debug)
public static final OptionKey<Boolean> PrintTruffleTrees = new OptionKey<>(true);
< prev index next >