# HG changeset patch # User Doug Simon # Date 1378132877 -7200 # Node ID be283d587cfcedb32ad78d725b81af865187f9fc # Parent 8056b2a9865c4efe2660e9033b28e83ac049b150 moved IntrinsificationsEnabled and IntrinsificationsDisabled to new GraalCompiler.Options class documented how GraalCompiler.positiveIntrinsificationsFilter field is used for fast path in shouldIntrinsify() diff -r 8056b2a9865c -r be283d587cfc graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Mon Sep 02 15:51:06 2013 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Mon Sep 02 16:41:17 2013 +0200 @@ -22,6 +22,7 @@ */ package com.oracle.graal.compiler; +import static com.oracle.graal.compiler.GraalCompiler.Options.*; import static com.oracle.graal.compiler.MethodFilter.*; import static com.oracle.graal.phases.GraalOptions.*; @@ -42,6 +43,7 @@ import com.oracle.graal.nodes.cfg.*; import com.oracle.graal.nodes.spi.*; import com.oracle.graal.nodes.util.*; +import com.oracle.graal.options.*; import com.oracle.graal.phases.*; import com.oracle.graal.phases.PhasePlan.PhasePosition; import com.oracle.graal.phases.common.*; @@ -57,17 +59,47 @@ private static final DebugTimer FrontEnd = Debug.timer("FrontEnd"); private static final DebugTimer BackEnd = Debug.timer("BackEnd"); + /** + * The set of positive filters specified by the {@code -G:IntrinsificationsEnabled} option. To + * enable a fast path in {@link #shouldIntrinsify(JavaMethod)}, this field is {@code null} when + * no enabling/disabling filters are specified. + */ private static final MethodFilter[] positiveIntrinsificationFilter; + + /** + * The set of negative filters specified by the {@code -G:IntrinsificationsDisabled} option. + */ private static final MethodFilter[] negativeIntrinsificationFilter; + + static class Options { + + // @formatter:off + /** + * @see MethodFilter + */ + @Option(help = "Pattern for method(s) to which intrinsification (if available) will be applied. " + + "By default, all available intrinsifications are applied except for methods matched " + + "by IntrinsificationsDisabled. See MethodFilter class for pattern syntax.") + public static final OptionValue IntrinsificationsEnabled = new OptionValue<>(null); + /** + * @see MethodFilter + */ + @Option(help = "Pattern for method(s) to which intrinsification will not be applied. " + + "See MethodFilter class for pattern syntax.") + public static final OptionValue IntrinsificationsDisabled = new OptionValue<>("Object.clone"); + // @formatter:on + + } + static { - if (GraalDebugConfig.IntrinsificationsDisabled.getValue() != null) { - negativeIntrinsificationFilter = parse(GraalDebugConfig.IntrinsificationsDisabled.getValue()); + if (IntrinsificationsDisabled.getValue() != null) { + negativeIntrinsificationFilter = parse(IntrinsificationsDisabled.getValue()); } else { negativeIntrinsificationFilter = null; } - if (GraalDebugConfig.IntrinsificationsEnabled.getValue() != null) { - positiveIntrinsificationFilter = parse(GraalDebugConfig.IntrinsificationsEnabled.getValue()); + if (Options.IntrinsificationsEnabled.getValue() != null) { + positiveIntrinsificationFilter = parse(IntrinsificationsEnabled.getValue()); } else if (negativeIntrinsificationFilter != null) { positiveIntrinsificationFilter = new MethodFilter[0]; } else { @@ -77,8 +109,7 @@ /** * Determines if a given method should be intrinsified based on the values of - * {@link GraalDebugConfig#IntrinsificationsEnabled} and - * {@link GraalDebugConfig#IntrinsificationsDisabled}. + * {@link Options#IntrinsificationsEnabled} and {@link Options#IntrinsificationsDisabled}. */ public static boolean shouldIntrinsify(JavaMethod method) { if (positiveIntrinsificationFilter == null) { diff -r 8056b2a9865c -r be283d587cfc graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java Mon Sep 02 15:51:06 2013 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java Mon Sep 02 16:41:17 2013 +0200 @@ -66,19 +66,6 @@ return enabled; } }; - /** - * @see MethodFilter - */ - @Option(help = "Pattern for method(s) to which intrinsification (if available) will be applied. " + - "By default, all available intrinsifications are applied except for methods matched " + - "by IntrinsificationsDisabled. See MethodFilter class for pattern syntax.") - public static final OptionValue IntrinsificationsEnabled = new OptionValue<>(null); - /** - * @see MethodFilter - */ - @Option(help = "Pattern for method(s) to which intrinsification will not be applied. " + - "See MethodFilter class for pattern syntax.") - public static final OptionValue IntrinsificationsDisabled = new OptionValue<>("Object.clone"); // @formatter:on private final DebugFilter logFilter;