diff options
author | 2024-01-24 17:42:08 +0000 | |
---|---|---|
committer | 2024-01-24 22:21:16 +0000 | |
commit | 1ba3516e8c3e2b86c73084893dd297f468469181 (patch) | |
tree | 4b0c99a53fff26f6fe9489049f1830c54af08b86 /compiler/optimizing/write_barrier_elimination.cc | |
parent | 6b866347f77e264143cf3fbc677c3da0ef9acd5b (diff) |
Revert^6 "Disable write-barrier elimination pass"
This reverts commit 1be176f5a78750e2f0e32470f8c83e3d1643954d.
Reason for revert: Potential cause of build breakage for cf_riscv64_wear-trunk_staging-userdebug build 11353124
Change-Id: I5db1c9fba1edd4ab1eef30e2b547bb9649af5c10
Diffstat (limited to 'compiler/optimizing/write_barrier_elimination.cc')
-rw-r--r-- | compiler/optimizing/write_barrier_elimination.cc | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/compiler/optimizing/write_barrier_elimination.cc b/compiler/optimizing/write_barrier_elimination.cc index 27348cd87d..6182125b74 100644 --- a/compiler/optimizing/write_barrier_elimination.cc +++ b/compiler/optimizing/write_barrier_elimination.cc @@ -21,8 +21,8 @@ #include "base/scoped_arena_containers.h" #include "optimizing/nodes.h" -// TODO(b/310755375, solanes): Enable WBE with the fixes. -constexpr bool kWBEEnabled = true; +// TODO(b/310755375, solanes): Disable WBE while we investigate crashes. +constexpr bool kWBEEnabled = false; namespace art HIDDEN { @@ -58,7 +58,7 @@ class WBEVisitor final : public HGraphVisitor { DCHECK(it->second->AsInstanceFieldSet()->GetWriteBarrierKind() != WriteBarrierKind::kDontEmit); DCHECK_EQ(it->second->GetBlock(), instruction->GetBlock()); - it->second->AsInstanceFieldSet()->SetWriteBarrierKind(WriteBarrierKind::kEmitBeingReliedOn); + it->second->AsInstanceFieldSet()->SetWriteBarrierKind(WriteBarrierKind::kEmitNoNullCheck); instruction->SetWriteBarrierKind(WriteBarrierKind::kDontEmit); MaybeRecordStat(stats_, MethodCompilationStat::kRemovedWriteBarrier); } else { @@ -84,7 +84,7 @@ class WBEVisitor final : public HGraphVisitor { DCHECK(it->second->IsStaticFieldSet()); DCHECK(it->second->AsStaticFieldSet()->GetWriteBarrierKind() != WriteBarrierKind::kDontEmit); DCHECK_EQ(it->second->GetBlock(), instruction->GetBlock()); - it->second->AsStaticFieldSet()->SetWriteBarrierKind(WriteBarrierKind::kEmitBeingReliedOn); + it->second->AsStaticFieldSet()->SetWriteBarrierKind(WriteBarrierKind::kEmitNoNullCheck); instruction->SetWriteBarrierKind(WriteBarrierKind::kDontEmit); MaybeRecordStat(stats_, MethodCompilationStat::kRemovedWriteBarrier); } else { @@ -112,7 +112,8 @@ class WBEVisitor final : public HGraphVisitor { DCHECK(it->second->IsArraySet()); DCHECK(it->second->AsArraySet()->GetWriteBarrierKind() != WriteBarrierKind::kDontEmit); DCHECK_EQ(it->second->GetBlock(), instruction->GetBlock()); - it->second->AsArraySet()->SetWriteBarrierKind(WriteBarrierKind::kEmitBeingReliedOn); + // We never skip the null check in ArraySets so that value is already set. + DCHECK(it->second->AsArraySet()->GetWriteBarrierKind() == WriteBarrierKind::kEmitNoNullCheck); instruction->SetWriteBarrierKind(WriteBarrierKind::kDontEmit); MaybeRecordStat(stats_, MethodCompilationStat::kRemovedWriteBarrier); } else { |