[TurboFan] Relax DCHECK that is too strong

Bug: chromium:1170261
Change-Id: Id2c5d18df892ece2823f7784dee4e69e54b7454c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2652491
Auto-Submit: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72368}
This commit is contained in:
Nico Hartmann 2021-01-27 13:38:43 +01:00 committed by Commit Bot
parent ae1d7f8ed1
commit 3e62220446
2 changed files with 26 additions and 1 deletions

View File

@ -1105,7 +1105,7 @@ Node* RepresentationChanger::GetWord64RepresentationFor(
// BigInts are only represented as tagged pointer and word64.
if (!CanBeTaggedPointer(output_rep) &&
output_rep != MachineRepresentation::kWord64) {
DCHECK(!output_type.Is(Type::BigInt()));
DCHECK(!output_type.Equals(Type::BigInt()));
Node* unreachable =
InsertUnconditionalDeopt(use_node, DeoptimizeReason::kNotABigInt);
return jsgraph()->graph()->NewNode(

View File

@ -0,0 +1,25 @@
// Copyright 2021 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Flags: --allow-natives-syntax
function foo(unused1, unused2, bigint) {
const temp = -bigint;
}
function bar() {
const arr = Array();
const obj = Object();
arr.reduce(foo, 0)
}
%PrepareFunctionForOptimization(foo);
foo(0, 0, 2316465375n);
%OptimizeFunctionOnNextCall(foo);
foo(0, 0, 2316465375n);
%PrepareFunctionForOptimization(bar);
bar();
%OptimizeFunctionOnNextCall(bar);
bar();