Do not deopt when using AOT inline caches
Generating a deopt does not ensure that we will actually capture the new
types; and the danger is that we could be stuck in a loop with "forever"
deoptimizations. For example, if the method never becomes hot again, the
inline cache will not be updated and the AOT code will keep
deoptimizing.
This is a compromise because we will most likely never update the inline
cache (unless there's another reason to deopt). So we might be stuck
with a sub-optimal inline cache. As a TODO, we could be smarter when
capturing inline caches to mitigate this. (e.g. by having different
thresholds for new and old methods).
Delete test 644 which was testing a regression involving deopts which is
no longer applicable.
Bug: 38412648
Test: m test-art-host
(cherry picked from commit af44e6c5ca0169bc19c6263288a7d889b37db549)
Merged-In: Ib57f9c35ddbc95646aa352ab017e8b59d9466595
Change-Id: I307826bbdc3f994ea12a66243a31f148995f348b
9 files changed