comparison src/share/vm/c1/c1_Compilation.cpp @ 1783:d5d065957597

6953144: Tiered compilation Summary: Infrastructure for tiered compilation support (interpreter + c1 + c2) for 32 and 64 bit. Simple tiered policy implementation. Reviewed-by: kvn, never, phh, twisti
author iveresov
date Fri, 03 Sep 2010 17:51:07 -0700
parents 3e8fbc61cee8
children 22ef3370343b
comparison
equal deleted inserted replaced
1782:f353275af40e 1783:d5d065957597
288 } 288 }
289 } 289 }
290 290
291 CHECK_BAILOUT_(no_frame_size); 291 CHECK_BAILOUT_(no_frame_size);
292 292
293 if (is_profiling()) {
294 method()->build_method_data();
295 }
296
293 { 297 {
294 PhaseTraceTime timeit(_t_buildIR); 298 PhaseTraceTime timeit(_t_buildIR);
295 build_hir(); 299 build_hir();
296 } 300 }
297 if (BailoutAfterHIR) { 301 if (BailoutAfterHIR) {
298 BAILOUT_("Bailing out because of -XX:+BailoutAfterHIR", no_frame_size); 302 BAILOUT_("Bailing out because of -XX:+BailoutAfterHIR", no_frame_size);
299 } 303 }
300 304
445 , _max_spills(-1) 449 , _max_spills(-1)
446 , _frame_map(NULL) 450 , _frame_map(NULL)
447 , _masm(NULL) 451 , _masm(NULL)
448 , _has_exception_handlers(false) 452 , _has_exception_handlers(false)
449 , _has_fpu_code(true) // pessimistic assumption 453 , _has_fpu_code(true) // pessimistic assumption
454 , _would_profile(false)
450 , _has_unsafe_access(false) 455 , _has_unsafe_access(false)
451 , _has_method_handle_invokes(false) 456 , _has_method_handle_invokes(false)
452 , _bailout_msg(NULL) 457 , _bailout_msg(NULL)
453 , _exception_info_list(NULL) 458 , _exception_info_list(NULL)
454 , _allocator(NULL) 459 , _allocator(NULL)
459 #ifndef PRODUCT 464 #ifndef PRODUCT
460 , _last_instruction_printed(NULL) 465 , _last_instruction_printed(NULL)
461 #endif // PRODUCT 466 #endif // PRODUCT
462 { 467 {
463 PhaseTraceTime timeit(_t_compile); 468 PhaseTraceTime timeit(_t_compile);
464
465 _arena = Thread::current()->resource_area(); 469 _arena = Thread::current()->resource_area();
466 _env->set_compiler_data(this); 470 _env->set_compiler_data(this);
467 _exception_info_list = new ExceptionInfoList(); 471 _exception_info_list = new ExceptionInfoList();
468 _implicit_exception_table.set_size(0); 472 _implicit_exception_table.set_size(0);
469 compile_method(); 473 compile_method();
474 if (is_profiling() && _would_profile) {
475 ciMethodData *md = method->method_data();
476 assert (md != NULL, "Should have MDO");
477 md->set_would_profile(_would_profile);
478 }
470 } 479 }
471 480
472 Compilation::~Compilation() { 481 Compilation::~Compilation() {
473 _env->set_compiler_data(NULL); 482 _env->set_compiler_data(NULL);
474 } 483 }