< prev index next >
src/hotspot/share/jvmci/jvmci.hpp
Print this page
*** 43,66 ****
class JVMCI : public AllStatic {
friend class JVMCIRuntime;
friend class JVMCIEnv;
private:
! // Handles to objects in the HotSpot heap.
! static OopStorage* _object_handles;
! static OopStorage* object_handles();
! // Handles to Metadata objects.
! static MetadataHandleBlock* _metadata_handles;
! // Access to the HotSpotJVMCIRuntime used by the CompileBroker.
! static JVMCIRuntime* _compiler_runtime;
! // Access to the HotSpotJVMCIRuntime used by Java code running on the
! // HotSpot heap. It will be the same as _compiler_runtime if
! // UseJVMCINativeLibrary is false
static JVMCIRuntime* _java_runtime;
public:
enum CodeInstallResult {
ok,
--- 43,70 ----
class JVMCI : public AllStatic {
friend class JVMCIRuntime;
friend class JVMCIEnv;
private:
! // Access to the HotSpotJVMCIRuntime used by the CompileBroker.
! static JVMCIRuntime* _compiler_runtime;
! // True when at least one JVMCIRuntime::initialize_HotSpotJVMCIRuntime()
! // execution has completed successfully.
! static volatile bool _is_initialized;
! // Handle created when loading the JVMCI shared library with os::dll_load.
! // Must hold JVMCI_lock when initializing.
! static void* _shared_library_handle;
! // Argument to os::dll_load when loading JVMCI shared library
! static char* _shared_library_path;
!
! // Records whether JVMCI::shutdown has been called.
! static volatile bool _in_shutdown;
! // Access to the HotSpot heap based JVMCIRuntime
static JVMCIRuntime* _java_runtime;
public:
enum CodeInstallResult {
ok,
*** 68,86 ****
dependencies_invalid,
cache_full,
code_too_large
};
static void do_unloading(bool unloading_occurred);
static void metadata_do(void f(Metadata*));
static void oops_do(OopClosure* f);
static void shutdown();
! static bool shutdown_called();
static bool is_compiler_initialized();
/**
* Determines if the VM is sufficiently booted to initialize JVMCI.
--- 72,97 ----
dependencies_invalid,
cache_full,
code_too_large
};
+ // Gets the handle to the loaded JVMCI shared library, loading it
+ // first if not yet loaded and `load` is true. The path from
+ // which the library is loaded is returned in `path`. If
+ // `load` is true then JVMCI_lock must be locked.
+ static void* get_shared_library(char*& path, bool load);
+
static void do_unloading(bool unloading_occurred);
static void metadata_do(void f(Metadata*));
static void oops_do(OopClosure* f);
static void shutdown();
! // Returns whether JVMCI::shutdown has been called.
! static bool in_shutdown();
static bool is_compiler_initialized();
/**
* Determines if the VM is sufficiently booted to initialize JVMCI.
*** 89,107 ****
static void initialize_globals();
static void initialize_compiler(TRAPS);
- static jobject make_global(const Handle& obj);
- static void destroy_global(jobject handle);
- static bool is_global_handle(jobject handle);
-
- static jmetadata allocate_handle(const methodHandle& handle);
- static jmetadata allocate_handle(const constantPoolHandle& handle);
-
- static void release_handle(jmetadata handle);
-
static JVMCIRuntime* compiler_runtime() { return _compiler_runtime; }
static JVMCIRuntime* java_runtime() { return _java_runtime; }
};
#endif // SHARE_JVMCI_JVMCI_HPP
--- 100,111 ----
static void initialize_globals();
static void initialize_compiler(TRAPS);
static JVMCIRuntime* compiler_runtime() { return _compiler_runtime; }
+ // Gets the single runtime for JVMCI on the Java heap. This is the only
+ // JVMCI runtime available when !UseJVMCINativeLibrary.
static JVMCIRuntime* java_runtime() { return _java_runtime; }
};
#endif // SHARE_JVMCI_JVMCI_HPP
< prev index next >