class BoolObjectClosure; class constantPoolHandle; class JavaThread; class JVMCIEnv; class JVMCIRuntime; class Metadata; class MetadataHandleBlock; class OopClosure; class OopStorage;
class JVMCI : public AllStatic { friendclass JVMCIRuntime; friendclass JVMCIEnv;
private: // List of libjvmci based JVMCIRuntimes. // Should only be accessed under JVMCI_lock. static JVMCIRuntime* _compiler_runtimes;
// Special libjvmci based JVMCIRuntime reserved for // threads trying to attach when in JVMCI shutdown. // This preserves the invariant that JVMCIRuntime::for_thread() // never returns nullptr. static JVMCIRuntime* _shutdown_compiler_runtime;
// True when at least one JVMCIRuntime::initialize_HotSpotJVMCIRuntime() // execution has completed successfully. staticvolatilebool _is_initialized;
// True once boxing cache classes are guaranteed to be initialized. staticbool _box_caches_initialized;
// Handle created when loading the JVMCI shared library with os::dll_load. // Must hold JVMCI_lock when initializing. staticvoid* _shared_library_handle;
// Argument to os::dll_load when loading JVMCI shared library staticchar* _shared_library_path;
// Records whether JVMCI::shutdown has been called. staticvolatilebool _in_shutdown;
// Access to the HotSpot heap based JVMCIRuntime static JVMCIRuntime* _java_runtime;
// The file descriptor to which fatal_log() writes. Initialized on // first call to fatal_log(). staticvolatileint _fatal_log_fd;
// The path of the file underlying _fatal_log_fd if it is a normal file. staticconstchar* _fatal_log_filename;
// Native thread id of thread that will initialize _fatal_log_fd. staticvolatile intx _fatal_log_init_thread;
// Returns true iff there is a new shared library JavaVM per compilation. staticbool one_shared_library_javavm_per_compilation() { return JVMCIThreadsPerNativeLibraryRuntime == 1 && JVMCICompilerIdleDelay == 0;
}
// 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`. staticvoid* get_shared_library(char*& path, bool load);
// Logs the fatal crash data in `buf` to the appropriate stream. staticvoid fatal_log(constchar* buf, size_t count);
// Gets the name of the opened JVMCI shared library crash data file or NULL // if this file has not been created. staticconstchar* fatal_log_filename() { return _fatal_log_filename; }
staticvoid do_unloading(bool unloading_occurred);
staticvoid metadata_do(void f(Metadata*));
staticvoid shutdown(JavaThread* thread);
// Returns whether JVMCI::shutdown has been called. staticbool in_shutdown();
// Ensures the boxing cache classes (e.g., java.lang.Integer.IntegerCache) are initialized. staticvoid ensure_box_caches_initialized(TRAPS);
// Increments a value indicating some JVMCI compilation activity // happened on `thread` if it is a CompilerThread. // Returns `thread`. static JavaThread* compilation_tick(JavaThread* thread);
// 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; }
// Gets the JVMCI shared library runtime associated with `thread`. // This must only be called when UseJVMCINativeLibrary is true. // If `create` is true and there is no runtime currently associated with // `thread`, this method creates one. static JVMCIRuntime* compiler_runtime(JavaThread* thread, bool create=true);
// Appends an event to the JVMCI event log if JVMCIEventLogLevel >= `level` staticvoid vlog(int level, constchar* format, va_list ap) ATTRIBUTE_PRINTF(2, 0);
// Traces an event to tty if JVMCITraceLevel >= `level` staticvoid vtrace(int level, constchar* format, va_list ap) ATTRIBUTE_PRINTF(2, 0);
public: // Log/trace a JVMCI event staticvoid event(int level, constchar* format, ...) ATTRIBUTE_PRINTF(2, 3); staticvoid event1(constchar* format, ...) ATTRIBUTE_PRINTF(1, 2); staticvoid event2(constchar* format, ...) ATTRIBUTE_PRINTF(1, 2); staticvoid event3(constchar* format, ...) ATTRIBUTE_PRINTF(1, 2); staticvoid event4(constchar* format, ...) ATTRIBUTE_PRINTF(1, 2);
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.