1 /* |
1 /* |
2 * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved. |
2 * Copyright 1999-2010 Sun Microsystems, Inc. All Rights Reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
1130 // Some compilers may not support the compilation of natives. |
1130 // Some compilers may not support the compilation of natives. |
1131 // QQQ this needs some work ought to only record not compilable at |
1131 // QQQ this needs some work ought to only record not compilable at |
1132 // the specified level |
1132 // the specified level |
1133 if (is_native && |
1133 if (is_native && |
1134 (!CICompileNatives || !compiler(comp_level)->supports_native())) { |
1134 (!CICompileNatives || !compiler(comp_level)->supports_native())) { |
1135 method->set_not_compilable(); |
1135 method->set_not_compilable_quietly(); |
1136 return true; |
1136 return true; |
1137 } |
1137 } |
1138 |
1138 |
1139 bool is_osr = (osr_bci != standard_entry_bci); |
1139 bool is_osr = (osr_bci != standard_entry_bci); |
1140 // Some compilers may not support on stack replacement. |
1140 // Some compilers may not support on stack replacement. |
1588 |
1588 |
1589 if (compilable == ciEnv::MethodCompilable_never) { |
1589 if (compilable == ciEnv::MethodCompilable_never) { |
1590 if (is_osr) { |
1590 if (is_osr) { |
1591 method->set_not_osr_compilable(); |
1591 method->set_not_osr_compilable(); |
1592 } else { |
1592 } else { |
1593 method->set_not_compilable(); |
1593 method->set_not_compilable_quietly(); |
1594 } |
1594 } |
1595 } else if (compilable == ciEnv::MethodCompilable_not_at_tier) { |
1595 } else if (compilable == ciEnv::MethodCompilable_not_at_tier) { |
1596 method->set_not_compilable(task->comp_level()); |
1596 method->set_not_compilable_quietly(task->comp_level()); |
1597 } |
1597 } |
1598 |
1598 |
1599 // Note that the queued_for_compilation bits are cleared without |
1599 // Note that the queued_for_compilation bits are cleared without |
1600 // protection of a mutex. [They were set by the requester thread, |
1600 // protection of a mutex. [They were set by the requester thread, |
1601 // when adding the task to the complie queue -- at which time the |
1601 // when adding the task to the complie queue -- at which time the |