diff options
author | 2022-07-12 11:22:06 +0000 | |
---|---|---|
committer | 2022-07-12 12:58:26 +0000 | |
commit | 0ae89052f7213701b8b3a782266e84b3d3600dbf (patch) | |
tree | cb203cf6c5644b2d95d76082ab9b6cd32c9451a8 /compiler/driver/compiler_options.cc | |
parent | 0c0b9ec300f459d3bbdf96665556457d5d3d552d (diff) |
Revert "Add clinit checks at entry for some boot image methods."
This reverts commit c37e3a0a532fb89b62753d0478c1ba3c9fc87bb3.
Bug: 162110941
Bug: 238472973
Reason for revert: b/238472973
Change-Id: Ie684612c4e660ff121108ecc5e7455811c93353b
Diffstat (limited to 'compiler/driver/compiler_options.cc')
-rw-r--r-- | compiler/driver/compiler_options.cc | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/compiler/driver/compiler_options.cc b/compiler/driver/compiler_options.cc index b55e32b59d..51cd999b6d 100644 --- a/compiler/driver/compiler_options.cc +++ b/compiler/driver/compiler_options.cc @@ -23,7 +23,6 @@ #include "arch/instruction_set.h" #include "arch/instruction_set_features.h" -#include "art_method-inl.h" #include "base/runtime_debug.h" #include "base/string_view_cpp20.h" #include "base/variant_map.h" @@ -147,37 +146,14 @@ bool CompilerOptions::ParseCompilerOptions(const std::vector<std::string>& optio bool CompilerOptions::IsImageClass(const char* descriptor) const { // Historical note: We used to hold the set indirectly and there was a distinction between an - // empty set and a null, null meaning to include all classes. However, the distinction has been + // empty set and a null, null meaning to include all classes. However, the distiction has been // removed; if we don't have a profile, we treat it as an empty set of classes. b/77340429 return image_classes_.find(std::string_view(descriptor)) != image_classes_.end(); } -bool CompilerOptions::IsPreloadedClass(const char* pretty_descriptor) const { - return preloaded_classes_.find(std::string_view(pretty_descriptor)) != preloaded_classes_.end(); -} - const VerificationResults* CompilerOptions::GetVerificationResults() const { DCHECK(Runtime::Current()->IsAotCompiler()); return verification_results_; } -bool CompilerOptions::ShouldCompileWithClinitCheck(ArtMethod* method) const { - if (method->IsStatic() && - !method->IsConstructor() && - // Compiled code for native methods never do a clinit check, so we may put the resolution - // trampoline for native methods. This means that it's possible post zygote fork for the - // entry to be dirtied. We could resolve this by either: - // - Make these methods use the generic JNI entrypoint, but that's not - // desirable for a method that is in the profile. - // - Ensure the declaring class of such native methods are always in the - // preloaded-classes list. - // - Emit the clinit check in the compiled code of native methods. - !method->IsNative()) { - ScopedObjectAccess soa(Thread::Current()); - ObjPtr<mirror::Class> cls = method->GetDeclaringClass<kWithoutReadBarrier>(); - return cls->IsInBootImageAndNotInPreloadedClasses(); - } - return false; -} - } // namespace art |