02ac71e256
Loop unrolling did not work properly with floating control. Seeing as very few spots in the wasm compiler introduced floating control, we decided to disallow it altogether. Changes: - When lowering 64-bit rol/ror/clz/ctz in 32-bit platforms, we use a diamond operator, which used to introduce floating control. This CL adds a control edge to these operators so that the diamond can be chained to that control instead. - During loop analysis, as an additional safety check, we check that the explored loop does not have floating control. Exceptionally, floating control pointing directly do start() is allowed. - Change wasm-compiler so that generated floating projections point to start() even after stack check patch-in. Bug: chromium:1184929, v8:11298 Change-Id: I1ee063f5250037ae6c84d2f16b0bd8fff3923117 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2876851 Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#74527} |
||
---|---|---|
.. | ||
api | ||
asmjs | ||
assembler | ||
base | ||
codegen | ||
compiler | ||
compiler-dispatcher | ||
date | ||
diagnostics | ||
execution | ||
heap | ||
interpreter | ||
libplatform | ||
logging | ||
numbers | ||
objects | ||
parser | ||
profiler | ||
regress | ||
strings | ||
tasks | ||
torque | ||
utils | ||
wasm | ||
zone | ||
BUILD.gn | ||
DEPS | ||
run-all-unittests.cc | ||
test-helpers.cc | ||
test-helpers.h | ||
test-utils.cc | ||
test-utils.h | ||
testcfg.py | ||
unittests.status |