diff --git a/compiler/driver/compiler_driver.h b/compiler/driver/compiler_driver.h
index 5043884..46aaba4 100644
--- a/compiler/driver/compiler_driver.h
+++ b/compiler/driver/compiler_driver.h
@@ -34,7 +34,6 @@
 #include "dex_file.h"
 #include "dex_file_types.h"
 #include "driver/compiled_method_storage.h"
-#include "invoke_type.h"
 #include "jit/profile_compilation_info.h"
 #include "method_reference.h"
 #include "mirror/class.h"  // For mirror::Class::Status.
@@ -62,6 +61,7 @@
 struct InlineIGetIPutData;
 class InstructionSetFeatures;
 class InternTable;
+enum InvokeType : uint32_t;
 class ParallelCompilationManager;
 class ScopedObjectAccess;
 template <class Allocator> class SrcMap;
diff --git a/compiler/verifier_deps_test.cc b/compiler/verifier_deps_test.cc
index 5c097da..56c9615 100644
--- a/compiler/verifier_deps_test.cc
+++ b/compiler/verifier_deps_test.cc
@@ -23,7 +23,7 @@
 #include "compiler_callbacks.h"
 #include "dex/verification_results.h"
 #include "dex/verified_method.h"
-#include "dex_file.h"
+#include "dex_file-inl.h"
 #include "dex_file_types.h"
 #include "driver/compiler_driver-inl.h"
 #include "driver/compiler_options.h"
diff --git a/runtime/common_throws.h b/runtime/common_throws.h
index 4afef79..2fc2016 100644
--- a/runtime/common_throws.h
+++ b/runtime/common_throws.h
@@ -18,7 +18,6 @@
 #define ART_RUNTIME_COMMON_THROWS_H_
 
 #include "base/mutex.h"
-#include "invoke_type.h"
 #include "obj_ptr.h"
 
 namespace art {
@@ -30,6 +29,7 @@
 class ArtField;
 class ArtMethod;
 class DexFile;
+enum InvokeType : uint32_t;
 class Signature;
 class StringPiece;
 
diff --git a/runtime/dex_file-inl.h b/runtime/dex_file-inl.h
index b163cdb..1b7c318 100644
--- a/runtime/dex_file-inl.h
+++ b/runtime/dex_file-inl.h
@@ -21,6 +21,7 @@
 #include "base/logging.h"
 #include "base/stringpiece.h"
 #include "dex_file.h"
+#include "invoke_type.h"
 #include "leb128.h"
 
 namespace art {
@@ -199,6 +200,25 @@
   return true;
 }
 
+inline
+InvokeType ClassDataItemIterator::GetMethodInvokeType(const DexFile::ClassDef& class_def) const {
+  if (HasNextDirectMethod()) {
+    if ((GetRawMemberAccessFlags() & kAccStatic) != 0) {
+      return kStatic;
+    } else {
+      return kDirect;
+    }
+  } else {
+    DCHECK_EQ(GetRawMemberAccessFlags() & kAccStatic, 0U);
+    if ((class_def.access_flags_ & kAccInterface) != 0) {
+      return kInterface;
+    } else if ((GetRawMemberAccessFlags() & kAccConstructor) != 0) {
+      return kSuper;
+    } else {
+      return kVirtual;
+    }
+  }
+}
 
 }  // namespace art
 
diff --git a/runtime/dex_file.h b/runtime/dex_file.h
index e86d538..9167108 100644
--- a/runtime/dex_file.h
+++ b/runtime/dex_file.h
@@ -25,12 +25,12 @@
 #include "base/value_object.h"
 #include "dex_file_types.h"
 #include "globals.h"
