Mark newly allocated objects as precise.
New-arrays were previously precise because of finality. Because this has been
weakened we need to explicitly mark allocated arrays as precise.
Fix RegTypeCache::FromUninitialized that was not making newly allocated objects
precise if the class wasn't final. As the object is being allocated we can be
sure of its preciseness.
For core, increases type based interface devirtualization from 0.136% to 2.873%
(21x improvement) and general devirtualization from 1.874% to 4.663% (2.5x
improvement).
Change-Id: I494c5b4de7227bd5c8ca9cf37399594182dcd6f8
2 files changed