diff src/share/vm/jvmci/vmStructs_jvmci.hpp @ 23679:b5557b757040

fix HotSpotVMConfig startup performance (JDK-8159167)
author Doug Simon <doug.simon@oracle.com>
date Wed, 15 Jun 2016 00:00:41 +0200
parents 24505bf61633
children daded759b24d
line wrap: on
line diff
--- a/src/share/vm/jvmci/vmStructs_jvmci.hpp	Fri Jun 10 14:04:40 2016 +0200
+++ b/src/share/vm/jvmci/vmStructs_jvmci.hpp	Wed Jun 15 00:00:41 2016 +0200
@@ -31,14 +31,61 @@
 #include "jvmci/jvmciEnv.hpp"
 
 #define VM_STRUCTS_JVMCI(nonstatic_field, static_field)                       \
-  nonstatic_field(JavaThread,    _pending_deoptimization, int)                \
-  nonstatic_field(JavaThread,    _pending_failed_speculation, oop)            \
-  nonstatic_field(JavaThread,    _pending_transfer_to_interpreter, bool)      \
-  nonstatic_field(MethodData,    _jvmci_ir_size, int)                         \
-  nonstatic_field(JVMCIEnv,      _task, CompileTask*)                         \
-  nonstatic_field(JVMCIEnv,      _jvmti_can_hotswap_or_post_breakpoint, bool) \
+  static_field(CompilerToVM::Data,             Klass_vtable_start_offset,              int)                                          \
+  static_field(CompilerToVM::Data,             Klass_vtable_length_offset,             int)                                          \
+                                                                                                                                     \
+  static_field(CompilerToVM::Data,             Method_extra_stack_entries,             int)                                          \
+                                                                                                                                     \
+  static_field(CompilerToVM::Data,             SharedRuntime_ic_miss_stub,             address)                                      \
+  static_field(CompilerToVM::Data,             SharedRuntime_handle_wrong_method_stub, address)                                      \
+  static_field(CompilerToVM::Data,             SharedRuntime_deopt_blob_unpack,        address)                                      \
+  static_field(CompilerToVM::Data,             SharedRuntime_deopt_blob_uncommon_trap, address)                                      \
+                                                                                                                                     \
+  static_field(CompilerToVM::Data,             ThreadLocalAllocBuffer_alignment_reserve, size_t)                                     \
+                                                                                                                                     \
+  static_field(CompilerToVM::Data,             Universe_collectedHeap,                 CollectedHeap*)                               \
+  static_field(CompilerToVM::Data,             Universe_base_vtable_size,              int)                                          \
+  static_field(CompilerToVM::Data,             Universe_narrow_oop_base,               address)                                      \
+  static_field(CompilerToVM::Data,             Universe_narrow_oop_shift,              int)                                          \
+  static_field(CompilerToVM::Data,             Universe_narrow_klass_base,             address)                                      \
+  static_field(CompilerToVM::Data,             Universe_narrow_klass_shift,            int)                                          \
+  static_field(CompilerToVM::Data,             Universe_non_oop_bits,                  void*)                                        \
+  static_field(CompilerToVM::Data,             Universe_verify_oop_mask,               uintptr_t)                                    \
+  static_field(CompilerToVM::Data,             Universe_verify_oop_bits,               uintptr_t)                                    \
+                                                                                                                                     \
+  static_field(CompilerToVM::Data,             _supports_inline_contig_alloc,          bool)                                         \
+  static_field(CompilerToVM::Data,             _heap_end_addr,                         HeapWord**)                                   \
+  static_field(CompilerToVM::Data,             _heap_top_addr,                         HeapWord**)                                   \
+                                                                                                                                     \
+  static_field(CompilerToVM::Data,             cardtable_start_address,                jbyte*)                                       \
+  static_field(CompilerToVM::Data,             cardtable_shift,                        int)                                          \
+  static_field(CompilerToVM::Data,             g1_young_card,                          int)                                          \
+  static_field(CompilerToVM::Data,             dirty_card,                             int)                                          \
+                                                                                                                                     \
+  static_field(CompilerToVM::Data,             vm_page_size,                           int)                                          \
+                                                                                                                                     \
+  static_field(CompilerToVM::Data,             CodeCache_low_bound,                    address)                                      \
+  static_field(CompilerToVM::Data,             CodeCache_high_bound,                   address)                                      \
+                                                                                                                                     \
+  static_field(CompilerToVM::Data,             dsin,                                   address)                                      \
+  static_field(CompilerToVM::Data,             dcos,                                   address)                                      \
+  static_field(CompilerToVM::Data,             dtan,                                   address)                                      \
+  static_field(CompilerToVM::Data,             dexp,                                   address)                                      \
+  static_field(CompilerToVM::Data,             dlog,                                   address)                                      \
+  static_field(CompilerToVM::Data,             dlog10,                                 address)                                      \
+  static_field(CompilerToVM::Data,             dpow,                                   address)                                      \
+                                                                                                                                     \
+  nonstatic_field(JavaThread,                  _pending_deoptimization,                int)                                          \
+  nonstatic_field(JavaThread,                  _pending_failed_speculation,            oop)                                          \
+  nonstatic_field(JavaThread,                  _pending_transfer_to_interpreter,       bool)                                         \
+  nonstatic_field(JavaThread,                  _jvmci_counters,                        jlong*)                                       \
+  nonstatic_field(MethodData,                  _jvmci_ir_size,                         int)                                          \
+  nonstatic_field(JVMCIEnv,                    _task,                                  CompileTask*)                                 \
+  nonstatic_field(JVMCIEnv,                    _jvmti_can_hotswap_or_post_breakpoint,  bool)                                         \
+  static_field(JVMCIRuntime,                   max_oop_map_stack_offset,               int)                                          \
 
 #define VM_TYPES_JVMCI(declare_type, declare_toplevel_type)                   \
