Allow type based sharpening for imprecise references.
When a reference is imprecise we may still be able to devirtualize if the
method that is dispatched upon may not be overridden (ie final).
Some other tidying of the devirtualization code.
For boot this increases the frequency of type based devirtualization by a
little more than 0.01%.
Change-Id: I050efbcc78c6b89135a6432bd7c2e946d8efbab4
diff --git a/src/compiler/driver/compiler_driver.cc b/src/compiler/driver/compiler_driver.cc
index aad77ad..2783e2e 100644
--- a/src/compiler/driver/compiler_driver.cc
+++ b/src/compiler/driver/compiler_driver.cc
@@ -973,6 +973,8 @@
}
}
}
+ // TODO: the stats for direct code and method are off as we failed to find the direct
+ // method in the referring method's dex cache/file.
} else {
if (update_stats) {
stats_->ResolvedMethod(invoke_type);