src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/phases/LIRPhase.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.lir/src/org/graalvm/compiler/lir/phases/LIRPhase.java	Mon Mar 20 17:40:06 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/phases/LIRPhase.java	Mon Mar 20 17:40:06 2017

*** 30,41 **** --- 30,41 ---- import org.graalvm.compiler.debug.DebugMemUseTracker; import org.graalvm.compiler.debug.DebugTimer; import org.graalvm.compiler.lir.LIR; import org.graalvm.compiler.lir.gen.LIRGenerationResult; import org.graalvm.compiler.options.Option; + import org.graalvm.compiler.options.OptionKey; import org.graalvm.compiler.options.OptionType; import org.graalvm.compiler.options.OptionValue; import jdk.vm.ci.code.TargetDescription; /** * Base class for all {@link LIR low-level} phases. Subclasses should be stateless. There will be
*** 44,54 **** --- 44,54 ---- public abstract class LIRPhase<C> { public static class Options { // @formatter:off @Option(help = "Enable LIR level optimiztations.", type = OptionType.Debug) ! public static final OptionValue<Boolean> LIROptimization = new OptionValue<>(true); ! public static final OptionKey<Boolean> LIROptimization = new OptionKey<>(true); // @formatter:on } /** * Records time spent within {@link #apply}.
*** 69,79 **** --- 69,79 ---- /** * Records memory usage within {@link #apply}. */ public final DebugMemUseTracker memUseTracker; ! private LIRPhaseStatistics(Class<?> clazz) { ! public LIRPhaseStatistics(Class<?> clazz) { timer = Debug.timer("LIRPhaseTime_%s", clazz); memUseTracker = Debug.memUseTracker("LIRPhaseMemUse_%s", clazz); } }
*** 82,91 **** --- 82,95 ---- protected LIRPhaseStatistics computeValue(Class<?> c) { return new LIRPhaseStatistics(c); } }; + public static LIRPhaseStatistics getLIRPhaseStatistics(Class<?> c) { + return statisticsClassValue.get(c); + } + /** Lazy initialization to create pattern only when assertions are enabled. */ static class NamePatternHolder { static final Pattern NAME_PATTERN = Pattern.compile("[A-Z][A-Za-z0-9]+"); }
*** 93,103 **** --- 97,107 ---- assert name == null || NamePatternHolder.NAME_PATTERN.matcher(name).matches() : "illegal phase name: " + name; return true; } public LIRPhase() { ! LIRPhaseStatistics statistics = statisticsClassValue.get(getClass()); ! LIRPhaseStatistics statistics = getLIRPhaseStatistics(getClass()); timer = statistics.timer; memUseTracker = statistics.memUseTracker; } public final void apply(TargetDescription target, LIRGenerationResult lirGenRes, C context) {

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/phases/LIRPhase.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File