src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/GraalDebugInitializationParticipant.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/GraalDebugInitializationParticipant.java Mon Mar 20 17:37:42 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/GraalDebugInitializationParticipant.java Mon Mar 20 17:37:42 2017
*** 26,35 ****
--- 26,36 ----
import org.graalvm.compiler.debug.Debug.Params;
import org.graalvm.compiler.debug.DebugInitializationParticipant;
import org.graalvm.compiler.debug.GraalDebugConfig;
import org.graalvm.compiler.debug.TTY;
import org.graalvm.compiler.debug.internal.method.MethodMetricsPrinter;
+ import org.graalvm.compiler.options.OptionValues;
import org.graalvm.compiler.serviceprovider.ServiceProvider;
/**
* A service provider that may modify the initialization of {@link Debug} based on the values
* specified for various {@link GraalDebugConfig} options.
*** 37,92 ****
--- 38,94 ----
@ServiceProvider(DebugInitializationParticipant.class)
public class GraalDebugInitializationParticipant implements DebugInitializationParticipant {
@Override
public void apply(Params params) {
if (GraalDebugConfig.areDebugScopePatternsEnabled()) {
+ OptionValues options = params.getOptions();
+ if (GraalDebugConfig.areDebugScopePatternsEnabled(options)) {
params.enable = true;
}
! if ("".equals(GraalDebugConfig.Options.Count.getValue(options))) {
params.enableUnscopedCounters = true;
}
! if ("".equals(GraalDebugConfig.Options.MethodMeter.getValue(options))) {
params.enableUnscopedMethodMetrics = true;
// mm requires full debugging support
params.enable = true;
}
! if ("".equals(GraalDebugConfig.Options.Time.getValue(options))) {
params.enableUnscopedTimers = true;
}
! if ("".equals(GraalDebugConfig.Options.TrackMemUse.getValue(options))) {
params.enableUnscopedMemUseTrackers = true;
}
// unscoped counters/timers/mem use trackers/method metrics should respect method filter
// semantics
if (!params.enable && (params.enableUnscopedMemUseTrackers || params.enableUnscopedMethodMetrics || params.enableUnscopedCounters || params.enableUnscopedTimers) &&
! GraalDebugConfig.isNotEmpty(GraalDebugConfig.Options.MethodFilter, options)) {
params.enable = true;
params.enableMethodFilter = true;
}
! if (!params.enableUnscopedMethodMetrics && GraalDebugConfig.Options.MethodMeter.getValue(options) != null) {
// mm requires full debugging support
params.enable = true;
}
! if (GraalDebugConfig.isGlobalMetricsInterceptedByMethodMetricsEnabled(options)) {
if (!params.enable) {
TTY.println("WARNING: MethodMeter is disabled but GlobalMetricsInterceptedByMethodMetrics is enabled. Ignoring MethodMeter and GlobalMetricsInterceptedByMethodMetrics.");
} else {
! parseMethodMetricsDebugValueInterception(params, options);
}
}
! if (GraalDebugConfig.isNotEmpty(GraalDebugConfig.Options.MethodMeter, options) || params.enableUnscopedMethodMetrics) {
! if (!MethodMetricsPrinter.methodMetricsDumpingEnabled(options)) {
TTY.println("WARNING: MethodMeter is enabled but MethodMeter dumping is disabled. Output will not contain MethodMetrics.");
}
}
}
! private static void parseMethodMetricsDebugValueInterception(Params params, OptionValues options) {
! String interceptionGroup = GraalDebugConfig.Options.GlobalMetricsInterceptedByMethodMetrics.getValue(options);
boolean intercepted = false;
if (interceptionGroup.contains("Timers")) {
params.interceptTime = true;
intercepted = true;
}
*** 99,107 ****
--- 101,108 ----
intercepted = true;
}
if (!intercepted) {
TTY.println("WARNING: Ignoring GlobalMetricsInterceptedByMethodMetrics as the supplied argument does not contain Timers/Counters/MemUseTrackers.");
GraalDebugConfig.Options.GlobalMetricsInterceptedByMethodMetrics.setValue(null);
}
}
}
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/GraalDebugInitializationParticipant.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File