Commit d88d7aa7 authored by Leszek Swirski's avatar Leszek Swirski Committed by V8 LUCI CQ

[maglev] Weaken DCHECK on Double field load

Double-representation field loads were DCHECKing that the entry in the
descriptor array for a double-representation IC is also double
representation. With in-place map updates, however, the IC may be out of
date, so weaken this DCHECK to take into account in-place updates, and
rely on compilation dependency commit making this lookup safe.

Bug: v8:7700
Change-Id: Iff3c80d396274d14034e010dbe98f5640c9e4495
Fixed: chromium:1358872
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3892692
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: 's avatarJakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83166}
parent 6a69a24c
...@@ -1040,7 +1040,8 @@ bool MaglevGraphBuilder::TryBuildMonomorphicLoadFromSmiHandler( ...@@ -1040,7 +1040,8 @@ bool MaglevGraphBuilder::TryBuildMonomorphicLoadFromSmiHandler(
InternalIndex index = InternalIndex index =
descriptors.Search(field.property_index(), *map.object()); descriptors.Search(field.property_index(), *map.object());
DCHECK(index.is_found()); DCHECK(index.is_found());
DCHECK(descriptors.GetDetails(index).representation().IsDouble()); DCHECK(Representation::Double().CanBeInPlaceChangedTo(
descriptors.GetDetails(index).representation()));
const compiler::CompilationDependency* dep = const compiler::CompilationDependency* dep =
broker()->dependencies()->FieldRepresentationDependencyOffTheRecord( broker()->dependencies()->FieldRepresentationDependencyOffTheRecord(
map, index, Representation::Double()); map, index, Representation::Double());
......
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