Mercurial > hg > truffle
changeset 11504:be283d587cfc
moved IntrinsificationsEnabled and IntrinsificationsDisabled to new GraalCompiler.Options class
documented how GraalCompiler.positiveIntrinsificationsFilter field is used for fast path in shouldIntrinsify()
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 02 Sep 2013 16:41:17 +0200 |
parents | 8056b2a9865c |
children | 231958c9ddf9 |
files | graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java |
diffstat | 2 files changed, 37 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- 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<String> 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<String> 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) {
--- 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<String> 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<String> IntrinsificationsDisabled = new OptionValue<>("Object.clone"); // @formatter:on private final DebugFilter logFilter;