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(
}
if (!result.has_value()) {
result = info;
} else {
// We detected a partially overlapping access here.
// We currently don't seem to have such accesses, so this code path is
// unreachable, but if we eventually have them, it is safe to return
// nullptr and continue the analysis. But store-store elimination is
// currently unsafe for such overlapping accesses, so when we remove
// this check, we should double-check that store-store elimination can
// handle it too.
DCHECK_EQ(**result, *info);
} else if (**result != *info) {
// We detected inconsistent information for a field here.
// This can happen when incomplete alias information makes an unrelated
// write invalidate part of a field and then we re-combine this partial
// information.
// This is probably OK, but since it's rare, we better bail out here.
return nullptr;
}
}
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