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