29 #include "gc/shared/collectedHeap.hpp"
30 #include "interpreter/bytecodes.hpp"
31 #include "memory/universe.hpp"
32 #include "prims/methodHandles.hpp"
33 #include "runtime/flags/jvmFlag.hpp"
34 #include "runtime/handles.inline.hpp"
35 #include "runtime/icache.hpp"
36 #include "runtime/init.hpp"
37 #include "runtime/safepoint.hpp"
38 #include "runtime/sharedRuntime.hpp"
39 #include "services/memTracker.hpp"
40 #include "utilities/macros.hpp"
41
42
43 // Initialization done by VM thread in vm_init_globals()
44 void check_ThreadShadow();
45 void eventlog_init();
46 void mutex_init();
47 void chunkpool_init();
48 void perfMemory_init();
49 void SuspendibleThreadSet_init() NOT_ALL_GCS_RETURN;
50
51 // Initialization done by Java thread in init_globals()
52 void management_init();
53 void bytecodes_init();
54 void classLoader_init1();
55 void compilationPolicy_init();
56 void codeCache_init();
57 void VM_Version_init();
58 void os_init_globals(); // depends on VM_Version_init, before universe_init
59 void stubRoutines_init1();
60 jint universe_init(); // depends on codeCache_init and stubRoutines_init
61 // depends on universe_init, must be before interpreter_init (currently only on SPARC)
62 void gc_barrier_stubs_init();
63 void interpreter_init(); // before any methods loaded
64 void invocationCounter_init(); // before any methods loaded
65 void marksweep_init();
66 void accessFlags_init();
67 void templateTable_init();
68 void InterfaceSupport_init();
69 void universe2_init(); // dependent on codeCache_init and stubRoutines_init, loads primordial classes
70 void referenceProcessor_init();
71 void jni_handles_init();
72 void vmStructs_init();
73
74 void vtableStubs_init();
75 void InlineCacheBuffer_init();
76 void compilerOracle_init();
77 bool compileBroker_init();
78 void dependencyContext_init();
79
80 // Initialization after compiler initialization
81 bool universe_post_init(); // must happen after compiler_init
82 void javaClasses_init(); // must happen after vtable initialization
83 void stubRoutines_init2(); // note: StubRoutines need 2-phase init
84
85 // Do not disable thread-local-storage, as it is important for some
100
101
102 jint init_globals() {
103 HandleMark hm;
104 management_init();
105 bytecodes_init();
106 classLoader_init1();
107 compilationPolicy_init();
108 codeCache_init();
109 VM_Version_init();
110 os_init_globals();
111 stubRoutines_init1();
112 jint status = universe_init(); // dependent on codeCache_init and
113 // stubRoutines_init1 and metaspace_init.
114 if (status != JNI_OK)
115 return status;
116
117 gc_barrier_stubs_init(); // depends on universe_init, must be before interpreter_init
118 interpreter_init(); // before any methods loaded
119 invocationCounter_init(); // before any methods loaded
120 marksweep_init();
121 accessFlags_init();
122 templateTable_init();
123 InterfaceSupport_init();
124 SharedRuntime::generate_stubs();
125 universe2_init(); // dependent on codeCache_init and stubRoutines_init1
126 javaClasses_init();// must happen after vtable initialization, before referenceProcessor_init
127 referenceProcessor_init();
128 jni_handles_init();
129 #if INCLUDE_VM_STRUCTS
130 vmStructs_init();
131 #endif // INCLUDE_VM_STRUCTS
132
133 vtableStubs_init();
134 InlineCacheBuffer_init();
135 compilerOracle_init();
136 dependencyContext_init();
137
138 if (!compileBroker_init()) {
139 return JNI_EINVAL;
140 }
|
29 #include "gc/shared/collectedHeap.hpp"
30 #include "interpreter/bytecodes.hpp"
31 #include "memory/universe.hpp"
32 #include "prims/methodHandles.hpp"
33 #include "runtime/flags/jvmFlag.hpp"
34 #include "runtime/handles.inline.hpp"
35 #include "runtime/icache.hpp"
36 #include "runtime/init.hpp"
37 #include "runtime/safepoint.hpp"
38 #include "runtime/sharedRuntime.hpp"
39 #include "services/memTracker.hpp"
40 #include "utilities/macros.hpp"
41
42
43 // Initialization done by VM thread in vm_init_globals()
44 void check_ThreadShadow();
45 void eventlog_init();
46 void mutex_init();
47 void chunkpool_init();
48 void perfMemory_init();
49 void SuspendibleThreadSet_init();
50
51 // Initialization done by Java thread in init_globals()
52 void management_init();
53 void bytecodes_init();
54 void classLoader_init1();
55 void compilationPolicy_init();
56 void codeCache_init();
57 void VM_Version_init();
58 void os_init_globals(); // depends on VM_Version_init, before universe_init
59 void stubRoutines_init1();
60 jint universe_init(); // depends on codeCache_init and stubRoutines_init
61 // depends on universe_init, must be before interpreter_init (currently only on SPARC)
62 void gc_barrier_stubs_init();
63 void interpreter_init(); // before any methods loaded
64 void invocationCounter_init(); // before any methods loaded
65 #if INCLUDE_SERIALGC
66 void marksweep_init();
67 #endif
68 void accessFlags_init();
69 void templateTable_init();
70 void InterfaceSupport_init();
71 void universe2_init(); // dependent on codeCache_init and stubRoutines_init, loads primordial classes
72 void referenceProcessor_init();
73 void jni_handles_init();
74 void vmStructs_init();
75
76 void vtableStubs_init();
77 void InlineCacheBuffer_init();
78 void compilerOracle_init();
79 bool compileBroker_init();
80 void dependencyContext_init();
81
82 // Initialization after compiler initialization
83 bool universe_post_init(); // must happen after compiler_init
84 void javaClasses_init(); // must happen after vtable initialization
85 void stubRoutines_init2(); // note: StubRoutines need 2-phase init
86
87 // Do not disable thread-local-storage, as it is important for some
102
103
104 jint init_globals() {
105 HandleMark hm;
106 management_init();
107 bytecodes_init();
108 classLoader_init1();
109 compilationPolicy_init();
110 codeCache_init();
111 VM_Version_init();
112 os_init_globals();
113 stubRoutines_init1();
114 jint status = universe_init(); // dependent on codeCache_init and
115 // stubRoutines_init1 and metaspace_init.
116 if (status != JNI_OK)
117 return status;
118
119 gc_barrier_stubs_init(); // depends on universe_init, must be before interpreter_init
120 interpreter_init(); // before any methods loaded
121 invocationCounter_init(); // before any methods loaded
122 SERIALGC_ONLY(marksweep_init());
123 accessFlags_init();
124 templateTable_init();
125 InterfaceSupport_init();
126 SharedRuntime::generate_stubs();
127 universe2_init(); // dependent on codeCache_init and stubRoutines_init1
128 javaClasses_init();// must happen after vtable initialization, before referenceProcessor_init
129 referenceProcessor_init();
130 jni_handles_init();
131 #if INCLUDE_VM_STRUCTS
132 vmStructs_init();
133 #endif // INCLUDE_VM_STRUCTS
134
135 vtableStubs_init();
136 InlineCacheBuffer_init();
137 compilerOracle_init();
138 dependencyContext_init();
139
140 if (!compileBroker_init()) {
141 return JNI_EINVAL;
142 }
|