539 , _has_unsafe_access(false)
540 , _has_method_handle_invokes(false)
541 , _bailout_msg(NULL)
542 , _exception_info_list(NULL)
543 , _allocator(NULL)
544 , _next_id(0)
545 , _next_block_id(0)
546 , _code(buffer_blob)
547 , _has_access_indexed(false)
548 , _current_instruction(NULL)
549 , _interpreter_frame_size(0)
550 #ifndef PRODUCT
551 , _last_instruction_printed(NULL)
552 #endif // PRODUCT
553 {
554 PhaseTraceTime timeit(_t_compile);
555 _arena = Thread::current()->resource_area();
556 _env->set_compiler_data(this);
557 _exception_info_list = new ExceptionInfoList();
558 _implicit_exception_table.set_size(0);
559 compile_method();
560 if (bailed_out()) {
561 _env->record_method_not_compilable(bailout_msg(), !TieredCompilation);
562 if (is_profiling()) {
563 // Compilation failed, create MDO, which would signal the interpreter
564 // to start profiling on its own.
565 _method->ensure_method_data();
566 }
567 } else if (is_profiling()) {
568 ciMethodData *md = method->method_data_or_null();
569 if (md != NULL) {
570 md->set_would_profile(_would_profile);
571 }
572 }
573 }
574
575 Compilation::~Compilation() {
576 _env->set_compiler_data(NULL);
577 }
578
|
539 , _has_unsafe_access(false)
540 , _has_method_handle_invokes(false)
541 , _bailout_msg(NULL)
542 , _exception_info_list(NULL)
543 , _allocator(NULL)
544 , _next_id(0)
545 , _next_block_id(0)
546 , _code(buffer_blob)
547 , _has_access_indexed(false)
548 , _current_instruction(NULL)
549 , _interpreter_frame_size(0)
550 #ifndef PRODUCT
551 , _last_instruction_printed(NULL)
552 #endif // PRODUCT
553 {
554 PhaseTraceTime timeit(_t_compile);
555 _arena = Thread::current()->resource_area();
556 _env->set_compiler_data(this);
557 _exception_info_list = new ExceptionInfoList();
558 _implicit_exception_table.set_size(0);
559 _method->ensure_method_counters();
560 compile_method();
561 if (bailed_out()) {
562 _env->record_method_not_compilable(bailout_msg(), !TieredCompilation);
563 if (is_profiling()) {
564 // Compilation failed, create MDO, which would signal the interpreter
565 // to start profiling on its own.
566 _method->ensure_method_data();
567 }
568 } else if (is_profiling()) {
569 ciMethodData *md = method->method_data_or_null();
570 if (md != NULL) {
571 md->set_would_profile(_would_profile);
572 }
573 }
574 }
575
576 Compilation::~Compilation() {
577 _env->set_compiler_data(NULL);
578 }
579
|