Mercurial > hg > truffle
comparison src/share/vm/compiler/compileBroker.hpp @ 14236:7c0122ed05fb
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
14235:933c8a58c9dc | 14236:7c0122ed05fb |
---|---|
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, |