+  declare_toplevel_type(narrowKlass)                                          \
   declare_toplevel_type(JVMCIEnv)                                             \
 
 #define VM_INT_CONSTANTS_JVMCI(declare_constant, declare_preprocessor_constant)                   \
@@ -99,4 +146,63 @@
                                                                                                   \
   declare_constant(Method::invalid_vtable_index)                                                  \
 
+#define VM_ADDRESSES_JVMCI(declare_address, declare_preprocessor_address, declare_function) \
+  declare_function(SharedRuntime::register_finalizer)                     \
+  declare_function(SharedRuntime::exception_handler_for_return_address)   \
+  declare_function(SharedRuntime::OSR_migration_end)                      \
+                                                                          \
+  declare_function(os::dll_load)                                          \
+  declare_function(os::dll_lookup)                                        \
+  declare_function(os::javaTimeMillis)                                    \
+  declare_function(os::javaTimeNanos)                                     \
+                                                                          \
+  declare_function(Deoptimization::fetch_unroll_info)                     \
+  COMPILER2_PRESENT(declare_function(Deoptimization::uncommon_trap))      \
+  declare_function(Deoptimization::unpack_frames)                         \
+                                                                          \
+  declare_function(JVMCIRuntime::new_instance) \
+  declare_function(JVMCIRuntime::new_array) \
+  declare_function(JVMCIRuntime::new_multi_array) \
+  declare_function(JVMCIRuntime::dynamic_new_array) \
+  declare_function(JVMCIRuntime::dynamic_new_instance) \
+  \
+  declare_function(JVMCIRuntime::thread_is_interrupted) \
+  declare_function(JVMCIRuntime::vm_message) \
+  declare_function(JVMCIRuntime::identity_hash_code) \
+  declare_function(JVMCIRuntime::exception_handler_for_pc) \
+  declare_function(JVMCIRuntime::monitorenter) \
+  declare_function(JVMCIRuntime::monitorexit) \
+  declare_function(JVMCIRuntime::throw_and_post_jvmti_exception) \
+  declare_function(JVMCIRuntime::throw_klass_external_name_exception) \
+  declare_function(JVMCIRuntime::throw_class_cast_exception) \
+  declare_function(JVMCIRuntime::log_primitive) \
+  declare_function(JVMCIRuntime::log_object) \
+  declare_function(JVMCIRuntime::log_printf) \
+  declare_function(JVMCIRuntime::vm_error) \
+  declare_function(JVMCIRuntime::load_and_clear_exception) \
+  declare_function(JVMCIRuntime::write_barrier_pre) \
+  declare_function(JVMCIRuntime::write_barrier_post) \
+  declare_function(JVMCIRuntime::validate_object) \
+  \
+  declare_function(JVMCIRuntime::test_deoptimize_call_int)
+
+#ifdef TARGET_OS_FAMILY_linux
+
+#define VM_ADDRESSES_JVMCI_OS(declare_address, declare_preprocessor_address, declare_function) \
+  declare_preprocessor_address("RTLD_DEFAULT", RTLD_DEFAULT)
+
+#endif // TARGET_OS_FAMILY_linux
+
+
+#ifdef TARGET_OS_FAMILY_bsd
+
+#define VM_ADDRESSES_JVMCI_OS(declare_address, declare_preprocessor_address, declare_function) \
+  declare_preprocessor_address("RTLD_DEFAULT", RTLD_DEFAULT)
+
+#endif // TARGET_OS_FAMILY_bsd
+
+#ifndef VM_ADDRESSES_JVMCI_OS
+#define VM_ADDRESSES_JVMCI_OS(declare_address, declare_preprocessor_address, declare_function)
+#endif
+
 #endif // SHARE_VM_JVMCI_VMSTRUCTS_JVMCI_HPP