ART: Fix bug in LSE

LSE will not remove a load if the type of the heap value does not
match the type of the load. This was a workaround for b/22538329 but
backfires for integers. For example, 'IntConstant 0' has type int
but can be retrieved from a boolean field. The corresponding store is
removed but not the load, loading uninitialized memory. This fixes the
issue until the workaround is not needed any more.

Change-Id: I2a47783e8d5f93104854e5216b69b6c220832c76
2 files changed