summaryrefslogtreecommitdiff
path: root/dex2oat/dex/quick_compiler_callbacks.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2025-02-17 14:21:07 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2025-02-18 07:19:47 -0800
commitcb3c3b2819f326d54a6bd960a9a82c5290aa69b0 (patch)
tree1b71adef87aeebc9bdf92f6c66330c3a31fa1877 /dex2oat/dex/quick_compiler_callbacks.cc
parentb4d4a7c4c368272c4368db35ddffbd8fcab544fb (diff)
Do not inline a method that was marked as un-compilable.
The compiler may have internally mark a method as not compilable. Do not clear the verification results from the compiler callbacks, we still need them during compilation. Test: 860-vdex-failure Bug: 395243275 Change-Id: I79ba61eb8a7ba6729b22c4c27fa83d8373fce03a
Diffstat (limited to 'dex2oat/dex/quick_compiler_callbacks.cc')
-rw-r--r--dex2oat/dex/quick_compiler_callbacks.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/dex2oat/dex/quick_compiler_callbacks.cc b/dex2oat/dex/quick_compiler_callbacks.cc
index 6261cc27c5..ee055fbfd9 100644
--- a/dex2oat/dex/quick_compiler_callbacks.cc
+++ b/dex2oat/dex/quick_compiler_callbacks.cc
@@ -45,6 +45,13 @@ void QuickCompilerCallbacks::ClassRejected(ClassReference ref) {
}
}
+bool QuickCompilerCallbacks::IsUncompilableMethod(MethodReference ref) {
+ if (verification_results_ != nullptr) {
+ return verification_results_->IsUncompilableMethod(ref);
+ }
+ return false;
+}
+
ClassStatus QuickCompilerCallbacks::GetPreviousClassState(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.