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;