Revert "Enable store elimination for singleton objects."
This reverts commit 7f43a3d48fc29045875d50e10bbc5d6ffc25d61e.
Fails booting.
Bug: 25357772
Change-Id: Ied19536f3ce8d81e76885cb6baed4853e2ed6714
diff --git a/compiler/optimizing/load_store_elimination.cc b/compiler/optimizing/load_store_elimination.cc
index aa9c315..90f28e5 100644
--- a/compiler/optimizing/load_store_elimination.cc
+++ b/compiler/optimizing/load_store_elimination.cc
@@ -695,12 +695,8 @@
} else {
redundant_store = true;
}
- HNewInstance* new_instance = ref_info->GetReference()->AsNewInstance();
- DCHECK(new_instance != nullptr);
- if (new_instance->IsFinalizable()) {
- // Finalizable objects escape globally. Need to keep the store.
- redundant_store = false;
- }
+ // TODO: eliminate the store if the singleton object is not finalizable.
+ redundant_store = false;
}
if (redundant_store) {
removed_instructions_.push_back(instruction);
@@ -838,9 +834,7 @@
return;
}
if (!heap_location_collector_.MayDeoptimize() &&
- ref_info->IsSingletonAndNotReturned() &&
- !new_instance->IsFinalizable() &&
- !new_instance->CanThrow()) {
+ ref_info->IsSingletonAndNotReturned()) {
// The allocation might be eliminated.
singleton_new_instances_.push_back(new_instance);
}