summaryrefslogtreecommitdiff
path: root/src/compiler/dex/mir_optimization.cc
diff options
context:
space:
mode:
author Sameer Abu Asal <sasal@google.com> 2013-04-30 12:09:45 -0700
committer Sameer Abu Asal <sasal@google.com> 2013-05-02 14:19:17 -0700
commit02c42237741b5573f9d790a5a0f17f408dceb543 (patch)
tree293d72039e2e1a0e56fbcb572c6d92ccedc5581a /src/compiler/dex/mir_optimization.cc
parentcf9773a7adff883012dbd519a66e85f1f7aaaa11 (diff)
Supporting de-virtualization for precise types.
Sharpening invoke-virtual and invoke-interface calls to invoke-direct for cases where the type of "this" pointer in the invoke- params is precisely known. Instructions that have an invoke opcode are marked as interesting, for each invoke-virtual/interface we come across with a precise type for "this" we mark the location as a candidate for sharpening, resolve the concrete method and save its method reference <DexFile, DexMethodIndex> to be sharpened in CompilerDriver::ComputeInvokeInfo(). Added a new entry to AOT statistics showing the percentage of sharpened calls that were based on type analysis. Fix a minor bug in type creation for GetSuperClass(). Previously super class of a precise reference had precise types created which is not necessarily the case. Fixed DCHECK in Class::FindVirtualMethodForVirtual to handle cases for Miranda methods. Sharpening only takes place for cases where no soft failures happen at verification time. Change-Id: Ic027d0226d6f95260c1918014cb6313f2e0ca455
Diffstat (limited to 'src/compiler/dex/mir_optimization.cc')
0 files changed, 0 insertions, 0 deletions