Store ImtIndex in ArtMethod.

This avoids recalculation and reduces pressure on the thread local cache.

This halves the time we spend hashing from 2% to 1% (maps on device).

Test: ./art/test.py -b --host --64
Change-Id: I2407bd9c222de4ddc6eea938908a1ac6d7abc35b
diff --git a/runtime/entrypoints/entrypoint_utils-inl.h b/runtime/entrypoints/entrypoint_utils-inl.h
index 2236e61..a18cca4 100644
--- a/runtime/entrypoints/entrypoint_utils-inl.h
+++ b/runtime/entrypoints/entrypoint_utils-inl.h
@@ -533,13 +533,7 @@
       UNREACHABLE();
     }
     case kInterface: {
-      size_t imt_index;
-      InterpreterCache* tls_cache = self->GetInterpreterCache();
-      if (UNLIKELY(!tls_cache->Get(resolved_method, &imt_index))) {
-        imt_index = ImTable::GetImtIndex(resolved_method);
-        tls_cache->Set(resolved_method, imt_index);
-      }
-      DCHECK_EQ(imt_index, ImTable::GetImtIndex(resolved_method));
+      size_t imt_index = resolved_method->GetImtIndex();
       PointerSize pointer_size = class_linker->GetImagePointerSize();
       ObjPtr<mirror::Class> klass = (*this_object)->GetClass();
       ArtMethod* imt_method = klass->GetImt(pointer_size)->Get(imt_index, pointer_size);