summaryrefslogtreecommitdiff
path: root/compiler/driver/compiler_options.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2022-07-12 11:22:06 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2022-07-12 12:58:26 +0000
commit0ae89052f7213701b8b3a782266e84b3d3600dbf (patch)
treecb203cf6c5644b2d95d76082ab9b6cd32c9451a8 /compiler/driver/compiler_options.cc
parent0c0b9ec300f459d3bbdf96665556457d5d3d552d (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.cc26
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