comparison src/share/vm/compiler/compileBroker.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 b675ff1ca7a3
comparison
equal deleted inserted replaced
1963:0ac62b4d6507 1964:22ef3370343b
1533 1533
1534 if (!ci_env.failing() && task->code() == NULL) { 1534 if (!ci_env.failing() && task->code() == NULL) {
1535 //assert(false, "compiler should always document failure"); 1535 //assert(false, "compiler should always document failure");
1536 // The compiler elected, without comment, not to register a result. 1536 // The compiler elected, without comment, not to register a result.
1537 // Do not attempt further compilations of this method. 1537 // Do not attempt further compilations of this method.
1538 ci_env.record_method_not_compilable("compile failed"); 1538 ci_env.record_method_not_compilable("compile failed", !TieredCompilation);
1539 } 1539 }
1540 1540
1541 if (ci_env.failing()) { 1541 if (ci_env.failing()) {
1542 // Copy this bit to the enclosing block: 1542 // Copy this bit to the enclosing block:
1543 compilable = ci_env.compilable(); 1543 compilable = ci_env.compilable();
1544 if (PrintCompilation) { 1544 if (PrintCompilation) {
1545 const char* reason = ci_env.failure_reason(); 1545 const char* reason = ci_env.failure_reason();
1546 if (compilable == ciEnv::MethodCompilable_not_at_tier) { 1546 if (compilable == ciEnv::MethodCompilable_not_at_tier) {
1547 if (is_highest_tier_compile(ci_env.comp_level())) {
1548 // Already at highest tier, promote to not compilable.
1549 compilable = ciEnv::MethodCompilable_never;
1550 } else {
1551 tty->print_cr("%3d COMPILE SKIPPED: %s (retry at different tier)", compile_id, reason); 1547 tty->print_cr("%3d COMPILE SKIPPED: %s (retry at different tier)", compile_id, reason);
1552 } 1548 } else if (compilable == ciEnv::MethodCompilable_never) {
1553 }
1554
1555 if (compilable == ciEnv::MethodCompilable_never) {
1556 tty->print_cr("%3d COMPILE SKIPPED: %s (not retryable)", compile_id, reason); 1549 tty->print_cr("%3d COMPILE SKIPPED: %s (not retryable)", compile_id, reason);
1557 } else if (compilable == ciEnv::MethodCompilable) { 1550 } else if (compilable == ciEnv::MethodCompilable) {
1558 tty->print_cr("%3d COMPILE SKIPPED: %s", compile_id, reason); 1551 tty->print_cr("%3d COMPILE SKIPPED: %s", compile_id, reason);
1559 } 1552 }
1560 } 1553 }