-#include "invoke_type.h"
 #include "jni.h"
 #include "modifiers.h"
 
 namespace art {
 
+enum InvokeType : uint32_t;
 class MemMap;
 class OatDexFile;
 class Signature;
@@ -1424,24 +1424,7 @@
   bool MemberIsFinal() const {
     return GetRawMemberAccessFlags() & kAccFinal;
   }
-  InvokeType GetMethodInvokeType(const DexFile::ClassDef& class_def) const {
-    if (HasNextDirectMethod()) {
-      if ((GetRawMemberAccessFlags() & kAccStatic) != 0) {
-        return kStatic;
-      } else {
-        return kDirect;
-      }
-    } else {
-      DCHECK_EQ(GetRawMemberAccessFlags() & kAccStatic, 0U);
-      if ((class_def.access_flags_ & kAccInterface) != 0) {
-        return kInterface;
-      } else if ((GetRawMemberAccessFlags() & kAccConstructor) != 0) {
-        return kSuper;
-      } else {
-        return kVirtual;
-      }
-    }
-  }
+  ALWAYS_INLINE InvokeType GetMethodInvokeType(const DexFile::ClassDef& class_def) const;
   const DexFile::CodeItem* GetMethodCodeItem() const {
     return dex_file_.GetCodeItem(method_.code_off_);
   }
diff --git a/runtime/dex_file_types.h b/runtime/dex_file_types.h
index bd779c4..acca7c0 100644
--- a/runtime/dex_file_types.h
+++ b/runtime/dex_file_types.h
@@ -23,6 +23,8 @@
 namespace art {
 namespace dex {
 
+constexpr uint32_t kDexNoIndex = 0xFFFFFFFF;
+
 class StringIndex {
  public:
   uint32_t index_;
diff --git a/runtime/dex_method_iterator.h b/runtime/dex_method_iterator.h
index 8a4bed3..a44bc16 100644
--- a/runtime/dex_method_iterator.h
+++ b/runtime/dex_method_iterator.h
@@ -19,7 +19,7 @@
 
 #include <vector>
 
-#include "dex_file.h"
+#include "dex_file-inl.h"
 
 namespace art {
 
diff --git a/runtime/entrypoints/entrypoint_utils.h b/runtime/entrypoints/entrypoint_utils.h
index 4f90908..d2c98e1 100644
--- a/runtime/entrypoints/entrypoint_utils.h
+++ b/runtime/entrypoints/entrypoint_utils.h
@@ -27,7 +27,6 @@
 #include "dex_instruction.h"
 #include "gc/allocator_type.h"
 #include "handle.h"
-#include "invoke_type.h"
 #include "jvalue.h"
 
 namespace art {
@@ -41,6 +40,7 @@
 
 class ArtField;
 class ArtMethod;
+enum InvokeType : uint32_t;
 class OatQuickMethodHeader;
 class ScopedObjectAccessAlreadyRunnable;
 class Thread;
diff --git a/runtime/mirror/class-inl.h b/runtime/mirror/class-inl.h
index 67aeeff..77a5b55 100644
--- a/runtime/mirror/class-inl.h
+++ b/runtime/mirror/class-inl.h
@@ -30,6 +30,7 @@
 #include "dex_file-inl.h"
 #include "gc/heap-inl.h"
 #include "iftable.h"
+#include "invoke_type.h"
 #include "object-inl.h"
 #include "object_array.h"
 #include "read_barrier-inl.h"
diff --git a/runtime/mirror/class.h b/runtime/mirror/class.h
index 4c9b146..c44b616 100644
--- a/runtime/mirror/class.h
+++ b/runtime/mirror/class.h
@@ -27,7 +27,6 @@
 #include "gc/allocator_type.h"
 #include "gc_root.h"
 #include "imtable.h"
-#include "invoke_type.h"
 #include "modifiers.h"
 #include "object.h"
 #include "object_array.h"
@@ -43,6 +42,7 @@
 class ArtMethod;
 struct ClassOffsets;
 template<class T> class Handle;
+enum InvokeType : uint32_t;
 template<typename T> class LengthPrefixedArray;
 template<typename T> class ArraySlice;
 class Signature;
diff --git a/runtime/stack_map.h b/runtime/stack_map.h
index 3931b62..db776ea 100644
--- a/runtime/stack_map.h
+++ b/runtime/stack_map.h
@@ -23,8 +23,8 @@
 #include "base/bit_utils.h"
 #include "base/bit_vector.h"
 #include "bit_memory_region.h"
-#include "dex_file.h"
 #include "leb128.h"
+#include "dex_file_types.h"
 #include "memory_region.h"
 #include "method_info.h"
 
@@ -906,7 +906,7 @@
     dex_pc_bit_offset_ = dchecked_integral_cast<uint8_t>(total_bit_size_);
     // Note: We're not encoding the dex pc if there is none. That's the case
     // for an intrinsified native method, such as String.charAt().
-    if (dex_pc_max != DexFile::kDexNoIndex) {
+    if (dex_pc_max != dex::kDexNoIndex) {
       total_bit_size_ += MinimumBitsToStore(1 /* kNoDexPc */ + dex_pc_max);
     }
 
