Mercurial > hg > graal-compiler
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 } |