From 9e050df94df5c6736e1e24705194f62fbc119114 Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Wed, 9 Aug 2017 10:05:47 -0700 Subject: Revert "Revert "Support class unloading in dex2oat for quicken multidex"" Bug: 63467744 Test: test-art-host This reverts commit 6921d90a241f0307ac25120f8f976744d4a57706. Change-Id: If70e31d3a15579dc75fd40bfef186e0124568c87 --- compiler/dex/quick_compiler_callbacks.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'compiler/dex/quick_compiler_callbacks.cc') diff --git a/compiler/dex/quick_compiler_callbacks.cc b/compiler/dex/quick_compiler_callbacks.cc index 872f7ea15d..c7e9f4fc07 100644 --- a/compiler/dex/quick_compiler_callbacks.cc +++ b/compiler/dex/quick_compiler_callbacks.cc @@ -16,6 +16,7 @@ #include "quick_compiler_callbacks.h" +#include "driver/compiler_driver.h" #include "verification_results.h" #include "verifier/method_verifier-inl.h" @@ -33,4 +34,17 @@ void QuickCompilerCallbacks::ClassRejected(ClassReference ref) { } } +bool QuickCompilerCallbacks::CanAssumeVerified(ClassReference ref) { + // If we don't have class unloading enabled in the compiler, we will never see class that were + // previously verified. Return false to avoid overhead from the lookup in the compiler driver. + if (!does_class_unloading_) { + return false; + } + DCHECK(compiler_driver_ != nullptr); + // In the case of the quicken filter: avoiding verification of quickened instructions, which the + // verifier doesn't currently support. + // In the case of the verify filter, avoiding verifiying twice. + return compiler_driver_->CanAssumeVerified(ref); +} + } // namespace art -- cgit v1.2.3-59-g8ed1b