diff --git a/compiler/dex/dex_to_dex_compiler.cc b/compiler/dex/dex_to_dex_compiler.cc
index a0e2c1e..2a4d3d5 100644
--- a/compiler/dex/dex_to_dex_compiler.cc
+++ b/compiler/dex/dex_to_dex_compiler.cc
@@ -298,11 +298,12 @@
   int vtable_idx;
   uintptr_t direct_code;
   uintptr_t direct_method;
+  // TODO: support devirtualization.
+  const bool kEnableDevirtualization = false;
   bool fast_path = driver_.ComputeInvokeInfo(&unit_, dex_pc, invoke_type,
                                              target_method, vtable_idx,
                                              direct_code, direct_method,
-                                             false);
-  // TODO: support devirtualization.
+                                             false, kEnableDevirtualization);
   if (fast_path && original_invoke_type == invoke_type) {
     if (vtable_idx >= 0 && IsUint(16, vtable_idx)) {
       VLOG(compiler) << "Quickening " << Instruction::Name(inst->Opcode())
diff --git a/compiler/dex/mir_dataflow.cc b/compiler/dex/mir_dataflow.cc
index 3a73717..42ca5dc 100644
--- a/compiler/dex/mir_dataflow.cc
+++ b/compiler/dex/mir_dataflow.cc
@@ -1224,7 +1224,7 @@
                                               type, target_method,
                                               vtable_idx,
                                               direct_code, direct_method,
-                                              false) &&
+                                              false, true) &&
                                               !(cu_->enable_debug & (1 << kDebugSlowInvokePath));
   return (((type == kDirect) || (type == kStatic)) &&
           fast_path && ((direct_code == 0) || (direct_method == 0)));
diff --git a/compiler/dex/quick/gen_invoke.cc b/compiler/dex/quick/gen_invoke.cc
index 073b550..a4ab15d 100644
--- a/compiler/dex/quick/gen_invoke.cc
+++ b/compiler/dex/quick/gen_invoke.cc
@@ -1359,7 +1359,7 @@
                                               info->type, target_method,
                                               vtable_idx,
                                               direct_code, direct_method,
-                                              true) && !SLOW_INVOKE_PATH;
+                                              true, true) && !SLOW_INVOKE_PATH;
   if (info->type == kInterface) {
     if (fast_path) {
       p_null_ck = &null_ck;
