diff options
author | 2013-06-01 10:51:46 -0700 | |
---|---|---|
committer | 2013-06-01 11:16:53 -0700 | |
commit | d0583802482a7b2f54749edc4faa00303459f9a8 (patch) | |
tree | 640fb56bfe465aeed281a6585dc12836c87858f9 /src/compiler/driver/compiler_driver.cc | |
parent | 8427a3db9efb1c67d581fdae006b9afc5c1283b2 (diff) |
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
Diffstat (limited to 'src/compiler/driver/compiler_driver.cc')
-rw-r--r-- | src/compiler/driver/compiler_driver.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/compiler/driver/compiler_driver.cc b/src/compiler/driver/compiler_driver.cc index aad77adb72..2783e2e13e 100644 --- a/src/compiler/driver/compiler_driver.cc +++ b/src/compiler/driver/compiler_driver.cc @@ -973,6 +973,8 @@ bool CompilerDriver::ComputeInvokeInfo(const DexCompilationUnit* mUnit, const ui } } } + // 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); |