285 _hot_method = NULL; |
285 _hot_method = NULL; |
286 _hot_method_holder = NULL; |
286 _hot_method_holder = NULL; |
287 _hot_count = hot_count; |
287 _hot_count = hot_count; |
288 _time_queued = 0; // tidy |
288 _time_queued = 0; // tidy |
289 _comment = comment; |
289 _comment = comment; |
|
290 _failure_reason = NULL; |
290 |
291 |
291 if (LogCompilation) { |
292 if (LogCompilation) { |
292 _time_queued = os::elapsed_counter(); |
293 _time_queued = os::elapsed_counter(); |
293 if (hot_method.not_null()) { |
294 if (hot_method.not_null()) { |
294 if (hot_method == method) { |
295 if (hot_method == method) { |
562 // CompileTask::log_task_done |
563 // CompileTask::log_task_done |
563 void CompileTask::log_task_done(CompileLog* log) { |
564 void CompileTask::log_task_done(CompileLog* log) { |
564 Thread* thread = Thread::current(); |
565 Thread* thread = Thread::current(); |
565 methodHandle method(thread, this->method()); |
566 methodHandle method(thread, this->method()); |
566 ResourceMark rm(thread); |
567 ResourceMark rm(thread); |
|
568 |
|
569 if (!_is_success) { |
|
570 const char* reason = _failure_reason != NULL ? _failure_reason : "unknown"; |
|
571 log->elem("failure reason='%s'", reason); |
|
572 } |
567 |
573 |
568 // <task_done ... stamp='1.234'> </task> |
574 // <task_done ... stamp='1.234'> </task> |
569 nmethod* nm = code(); |
575 nmethod* nm = code(); |
570 log->begin_elem("task_done success='%d' nmsize='%d' count='%d'", |
576 log->begin_elem("task_done success='%d' nmsize='%d' count='%d'", |
571 _is_success, nm == NULL ? 0 : nm->content_size(), |
577 _is_success, nm == NULL ? 0 : nm->content_size(), |
1786 #endif /* COMPILER1 */ |
1793 #endif /* COMPILER1 */ |
1787 invoke_compiler_on_method(task); |
1794 invoke_compiler_on_method(task); |
1788 } else { |
1795 } else { |
1789 // After compilation is disabled, remove remaining methods from queue |
1796 // After compilation is disabled, remove remaining methods from queue |
1790 method->clear_queued_for_compilation(); |
1797 method->clear_queued_for_compilation(); |
|
1798 task->set_failure_reason("compilation is disabled"); |
1791 } |
1799 } |
1792 } |
1800 } |
1793 } |
1801 } |
1794 |
1802 |
1795 // Shut down compiler runtime |
1803 // Shut down compiler runtime |
1973 |
1981 |
1974 // Copy this bit to the enclosing block: |
1982 // Copy this bit to the enclosing block: |
1975 compilable = ci_env.compilable(); |
1983 compilable = ci_env.compilable(); |
1976 |
1984 |
1977 if (ci_env.failing()) { |
1985 if (ci_env.failing()) { |
|
1986 task->set_failure_reason(ci_env.failure_reason()); |
1978 const char* retry_message = ci_env.retry_message(); |
1987 const char* retry_message = ci_env.retry_message(); |
1979 if (_compilation_log != NULL) { |
1988 if (_compilation_log != NULL) { |
1980 _compilation_log->log_failure(thread, task, ci_env.failure_reason(), retry_message); |
1989 _compilation_log->log_failure(thread, task, ci_env.failure_reason(), retry_message); |
1981 } |
1990 } |
1982 if (PrintCompilation) { |
1991 if (PrintCompilation) { |