Commit 8e78e4f6 authored by Tobias Tebbi's avatar Tobias Tebbi Committed by Commit Bot

[turbofan] fix too aggressive DCHECK in load elimination

Bug: chromium:1021444, chromium:1033196
Change-Id: Ic0468bce60577ad238581f17c4510a23ab63882a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1964390
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65433}
parent 51d2e988
...@@ -661,15 +661,13 @@ LoadElimination::FieldInfo const* LoadElimination::AbstractState::LookupField( ...@@ -661,15 +661,13 @@ LoadElimination::FieldInfo const* LoadElimination::AbstractState::LookupField(
} }
if (!result.has_value()) { if (!result.has_value()) {
result = info; result = info;
} else { } else if (**result != *info) {
// We detected a partially overlapping access here. // We detected inconsistent information for a field here.
// We currently don't seem to have such accesses, so this code path is // This can happen when incomplete alias information makes an unrelated
// unreachable, but if we eventually have them, it is safe to return // write invalidate part of a field and then we re-combine this partial
// nullptr and continue the analysis. But store-store elimination is // information.
// currently unsafe for such overlapping accesses, so when we remove // This is probably OK, but since it's rare, we better bail out here.
// this check, we should double-check that store-store elimination can return nullptr;
// handle it too.
DCHECK_EQ(**result, *info);
} }
} }
return *result; return *result;
......
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