src/hotspot/share/jvmci/jvmci_globals.hpp
changeset 54669 ad45b3802d4e
parent 53244 9807daeb47c4
child 54732 2d012a75d35c
--- a/src/hotspot/share/jvmci/jvmci_globals.hpp	Wed May 01 12:41:26 2019 -0400
+++ b/src/hotspot/share/jvmci/jvmci_globals.hpp	Wed May 01 12:31:29 2019 -0700
@@ -25,7 +25,7 @@
 #ifndef SHARE_JVMCI_JVMCI_GLOBALS_HPP
 #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 +62,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 +99,17 @@
   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")                                            \
                                                                             \
   NOT_COMPILER2(diagnostic(bool, UseMultiplyToLenIntrinsic, false,          \
           "Enables intrinsification of BigInteger.multiplyToLen()"))        \
@@ -130,14 +141,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