comparison src/share/vm/compiler/compileBroker.hpp @ 17625:7b9127b17b7a

8022494: Make compilation IDs sequential Summary: Use atomic operations to provide sequential compilation IDs Reviewed-by: kvn, twisti
author anoll
date Fri, 10 Jan 2014 06:36:18 +0100
parents 78da3894b86f
children d8041d695d19 7301840ea20e
comparison
equal deleted inserted replaced
17624:9f4f77ef2706 17625:7b9127b17b7a
244 name_buffer_length = 100 244 name_buffer_length = 100
245 }; 245 };
246 246
247 // Compile type Information for print_last_compile() and CompilerCounters 247 // Compile type Information for print_last_compile() and CompilerCounters
248 enum { no_compile, normal_compile, osr_compile, native_compile }; 248 enum { no_compile, normal_compile, osr_compile, native_compile };
249 static int assign_compile_id (methodHandle method, int osr_bci);
250
249 251
250 private: 252 private:
251 static bool _initialized; 253 static bool _initialized;
252 static volatile bool _should_block; 254 static volatile bool _should_block;
253 255
256 258
257 // The installed compiler(s) 259 // The installed compiler(s)
258 static AbstractCompiler* _compilers[2]; 260 static AbstractCompiler* _compilers[2];
259 261
260 // These counters are used for assigning id's to each compilation 262 // These counters are used for assigning id's to each compilation
261 static uint _compilation_id; 263 static volatile jint _compilation_id;
262 static uint _osr_compilation_id; 264 static volatile jint _osr_compilation_id;
263 static uint _native_compilation_id;
264 265
265 static int _last_compile_type; 266 static int _last_compile_type;
266 static int _last_compile_level; 267 static int _last_compile_level;
267 static char _last_method_compiled[name_buffer_length]; 268 static char _last_method_compiled[name_buffer_length];
268 269
319 320
320 static CompilerThread* make_compiler_thread(const char* name, CompileQueue* queue, CompilerCounters* counters, AbstractCompiler* comp, TRAPS); 321 static CompilerThread* make_compiler_thread(const char* name, CompileQueue* queue, CompilerCounters* counters, AbstractCompiler* comp, TRAPS);
321 static void init_compiler_threads(int c1_compiler_count, int c2_compiler_count); 322 static void init_compiler_threads(int c1_compiler_count, int c2_compiler_count);
322 static bool compilation_is_complete (methodHandle method, int osr_bci, int comp_level); 323 static bool compilation_is_complete (methodHandle method, int osr_bci, int comp_level);
323 static bool compilation_is_prohibited(methodHandle method, int osr_bci, int comp_level); 324 static bool compilation_is_prohibited(methodHandle method, int osr_bci, int comp_level);
324 static uint assign_compile_id (methodHandle method, int osr_bci);
325 static bool is_compile_blocking (methodHandle method, int osr_bci); 325 static bool is_compile_blocking (methodHandle method, int osr_bci);
326 static void preload_classes (methodHandle method, TRAPS); 326 static void preload_classes (methodHandle method, TRAPS);
327 327
328 static CompileTask* create_compile_task(CompileQueue* queue, 328 static CompileTask* create_compile_task(CompileQueue* queue,
329 int compile_id, 329 int compile_id,