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 =
|
FieldInfo const* lookup_result =
|
||||||
state->LookupField(object, field_index, constness);
|
state->LookupField(object, field_index, constness);
|
||||||
|
|
||||||
if (lookup_result) {
|
if (lookup_result && constness == PropertyConstness::kMutable) {
|
||||||
// At runtime, we should never encounter
|
// At runtime, we should never encounter
|
||||||
// - any store replacing existing info with a different, incompatible
|
// - any store replacing existing info with a different, incompatible
|
||||||
// representation, nor
|
// representation, nor
|
||||||
// - two consecutive const stores.
|
// - two consecutive const stores.
|
||||||
// However, we may see such code statically, so we guard against
|
// However, we may see such code statically, so we guard against
|
||||||
// executing it by emitting Unreachable.
|
// 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 =
|
bool incompatible_representation =
|
||||||
!lookup_result->name.is_null() &&
|
!lookup_result->name.is_null() &&
|
||||||
!IsCompatible(representation, lookup_result->representation);
|
!IsCompatible(representation, lookup_result->representation);
|
||||||
if (incompatible_representation ||
|
if (incompatible_representation) {
|
||||||
constness == PropertyConstness::kConst) {
|
|
||||||
Node* control = NodeProperties::GetControlInput(node);
|
Node* control = NodeProperties::GetControlInput(node);
|
||||||
Node* unreachable =
|
Node* unreachable =
|
||||||
graph()->NewNode(common()->Unreachable(), effect, control);
|
graph()->NewNode(common()->Unreachable(), effect, control);
|
||||||
|
Loading…
Reference in New Issue
Block a user