OSDN Git Service

Quick: Fix wide Phi detection in GVN, clean up INVOKEs.
authorVladimir Marko <vmarko@google.com>
Wed, 22 Oct 2014 16:15:53 +0000 (17:15 +0100)
committerVladimir Marko <vmarko@google.com>
Thu, 23 Oct 2014 16:17:09 +0000 (17:17 +0100)
commita4426cff8a81e6af05aa8cc44c162110ccf2d397
tree66545e7d173808b5f0182c35b58eae78484f7341
parentb08f4dcf90215ed49e0b796ab3e609bd605be8ba
Quick: Fix wide Phi detection in GVN, clean up INVOKEs.

The detection of a wide Phi has been incorrectly looking at
the current LVN's wide sreg value map but we only intersect
live values and thus very often lose the information. This
results in failure to identify identical values, i.e.
potential missed optimizations. It also caused the bloating
of the global value map with values we would not use.

Rewrite the wide Phi detection to use the first merged LVN's
notion of wide sreg. For this to work we also need to use
the method's shorty to mark wide arguments.

Also clean up INVOKEs' processing to avoid another source
of bloating the global value map.

Bug: 16398693
Change-Id: I76718af7d62a8c6883ef43e4f47058f7eaf479e1
compiler/dex/global_value_numbering.cc
compiler/dex/global_value_numbering.h
compiler/dex/global_value_numbering_test.cc
compiler/dex/local_value_numbering.cc
compiler/dex/local_value_numbering.h