comparison src/share/vm/c1/c1_Compilation.cpp @ 1964:22ef3370343b

7000349: Tiered reacts incorrectly to C1 compilation failures Summary: Fix policy reaction to C1 comilation failures, make C1 properly report errors. Reviewed-by: kvn
author iveresov
date Tue, 16 Nov 2010 15:57:16 -0800
parents d5d065957597
children f95d63e2154a
comparison
equal deleted inserted replaced
1963:0ac62b4d6507 1964:22ef3370343b
469 _arena = Thread::current()->resource_area(); 469 _arena = Thread::current()->resource_area();
470 _env->set_compiler_data(this); 470 _env->set_compiler_data(this);
471 _exception_info_list = new ExceptionInfoList(); 471 _exception_info_list = new ExceptionInfoList();
472 _implicit_exception_table.set_size(0); 472 _implicit_exception_table.set_size(0);
473 compile_method(); 473 compile_method();
474 if (is_profiling() && _would_profile) { 474 if (bailed_out()) {
475 _env->record_method_not_compilable(bailout_msg(), !TieredCompilation);
476 if (is_profiling()) {
477 // Compilation failed, create MDO, which would signal the interpreter
478 // to start profiling on its own.
479 _method->build_method_data();
480 }
481 } else if (is_profiling() && _would_profile) {
475 ciMethodData *md = method->method_data(); 482 ciMethodData *md = method->method_data();
476 assert (md != NULL, "Should have MDO"); 483 assert (md != NULL, "Should have MDO");
477 md->set_would_profile(_would_profile); 484 md->set_would_profile(_would_profile);
478 } 485 }
479 } 486 }