--- old/src/hotspot/share/jvmci/jvmci_globals.hpp 2019-03-28 11:22:57.000000000 -0700 +++ new/src/hotspot/share/jvmci/jvmci_globals.hpp 2019-03-28 11:22:57.000000000 -0700 @@ -26,6 +26,7 @@ #define SHARE_JVMCI_JVMCI_GLOBALS_HPP #include "runtime/globals.hpp" +#include "utilities/ostream.hpp" // // Defines all global flags used by the JVMCI compiler. Only flags that need @@ -62,11 +63,13 @@ "Print JVMCI bootstrap progress and summary") \ \ experimental(intx, JVMCIThreads, 1, \ - "Force number of JVMCI compiler threads to use") \ + "Force number of JVMCI compiler threads to use. Ignored if " \ + "UseJVMCICompiler is false.") \ range(1, max_jint) \ \ experimental(intx, JVMCIHostThreads, 1, \ - "Force number of compiler threads for JVMCI host compiler") \ + "Force number of C1 compiler threads. Ignored if " \ + "UseJVMCICompiler is false.") \ range(1, max_jint) \ \ NOT_COMPILER2(product(intx, MaxVectorSize, 64, \ @@ -97,8 +100,21 @@ experimental(intx, MethodProfileWidth, 0, \ "Number of methods to record in call profile") \ \ - develop(bool, TraceUncollectedSpeculations, false, \ - "Print message when a failed speculation was not collected") \ + 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") \ + \ + experimental(ccstr, TraceClassLoadingCause, NULL, \ + "Print Java stack trace when loading a class whose fully" \ + "qualified name contains this string (\"*\" matches any class).") \ \ NOT_COMPILER2(diagnostic(bool, UseMultiplyToLenIntrinsic, false, \ "Enables intrinsification of BigInteger.multiplyToLen()")) \ @@ -130,14 +146,22 @@ IGNORE_CONSTRAINT, \ IGNORE_WRITEABLE) +// The base name for the shared library containing the JVMCI based compiler +#define JVMCI_SHARED_LIBRARY_NAME "jvmcicompiler" + class JVMCIGlobals { + private: + static fileStream* _jni_config_file; public: - // Return true if jvmci flags are consistent. If not consistent, + + // Returns true if jvmci flags are consistent. If not consistent, // an error message describing the inconsistency is printed before // returning false. static bool check_jvmci_flags_are_consistent(); // Check and exit VM with error if selected GC is not supported by JVMCI. static void check_jvmci_supported_gc(); + + static fileStream* get_jni_config_file() { return _jni_config_file; } }; #endif // SHARE_JVMCI_JVMCI_GLOBALS_HPP