< prev index next >

src/hotspot/share/jvmci/jvmci_globals.hpp

Print this page

*** 28,144 **** #include "runtime/flags/jvmFlag.hpp" class fileStream; // ! // Defines 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()")) // The base name for the shared library containing the JVMCI based compiler #define JVMCI_SHARED_LIBRARY_NAME "jvmcicompiler" class JVMCIGlobals { --- 28,133 ---- #include "runtime/flags/jvmFlag.hpp" class fileStream; // ! // 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. // ! #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 >