diff options
author | 2022-01-17 09:17:23 +0000 | |
---|---|---|
committer | 2022-01-17 12:08:48 +0000 | |
commit | ee7bd3293c93f812f3403325f621ed73ad607ae4 (patch) | |
tree | c6e1fb92b4e75ccd308b86d21412a3aea8a3bf39 /compiler/optimizing/sharpening.cc | |
parent | 3d2f148fe040b60452d5d9be7d08dec693132078 (diff) |
Revert "Expand sharpening's ComputeLoadClassKind to cover cross-dex cases"
This reverts commit 32b8c8f33ad68982357c1fa3d0f132d06b070ab5.
Bug: 154012332
Bug: 214850438
Reason for revert: b/214850438
Change-Id: I479c0910ce5da593e170bc5e4f6fa10dfe5d67b2
Diffstat (limited to 'compiler/optimizing/sharpening.cc')
-rw-r--r-- | compiler/optimizing/sharpening.cc | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/compiler/optimizing/sharpening.cc b/compiler/optimizing/sharpening.cc index cb9edc0127..1fd76f7029 100644 --- a/compiler/optimizing/sharpening.cc +++ b/compiler/optimizing/sharpening.cc @@ -275,18 +275,15 @@ HLoadClass::LoadKind HSharpening::ComputeLoadClassKind( } HLoadClass::LoadKind load_kind = codegen->GetSupportedLoadClassKind(desired_load_kind); - // If we cannot reference this class due to .bss requirements, we're forced to bail. if (!IsSameDexFile(load_class->GetDexFile(), *dex_compilation_unit.GetDexFile())) { - if (load_kind == HLoadClass::LoadKind::kRuntimeCall) { - return HLoadClass::LoadKind::kInvalid; - } - - if (load_kind == HLoadClass::LoadKind::kBssEntry || + if (load_kind == HLoadClass::LoadKind::kRuntimeCall || + load_kind == HLoadClass::LoadKind::kBssEntry || load_kind == HLoadClass::LoadKind::kBssEntryPublic || load_kind == HLoadClass::LoadKind::kBssEntryPackage) { - if (!codegen->GetCompilerOptions().WithinOatFile(&load_class->GetDexFile())) { - return HLoadClass::LoadKind::kInvalid; - } + // We actually cannot reference this class, we're forced to bail. + // We cannot reference this class with Bss, as the entrypoint will lookup the class + // in the caller's dex file, but that dex file does not reference the class. + return HLoadClass::LoadKind::kInvalid; } } return load_kind; |