Allow store elimination for singleton that's returned

Allow store elimination for singleton that's visible after method return
or deoptimization. Add additional detection for keeping stores for such
singletons at block merge/deoptimization point.

Bug: 35745320
Test: m test-art-host
Change-Id: I8a75a304491dafaeb689787402afa3d7468e3789
2 files changed