Disable double const store check to see impact on canary
R=tebbi@chromium.org Bug: chromium:964833 Change-Id: I798f7c38eacaa16011ab7cc9ac4dea066078fbb5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1643170 Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Georg Schmid <gsps@google.com> Cr-Commit-Position: refs/heads/master@{#61977}
This commit is contained in:
parent
9c3546889c
commit
021ce3b5d9
@ -923,18 +923,20 @@ Reduction LoadElimination::ReduceStoreField(Node* node,
|
||||
FieldInfo const* lookup_result =
|
||||
state->LookupField(object, field_index, constness);
|
||||
|
||||
if (lookup_result) {
|
||||
if (lookup_result && constness == PropertyConstness::kMutable) {
|
||||
// At runtime, we should never encounter
|
||||
// - any store replacing existing info with a different, incompatible
|
||||
// representation, nor
|
||||
// - two consecutive const stores.
|
||||
// However, we may see such code statically, so we guard against
|
||||
// executing it by emitting Unreachable.
|
||||
// TODO(gsps): Re-enable the double const store check once we have
|
||||
// identified other FieldAccesses that should be marked mutable
|
||||
// instead of const (cf. JSCreateLowering::AllocateFastLiteral).
|
||||
bool incompatible_representation =
|
||||
!lookup_result->name.is_null() &&
|
||||
!IsCompatible(representation, lookup_result->representation);
|
||||
if (incompatible_representation ||
|
||||
constness == PropertyConstness::kConst) {
|
||||
if (incompatible_representation) {
|
||||
Node* control = NodeProperties::GetControlInput(node);
|
||||
Node* unreachable =
|
||||
graph()->NewNode(common()->Unreachable(), effect, control);
|
||||
|
Loading…
Reference in New Issue
Block a user