< prev index next >

src/hotspot/share/jvmci/jvmci_globals.hpp

Print this page

@@ -28,117 +28,106 @@
 #include "runtime/flags/jvmFlag.hpp"
 
 class fileStream;
 
 //
-// Defines all global flags used by the JVMCI compiler. Only flags that need
+// Declare all global flags used by the JVMCI compiler. Only flags that need
 // to be accessible to the JVMCI C++ code should be defined here.
 //
-#define JVMCI_FLAGS(develop, \
-                    develop_pd, \
-                    product, \
-                    product_pd, \
-                    diagnostic, \
-                    diagnostic_pd, \
-                    experimental, \
-                    notproduct, \
-                    range, \
-                    constraint) \
-                                                                            \
-  experimental(bool, EnableJVMCI, false,                                    \
-          "Enable JVMCI")                                                   \
-                                                                            \
-  experimental(bool, EnableJVMCIProduct, false,                             \
-          "Allow JVMCI to be used in product mode. This alters a subset of "\
-          "JVMCI flags to be non-experimental, defaults UseJVMCICompiler "  \
-          "and EnableJVMCI to true and defaults UseJVMCINativeLibrary "     \
-          "to true if a JVMCI native library is available.")                \
-                                                                            \
-  experimental(bool, UseJVMCICompiler, false,                               \
-          "Use JVMCI as the default compiler. Defaults to true if "         \
-          "EnableJVMCIProduct is true.")                                    \
-                                                                            \
-  experimental(bool, JVMCIPrintProperties, false,                           \
-          "Prints properties used by the JVMCI compiler and exits")         \
-                                                                            \
-  experimental(bool, BootstrapJVMCI, false,                                 \
-          "Bootstrap JVMCI before running Java main method. This "          \
-          "initializes the compile queue with a small set of methods "      \
-          "and processes the queue until it is empty. Combining this with " \
-          "-XX:-TieredCompilation makes JVMCI compile more of itself.")     \
-                                                                            \
-  experimental(bool, EagerJVMCI, false,                                     \
-          "Force eager JVMCI initialization")                               \
-                                                                            \
-  experimental(bool, PrintBootstrap, true,                                  \
-          "Print JVMCI bootstrap progress and summary")                     \
-                                                                            \
-  experimental(intx, JVMCIThreads, 1,                                       \
-          "Force number of JVMCI compiler threads to use. Ignored if "      \
-          "UseJVMCICompiler is false.")                                     \
-          range(1, max_jint)                                                \
-                                                                            \
-  experimental(intx, JVMCIHostThreads, 1,                                   \
-          "Force number of C1 compiler threads. Ignored if "                \
-          "UseJVMCICompiler is false.")                                     \
-          range(1, max_jint)                                                \
-                                                                            \
-  NOT_COMPILER2(product(intx, MaxVectorSize, 64,                            \
-          "Max vector size in bytes, "                                      \
-          "actual size could be less depending on elements type")           \
-          range(0, max_jint))                                               \
-                                                                            \
-  NOT_COMPILER2(product(bool, ReduceInitialCardMarks, true,                 \
-          "Defer write barriers of young objects"))                         \
-                                                                            \
-  experimental(intx, JVMCITraceLevel, 0,                                    \
-          "Trace level for JVMCI: "                                         \
-          "1 means emit a message for each CompilerToVM call,"              \
-          "levels greater than 1 provide progressively greater detail")     \
-          range(0, 6)                                                       \
-                                                                            \
-  experimental(intx, JVMCICounterSize, 0,                                   \
-          "Reserved size for benchmark counters")                           \
-          range(0, 1000000)                                                 \
-                                                                            \
-  experimental(bool, JVMCICountersExcludeCompiler, true,                    \
-          "Exclude JVMCI compiler threads from benchmark counters")         \
-                                                                            \
-  develop(bool, JVMCIUseFastLocking, true,                                  \
-          "Use fast inlined locking code")                                  \
-                                                                            \
-  experimental(intx, JVMCINMethodSizeLimit, (80*K)*wordSize,                \
-          "Maximum size of a compiled method.")                             \
-          range(0, max_jint)                                                \
-                                                                            \
-  experimental(ccstr, JVMCILibPath, NULL,                                   \
-          "LD path for loading the JVMCI shared library")                   \
-                                                                            \
-  experimental(ccstr, JVMCILibDumpJNIConfig, NULL,                          \
-          "Dumps to the given file a description of the classes, fields "   \
-          "and methods the JVMCI shared library must provide")              \
-                                                                            \
-  experimental(bool, UseJVMCINativeLibrary, false,                          \
-          "Execute JVMCI Java code from a shared library "                  \
-          "instead of loading it from class files and executing it "        \
-          "on the HotSpot heap. Defaults to true if EnableJVMCIProduct is " \
-          "true and a JVMCI native library is available.")                  \
-                                                                            \
-  NOT_COMPILER2(diagnostic(bool, UseMultiplyToLenIntrinsic, false,          \
-          "Enables intrinsification of BigInteger.multiplyToLen()"))        \
-                                                                            \
-  NOT_COMPILER2(diagnostic(bool, UseSquareToLenIntrinsic, false,            \
-          "Enables intrinsification of BigInteger.squareToLen()"))          \
-                                                                            \
-  NOT_COMPILER2(diagnostic(bool, UseMulAddIntrinsic, false,                 \
-          "Enables intrinsification of BigInteger.mulAdd()"))               \
-                                                                            \
-  NOT_COMPILER2(diagnostic(bool, UseMontgomeryMultiplyIntrinsic, false,     \
-          "Enables intrinsification of BigInteger.montgomeryMultiply()"))   \
-                                                                            \
-  NOT_COMPILER2(diagnostic(bool, UseMontgomerySquareIntrinsic, false,       \
-          "Enables intrinsification of BigInteger.montgomerySquare()"))
+#include "utilities/macros.hpp"
+#if INCLUDE_JVMCI
+#include "runtime/flags/jvmFlag.hpp"
+PRODUCT_FLAG(bool,     EnableJVMCI, false, JVMFlag::EXPERIMENTAL,
+                       "Enable JVMCI");
+
+PRODUCT_FLAG(bool,     EnableJVMCIProduct, false, JVMFlag::EXPERIMENTAL,
+                       "Allow JVMCI to be used in product mode. This alters a subset of "
+                       "JVMCI flags to be non-experimental, defaults UseJVMCICompiler "
+                       "and EnableJVMCI to true and defaults UseJVMCINativeLibrary "
+                       "to true if a JVMCI native library is available.");
+
+PRODUCT_FLAG(bool,     UseJVMCICompiler, false, JVMFlag::EXPERIMENTAL,
+                       "Use JVMCI as the default compiler. Defaults to true if "
+                       "EnableJVMCIProduct is true.");
+
+PRODUCT_FLAG(bool,     JVMCIPrintProperties, false, JVMFlag::EXPERIMENTAL,
+                       "Prints properties used by the JVMCI compiler and exits");
+
+PRODUCT_FLAG(bool,     BootstrapJVMCI, false, JVMFlag::EXPERIMENTAL,
+                       "Bootstrap JVMCI before running Java main method. This "
+                       "initializes the compile queue with a small set of methods "
+                       "and processes the queue until it is empty. Combining this with "
+                       "-XX:-TieredCompilation makes JVMCI compile more of itself.");
+
+PRODUCT_FLAG(bool,     EagerJVMCI, false, JVMFlag::EXPERIMENTAL,
+                       "Force eager JVMCI initialization");
+
+PRODUCT_FLAG(bool,     PrintBootstrap, true, JVMFlag::EXPERIMENTAL,
+                       "Print JVMCI bootstrap progress and summary");
+
+PRODUCT_FLAG(intx,     JVMCIThreads, 1, JVMFlag::EXPERIMENTAL | JVMFlag::RANGE,
+                       "Force number of JVMCI compiler threads to use. Ignored if "
+                       "UseJVMCICompiler is false.");
+   FLAG_RANGE(         JVMCIThreads, 1, max_jint);
+
+PRODUCT_FLAG(intx,     JVMCIHostThreads, 1, JVMFlag::EXPERIMENTAL | JVMFlag::RANGE,
+                       "Force number of C1 compiler threads. Ignored if "
+                       "UseJVMCICompiler is false.");
+   FLAG_RANGE(         JVMCIHostThreads, 1, max_jint);
+
+NOT_COMPILER2(PRODUCT_FLAG(intx,     MaxVectorSize, 64, JVMFlag::RANGE,
+                       "Max vector size in bytes, "
+                       "actual size could be less depending on elements type");)
+
+NOT_COMPILER2(PRODUCT_FLAG(bool,     ReduceInitialCardMarks, true, JVMFlag::DEFAULT,
+                       "Defer write barriers of young objects");)
+
+PRODUCT_FLAG(intx,     JVMCITraceLevel, 0, JVMFlag::EXPERIMENTAL | JVMFlag::RANGE,
+                       "Trace level for JVMCI: "
+                       "1 means emit a message for each CompilerToVM call,"
+                       "levels greater than 1 provide progressively greater detail");
+   FLAG_RANGE(         JVMCITraceLevel, 0, 6);
+
+PRODUCT_FLAG(intx,     JVMCICounterSize, 0, JVMFlag::EXPERIMENTAL | JVMFlag::RANGE,
+                       "Reserved size for benchmark counters");
+   FLAG_RANGE(         JVMCICounterSize, 0, 1000000);
+
+PRODUCT_FLAG(bool,     JVMCICountersExcludeCompiler, true, JVMFlag::EXPERIMENTAL,
+                       "Exclude JVMCI compiler threads from benchmark counters");
+
+DEVELOP_FLAG(bool,     JVMCIUseFastLocking, true, JVMFlag::DEFAULT,
+                       "Use fast inlined locking code");
+
+PRODUCT_FLAG(intx,     JVMCINMethodSizeLimit, (80*K)*wordSize, JVMFlag::EXPERIMENTAL | JVMFlag::RANGE,
+                       "Maximum size of a compiled method.");
+   FLAG_RANGE(         JVMCINMethodSizeLimit, 0, max_jint);
+
+PRODUCT_FLAG(ccstr,    JVMCILibPath, NULL, JVMFlag::EXPERIMENTAL,
+                       "LD path for loading the JVMCI shared library");
+
+PRODUCT_FLAG(ccstr,    JVMCILibDumpJNIConfig, NULL, JVMFlag::EXPERIMENTAL,
+                       "Dumps to the given file a description of the classes, fields "
+                       "and methods the JVMCI shared library must provide");
+
+PRODUCT_FLAG(bool,     UseJVMCINativeLibrary, false, JVMFlag::EXPERIMENTAL,
+                       "Execute JVMCI Java code from a shared library "
+                       "instead of loading it from class files and executing it "
+                       "on the HotSpot heap. Defaults to true if EnableJVMCIProduct is "
+                       "true and a JVMCI native library is available.");
+
+NOT_COMPILER2(PRODUCT_FLAG(bool,     UseMultiplyToLenIntrinsic, false, JVMFlag::DIAGNOSTIC,
+                       "Enables intrinsification of BigInteger.multiplyToLen()");)
+
+NOT_COMPILER2(PRODUCT_FLAG(bool,     UseSquareToLenIntrinsic, false, JVMFlag::DIAGNOSTIC,
+                       "Enables intrinsification of BigInteger.squareToLen()");)
+
+NOT_COMPILER2(PRODUCT_FLAG(bool,     UseMulAddIntrinsic, false, JVMFlag::DIAGNOSTIC,
+                       "Enables intrinsification of BigInteger.mulAdd()");)
+
+NOT_COMPILER2(PRODUCT_FLAG(bool,     UseMontgomeryMultiplyIntrinsic, false, JVMFlag::DIAGNOSTIC,
+                       "Enables intrinsification of BigInteger.montgomeryMultiply()");)
+#endif // INCLUDE_JVMCI
 
 // The base name for the shared library containing the JVMCI based compiler
 #define JVMCI_SHARED_LIBRARY_NAME "jvmcicompiler"
 
 class JVMCIGlobals {
< prev index next >