summaryrefslogtreecommitdiff
path: root/compiler/driver/compiler_driver.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2018-01-25 10:47:41 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2018-01-25 10:47:41 +0000
commit0be8cabf16ee5fa5186bc90471911336f6c01f19 (patch)
tree0ff068df6465b52458ecca3de96d119234415def /compiler/driver/compiler_driver.cc
parent718e8319c728e9ee2ec15b1d56ca96baa4393028 (diff)
Revert "ART: Use the bitstring type check for AOT app compilation."
Test failures: http://build.chromium.org/p/client.art/builders/fugu-debug/builds/4875 01-25 02:05:28.357 23732 23732 F /data/local/tmp/system/bin/../bin/dalvikvm: quick_throw_entrypoints.cc:132] Check failed: !dest_type->IsAssignableFrom(src_type) This reverts commit 718e8319c728e9ee2ec15b1d56ca96baa4393028. Change-Id: I022f88cd81ae99143e5670ae29eae326ecc83cc2
Diffstat (limited to 'compiler/driver/compiler_driver.cc')
-rw-r--r--compiler/driver/compiler_driver.cc45
1 files changed, 0 insertions, 45 deletions
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc
index 273bd50b9e..70cbb01569 100644
--- a/compiler/driver/compiler_driver.cc
+++ b/compiler/driver/compiler_driver.cc
@@ -872,14 +872,6 @@ void CompilerDriver::PreCompile(jobject class_loader,
TimingLogger* timings) {
CheckThreadPools();
- if (kUseBitstringTypeCheck &&
- !compiler_options_->IsBootImage() &&
- compiler_options_->IsAotCompilationEnabled()) {
- RecordBootImageClassesWithAssignedBitstring();
- VLOG(compiler) << "RecordBootImageClassesWithAssignedBitstring: "
- << GetMemoryUsageString(false);
- }
-
LoadImageClasses(timings);
VLOG(compiler) << "LoadImageClasses: " << GetMemoryUsageString(false);
@@ -948,43 +940,6 @@ void CompilerDriver::PreCompile(jobject class_loader,
}
}
-void CompilerDriver::RecordBootImageClassesWithAssignedBitstring() {
- if (boot_image_classes_with_assigned_bitstring_ != nullptr) {
- return; // Already recorded. (Happens because of class unloading between dex files.)
- }
-
- class Visitor : public ClassVisitor {
- public:
- explicit Visitor(std::unordered_set<mirror::Class*>* recorded_classes)
- : recorded_classes_(recorded_classes) {}
-
- bool operator()(ObjPtr<mirror::Class> klass) OVERRIDE
- REQUIRES(Locks::subtype_check_lock_) REQUIRES_SHARED(Locks::mutator_lock_) {
- DCHECK(klass != nullptr);
- SubtypeCheckInfo::State state = SubtypeCheck<ObjPtr<mirror::Class>>::GetState(klass);
- if (state == SubtypeCheckInfo::kAssigned) {
- recorded_classes_->insert(klass.Ptr());
- }
- return true;
- }
-
- private:
- std::unordered_set<mirror::Class*>* const recorded_classes_;
- };
-
- boot_image_classes_with_assigned_bitstring_.reset(new std::unordered_set<mirror::Class*>());
- Visitor visitor(boot_image_classes_with_assigned_bitstring_.get());
- ClassLinker* class_linker = Runtime::Current()->GetClassLinker();
- ScopedObjectAccess soa(Thread::Current());
- MutexLock subtype_check_lock(soa.Self(), *Locks::subtype_check_lock_);
- class_linker->VisitClasses(&visitor);
-}
-
-bool CompilerDriver::IsBootImageClassWithAssignedBitstring(ObjPtr<mirror::Class> klass) {
- DCHECK(boot_image_classes_with_assigned_bitstring_ != nullptr);
- return boot_image_classes_with_assigned_bitstring_->count(klass.Ptr()) != 0u;
-}
-
bool CompilerDriver::IsImageClass(const char* descriptor) const {
if (image_classes_ != nullptr) {
// If we have a set of image classes, use those.