Commit a98c8893 authored by Benedikt Meurer's avatar Benedikt Meurer Committed by Commit Bot

[turbofan] We don't need write barriers for immortal immovable maps.

WriteBarrierKindFor would always return kMapWriteBarrier in
SimplifiedLowering even if the map that's to be stored is part
of the immortal immovable roots which don't need write barriers
ever.

Bug: v8:7310
Change-Id: I0a87a1c3ddd7f71ccf8ebacba8409067dc00cd1c
Reviewed-on: https://chromium-review.googlesource.com/928564
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51431}
parent 7badc3f0
......@@ -1237,12 +1237,16 @@ class RepresentationSelector {
MachineRepresentation field_representation, int field_offset,
Type* field_type, MachineRepresentation value_representation,
Node* value) {
if (base_taggedness == kTaggedBase &&
field_offset == HeapObject::kMapOffset) {
return kMapWriteBarrier;
WriteBarrierKind write_barrier_kind =
WriteBarrierKindFor(base_taggedness, field_representation, field_type,
value_representation, value);
if (write_barrier_kind != kNoWriteBarrier) {
if (base_taggedness == kTaggedBase &&
field_offset == HeapObject::kMapOffset) {
write_barrier_kind = kMapWriteBarrier;
}
}
return WriteBarrierKindFor(base_taggedness, field_representation,
field_type, value_representation, value);
return write_barrier_kind;
}
Graph* graph() const { return jsgraph_->graph(); }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment