546 , _max_spills(-1) 547 , _frame_map(NULL) 548 , _masm(NULL) 549 , _has_exception_handlers(false) 550 , _has_fpu_code(true) // pessimistic assumption 551 , _would_profile(false) 552 , _has_unsafe_access(false) 553 , _has_method_handle_invokes(false) 554 , _has_reserved_stack_access(method->has_reserved_stack_access()) 555 , _bailout_msg(NULL) 556 , _exception_info_list(NULL) 557 , _allocator(NULL) 558 , _next_id(0) 559 , _next_block_id(0) 560 , _code(buffer_blob) 561 , _has_access_indexed(false) 562 , _current_instruction(NULL) 563 , _interpreter_frame_size(0) 564 #ifndef PRODUCT 565 , _last_instruction_printed(NULL) 566 #endif // PRODUCT 567 { 568 PhaseTraceTime timeit(_t_compile); 569 _arena = Thread::current()->resource_area(); 570 _env->set_compiler_data(this); 571 _exception_info_list = new ExceptionInfoList(); 572 _implicit_exception_table.set_size(0); 573 compile_method(); 574 if (bailed_out()) { 575 _env->record_method_not_compilable(bailout_msg(), !TieredCompilation); 576 if (is_profiling()) { 577 // Compilation failed, create MDO, which would signal the interpreter 578 // to start profiling on its own. 579 _method->ensure_method_data(); 580 } 581 } else if (is_profiling()) { 582 ciMethodData *md = method->method_data_or_null(); 583 if (md != NULL) { 584 md->set_would_profile(_would_profile); 585 } 586 } 587 } 588 589 Compilation::~Compilation() { 590 _env->set_compiler_data(NULL); 591 } 592 | 546 , _max_spills(-1) 547 , _frame_map(NULL) 548 , _masm(NULL) 549 , _has_exception_handlers(false) 550 , _has_fpu_code(true) // pessimistic assumption 551 , _would_profile(false) 552 , _has_unsafe_access(false) 553 , _has_method_handle_invokes(false) 554 , _has_reserved_stack_access(method->has_reserved_stack_access()) 555 , _bailout_msg(NULL) 556 , _exception_info_list(NULL) 557 , _allocator(NULL) 558 , _next_id(0) 559 , _next_block_id(0) 560 , _code(buffer_blob) 561 , _has_access_indexed(false) 562 , _current_instruction(NULL) 563 , _interpreter_frame_size(0) 564 #ifndef PRODUCT 565 , _last_instruction_printed(NULL) 566 , _cfg_printer_output(NULL) 567 #endif // PRODUCT 568 { 569 PhaseTraceTime timeit(_t_compile); 570 _arena = Thread::current()->resource_area(); 571 _env->set_compiler_data(this); 572 _exception_info_list = new ExceptionInfoList(); 573 _implicit_exception_table.set_size(0); 574 #ifndef PRODUCT 575 if (PrintCFGToFile) { 576 _cfg_printer_output = new CFGPrinterOutput(this); 577 } 578 #endif 579 compile_method(); 580 if (bailed_out()) { 581 _env->record_method_not_compilable(bailout_msg(), !TieredCompilation); 582 if (is_profiling()) { 583 // Compilation failed, create MDO, which would signal the interpreter 584 // to start profiling on its own. 585 _method->ensure_method_data(); 586 } 587 } else if (is_profiling()) { 588 ciMethodData *md = method->method_data_or_null(); 589 if (md != NULL) { 590 md->set_would_profile(_would_profile); 591 } 592 } 593 } 594 595 Compilation::~Compilation() { 596 _env->set_compiler_data(NULL); 597 } 598 |