mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
Merge
This commit is contained in:
commit
adf7b53bfc
2 changed files with 18 additions and 2 deletions
|
@ -720,11 +720,22 @@ void Method::print_made_not_compilable(int comp_level, bool is_osr, bool report,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Method::is_always_compilable() const {
|
||||||
|
// Generated adapters must be compiled
|
||||||
|
if (is_method_handle_intrinsic() && is_synthetic()) {
|
||||||
|
assert(!is_not_c1_compilable(), "sanity check");
|
||||||
|
assert(!is_not_c2_compilable(), "sanity check");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool Method::is_not_compilable(int comp_level) const {
|
bool Method::is_not_compilable(int comp_level) const {
|
||||||
if (number_of_breakpoints() > 0)
|
if (number_of_breakpoints() > 0)
|
||||||
return true;
|
return true;
|
||||||
if (is_method_handle_intrinsic())
|
if (is_always_compilable())
|
||||||
return !is_synthetic(); // the generated adapters must be compiled
|
return false;
|
||||||
if (comp_level == CompLevel_any)
|
if (comp_level == CompLevel_any)
|
||||||
return is_not_c1_compilable() || is_not_c2_compilable();
|
return is_not_c1_compilable() || is_not_c2_compilable();
|
||||||
if (is_c1_compile(comp_level))
|
if (is_c1_compile(comp_level))
|
||||||
|
@ -736,6 +747,10 @@ bool Method::is_not_compilable(int comp_level) const {
|
||||||
|
|
||||||
// call this when compiler finds that this method is not compilable
|
// call this when compiler finds that this method is not compilable
|
||||||
void Method::set_not_compilable(int comp_level, bool report, const char* reason) {
|
void Method::set_not_compilable(int comp_level, bool report, const char* reason) {
|
||||||
|
if (is_always_compilable()) {
|
||||||
|
// Don't mark a method which should be always compilable
|
||||||
|
return;
|
||||||
|
}
|
||||||
print_made_not_compilable(comp_level, /*is_osr*/ false, report, reason);
|
print_made_not_compilable(comp_level, /*is_osr*/ false, report, reason);
|
||||||
if (comp_level == CompLevel_all) {
|
if (comp_level == CompLevel_all) {
|
||||||
set_not_c1_compilable();
|
set_not_c1_compilable();
|
||||||
|
|
|
@ -796,6 +796,7 @@ class Method : public Metadata {
|
||||||
void set_not_osr_compilable_quietly(int comp_level = CompLevel_all) {
|
void set_not_osr_compilable_quietly(int comp_level = CompLevel_all) {
|
||||||
set_not_osr_compilable(comp_level, false);
|
set_not_osr_compilable(comp_level, false);
|
||||||
}
|
}
|
||||||
|
bool is_always_compilable() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void print_made_not_compilable(int comp_level, bool is_osr, bool report, const char* reason);
|
void print_made_not_compilable(int comp_level, bool is_osr, bool report, const char* reason);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue