273 static bool _initialized; 274 static volatile bool _should_block; 275 276 // This flag can be used to stop compilation or turn it back on 277 static volatile jint _should_compile_new_jobs; 278 279 // The installed compiler(s) 280 static AbstractCompiler* _compilers[2]; 281 282 // These counters are used for assigning id's to each compilation 283 static volatile jint _compilation_id; 284 static volatile jint _osr_compilation_id; 285 286 static int _last_compile_type; 287 static int _last_compile_level; 288 static char _last_method_compiled[name_buffer_length]; 289 290 static CompileQueue* _c2_compile_queue; 291 static CompileQueue* _c1_compile_queue; 292 293 static GrowableArray<CompilerThread*>* _compiler_threads; 294 295 // performance counters 296 static PerfCounter* _perf_total_compilation; 297 static PerfCounter* _perf_native_compilation; 298 static PerfCounter* _perf_osr_compilation; 299 static PerfCounter* _perf_standard_compilation; 300 301 static PerfCounter* _perf_total_bailout_count; 302 static PerfCounter* _perf_total_invalidated_count; 303 static PerfCounter* _perf_total_compile_count; 304 static PerfCounter* _perf_total_native_compile_count; 305 static PerfCounter* _perf_total_osr_compile_count; 306 static PerfCounter* _perf_total_standard_compile_count; 307 308 static PerfCounter* _perf_sum_osr_bytes_compiled; 309 static PerfCounter* _perf_sum_standard_bytes_compiled; 310 static PerfCounter* _perf_sum_nmethod_size; 311 static PerfCounter* _perf_sum_nmethod_code_size; 312 313 static PerfStringVariable* _perf_last_method; 314 static PerfStringVariable* _perf_last_failed_method; 322 static elapsedTimer _t_total_compilation; 323 static elapsedTimer _t_osr_compilation; 324 static elapsedTimer _t_standard_compilation; 325 static elapsedTimer _t_invalidated_compilation; 326 static elapsedTimer _t_bailedout_compilation; 327 328 static int _total_compile_count; 329 static int _total_bailout_count; 330 static int _total_invalidated_count; 331 static int _total_native_compile_count; 332 static int _total_osr_compile_count; 333 static int _total_standard_compile_count; 334 static int _sum_osr_bytes_compiled; 335 static int _sum_standard_bytes_compiled; 336 static int _sum_nmethod_size; 337 static int _sum_nmethod_code_size; 338 static long _peak_compilation_time; 339 340 static volatile jint _print_compilation_warning; 341 342 static CompilerThread* make_compiler_thread(const char* name, CompileQueue* queue, CompilerCounters* counters, AbstractCompiler* comp, TRAPS); 343 static void init_compiler_threads(int c1_compiler_count, int c2_compiler_count); 344 static bool compilation_is_complete (methodHandle method, int osr_bci, int comp_level); 345 static bool compilation_is_prohibited(methodHandle method, int osr_bci, int comp_level); 346 static bool is_compile_blocking(); 347 static void preload_classes (methodHandle method, TRAPS); 348 349 static CompileTask* create_compile_task(CompileQueue* queue, 350 int compile_id, 351 methodHandle method, 352 int osr_bci, 353 int comp_level, 354 methodHandle hot_method, 355 int hot_count, 356 const char* comment, 357 bool blocking); 358 static void wait_for_completion(CompileTask* task); 359 360 static void invoke_compiler_on_method(CompileTask* task); 361 static void set_last_compile(CompilerThread *thread, methodHandle method, bool is_osr, int comp_level); 362 static void push_jni_handle_block(); 363 static void pop_jni_handle_block(); | 273 static bool _initialized; 274 static volatile bool _should_block; 275 276 // This flag can be used to stop compilation or turn it back on 277 static volatile jint _should_compile_new_jobs; 278 279 // The installed compiler(s) 280 static AbstractCompiler* _compilers[2]; 281 282 // These counters are used for assigning id's to each compilation 283 static volatile jint _compilation_id; 284 static volatile jint _osr_compilation_id; 285 286 static int _last_compile_type; 287 static int _last_compile_level; 288 static char _last_method_compiled[name_buffer_length]; 289 290 static CompileQueue* _c2_compile_queue; 291 static CompileQueue* _c1_compile_queue; 292 293 // performance counters 294 static PerfCounter* _perf_total_compilation; 295 static PerfCounter* _perf_native_compilation; 296 static PerfCounter* _perf_osr_compilation; 297 static PerfCounter* _perf_standard_compilation; 298 299 static PerfCounter* _perf_total_bailout_count; 300 static PerfCounter* _perf_total_invalidated_count; 301 static PerfCounter* _perf_total_compile_count; 302 static PerfCounter* _perf_total_native_compile_count; 303 static PerfCounter* _perf_total_osr_compile_count; 304 static PerfCounter* _perf_total_standard_compile_count; 305 306 static PerfCounter* _perf_sum_osr_bytes_compiled; 307 static PerfCounter* _perf_sum_standard_bytes_compiled; 308 static PerfCounter* _perf_sum_nmethod_size; 309 static PerfCounter* _perf_sum_nmethod_code_size; 310 311 static PerfStringVariable* _perf_last_method; 312 static PerfStringVariable* _perf_last_failed_method; 320 static elapsedTimer _t_total_compilation; 321 static elapsedTimer _t_osr_compilation; 322 static elapsedTimer _t_standard_compilation; 323 static elapsedTimer _t_invalidated_compilation; 324 static elapsedTimer _t_bailedout_compilation; 325 326 static int _total_compile_count; 327 static int _total_bailout_count; 328 static int _total_invalidated_count; 329 static int _total_native_compile_count; 330 static int _total_osr_compile_count; 331 static int _total_standard_compile_count; 332 static int _sum_osr_bytes_compiled; 333 static int _sum_standard_bytes_compiled; 334 static int _sum_nmethod_size; 335 static int _sum_nmethod_code_size; 336 static long _peak_compilation_time; 337 338 static volatile jint _print_compilation_warning; 339 340 static JavaThread* make_thread(const char* name, CompileQueue* queue, CompilerCounters* counters, AbstractCompiler* comp, bool compiler_thread, TRAPS); 341 static void init_compiler_sweeper_threads(int c1_compiler_count, int c2_compiler_count); 342 static bool compilation_is_complete (methodHandle method, int osr_bci, int comp_level); 343 static bool compilation_is_prohibited(methodHandle method, int osr_bci, int comp_level); 344 static bool is_compile_blocking(); 345 static void preload_classes (methodHandle method, TRAPS); 346 347 static CompileTask* create_compile_task(CompileQueue* queue, 348 int compile_id, 349 methodHandle method, 350 int osr_bci, 351 int comp_level, 352 methodHandle hot_method, 353 int hot_count, 354 const char* comment, 355 bool blocking); 356 static void wait_for_completion(CompileTask* task); 357 358 static void invoke_compiler_on_method(CompileTask* task); 359 static void set_last_compile(CompilerThread *thread, methodHandle method, bool is_osr, int comp_level); 360 static void push_jni_handle_block(); 361 static void pop_jni_handle_block(); |