mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
8007144: Incremental inlining mistakes some call sites for dead ones and doesn't inline them
Wrong detection for dead call sites. Reviewed-by: kvn
This commit is contained in:
parent
eaa663b241
commit
da5499f4ed
1 changed files with 4 additions and 2 deletions
|
@ -305,11 +305,13 @@ class LateInlineCallGenerator : public DirectCallGenerator {
|
|||
void LateInlineCallGenerator::do_late_inline() {
|
||||
// Can't inline it
|
||||
if (call_node() == NULL || call_node()->outcnt() == 0 ||
|
||||
call_node()->in(0) == NULL || call_node()->in(0)->is_top())
|
||||
call_node()->in(0) == NULL || call_node()->in(0)->is_top()) {
|
||||
return;
|
||||
}
|
||||
|
||||
const TypeTuple *r = call_node()->tf()->domain();
|
||||
for (int i1 = 0; i1 < method()->arg_size(); i1++) {
|
||||
if (call_node()->in(TypeFunc::Parms + i1)->is_top()) {
|
||||
if (call_node()->in(TypeFunc::Parms + i1)->is_top() && r->field_at(TypeFunc::Parms + i1) != Type::HALF) {
|
||||
assert(Compile::current()->inlining_incrementally(), "shouldn't happen during parsing");
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue