diff options
author | 2018-01-25 10:47:41 +0000 | |
---|---|---|
committer | 2018-01-25 10:47:41 +0000 | |
commit | 0be8cabf16ee5fa5186bc90471911336f6c01f19 (patch) | |
tree | 0ff068df6465b52458ecca3de96d119234415def /compiler/driver/compiler_driver.cc | |
parent | 718e8319c728e9ee2ec15b1d56ca96baa4393028 (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.cc | 45 |
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. |