49a526ace9
The unwinding info writer was assuming that a block that had no initial state must be the start or end block. It was trying to check if the block was the start or end by asserting that the block had either no predecessors or no successors. Loop rotation breaks this assumption, since it can move a block from inside a loop to before the loop header, and the block can then be the "start" block. But since such a block has both predecessor(s) and a successor, the check was wrong. R=clemensh@chromium.org BUG=chromium:913844 Change-Id: Ic24c67a822d510cb082f25608089d313c3459be8 Reviewed-on: https://chromium-review.googlesource.com/c/1373770 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58675}
8 lines
282 B
JavaScript
8 lines
282 B
JavaScript
// Copyright 2018 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: --disable-in-process-stack-traces --perf-prof --turbo-loop-rotation
|
|
for (var x = 0; x < 1000000; x++)
|
|
;
|