Generate devirtualization map only for native compilation.
Since devirtualization is only supported by the quick compiler, we do not need
to generate devirtualization map for non-compiled method.
Bug: 12171022
Change-Id: Ic7d6882396a05b70c4b8067bd14b7a339e0a93ab
diff --git a/compiler/dex/verified_methods_data.cc b/compiler/dex/verified_methods_data.cc
index 454b92c..e5b2b03 100644
--- a/compiler/dex/verified_methods_data.cc
+++ b/compiler/dex/verified_methods_data.cc
@@ -78,6 +78,14 @@
VerifyGcMap(method_verifier, *dex_gc_map);
}
SetDexGcMap(ref, dex_gc_map);
+
+ // TODO: move this out when DEX-to-DEX supports devirtualization.
+ if (method_verifier->HasVirtualOrInterfaceInvokes()) {
+ PcToConcreteMethodMap* pc_to_concrete_method = GenerateDevirtMap(method_verifier);
+ if (pc_to_concrete_method != NULL) {
+ SetDevirtMap(ref, pc_to_concrete_method);
+ }
+ }
}
if (method_verifier->HasCheckCasts()) {
@@ -86,13 +94,6 @@
SetSafeCastMap(ref, method_to_safe_casts);
}
}
-
- if (method_verifier->HasVirtualOrInterfaceInvokes()) {
- PcToConcreteMethodMap* pc_to_concrete_method = GenerateDevirtMap(method_verifier);
- if (pc_to_concrete_method != NULL) {
- SetDevirtMap(ref, pc_to_concrete_method);
- }
- }
return true;
}