402 run_compilation = 1,
403 shutdown_compilaton = 2
404 };
405
406 static bool should_compile_new_jobs() { return UseCompiler && (_should_compile_new_jobs == run_compilation); }
407 static bool set_should_compile_new_jobs(jint new_state) {
408 // Return success if the current caller set it
409 jint old = Atomic::cmpxchg(new_state, &_should_compile_new_jobs, 1-new_state);
410 return (old == (1-new_state));
411 }
412
413 static void disable_compilation_forever() {
414 UseCompiler = false;
415 AlwaysCompileLoopMethods = false;
416 Atomic::xchg(shutdown_compilaton, &_should_compile_new_jobs);
417 }
418
419 static bool is_compilation_disabled_forever() {
420 return _should_compile_new_jobs == shutdown_compilaton;
421 }
422 static void handle_full_code_cache();
423 // Ensures that warning is only printed once.
424 static bool should_print_compiler_warning() {
425 jint old = Atomic::cmpxchg(1, &_print_compilation_warning, 0);
426 return old == 0;
427 }
428 // Return total compilation ticks
429 static jlong total_compilation_ticks() {
430 return _perf_total_compilation != NULL ? _perf_total_compilation->get_value() : 0;
431 }
432
433 // Redefine Classes support
434 static void mark_on_stack();
435
436 // Print a detailed accounting of compilation time
437 static void print_times();
438
439 // Debugging output for failure
440 static void print_last_compile();
441
442 static void print_compiler_threads_on(outputStream* st);
443
444 // compiler name for debugging
445 static const char* compiler_name(int comp_level);
446
447 static int get_total_compile_count() { return _total_compile_count; }
|
402 run_compilation = 1,
403 shutdown_compilaton = 2
404 };
405
406 static bool should_compile_new_jobs() { return UseCompiler && (_should_compile_new_jobs == run_compilation); }
407 static bool set_should_compile_new_jobs(jint new_state) {
408 // Return success if the current caller set it
409 jint old = Atomic::cmpxchg(new_state, &_should_compile_new_jobs, 1-new_state);
410 return (old == (1-new_state));
411 }
412
413 static void disable_compilation_forever() {
414 UseCompiler = false;
415 AlwaysCompileLoopMethods = false;
416 Atomic::xchg(shutdown_compilaton, &_should_compile_new_jobs);
417 }
418
419 static bool is_compilation_disabled_forever() {
420 return _should_compile_new_jobs == shutdown_compilaton;
421 }
422
423 static void handle_full_code_cache(int code_blob_type);
424 // Ensures that warning is only printed once.
425 static bool should_print_compiler_warning() {
426 jint old = Atomic::cmpxchg(1, &_print_compilation_warning, 0);
427 return old == 0;
428 }
429
430 // Return total compilation ticks
431 static jlong total_compilation_ticks() {
432 return _perf_total_compilation != NULL ? _perf_total_compilation->get_value() : 0;
433 }
434
435 // Redefine Classes support
436 static void mark_on_stack();
437
438 // Print a detailed accounting of compilation time
439 static void print_times();
440
441 // Debugging output for failure
442 static void print_last_compile();
443
444 static void print_compiler_threads_on(outputStream* st);
445
446 // compiler name for debugging
447 static const char* compiler_name(int comp_level);
448
449 static int get_total_compile_count() { return _total_compile_count; }
|