• Thibaud Michaud's avatar
    [wasm][liftoff] Fix spill offsets in merge regions · a4252db3
    Thibaud Michaud authored
    Recompute the spill offsets for values in the merge region, instead of
    reusing the offsets of the source. This ensures that spill slots stay
    contiguous (modulo alignment).
    This also solves a correctness issue where the spill offsets in the
    merge region could move up, thereby overwriting the source of another
    move.
    With this change, the spill offsets always move down (to fill the gap)
    or stay the same, such that processing them from bottom to top
    can only overwrite sources of already-processed moves.
    
    Since we do not reuse the current state's offsets, this might generate
    extra stack moves and regress generated code performance a bit.
    
    Drive-by: print spill offsets in the Liftoff trace
    
    R=clemensb@chromium.org
    
    Bug: v8:12270
    Change-Id: I8d20df8fc1e80dd36b6f651de457686e9935a628
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3245115
    Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#77556}
    a4252db3
Name
Last commit
Last update
.github Loading commit data...
bazel Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.bazelrc Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.flake8 Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.mailmap Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.bazel Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
COMMON_OWNERS Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
ENG_REVIEW_OWNERS Loading commit data...
INFRA_OWNERS Loading commit data...
INTL_OWNERS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LOONG_OWNERS Loading commit data...
MIPS_OWNERS Loading commit data...
OWNERS Loading commit data...
PPC_OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
RISCV_OWNERS Loading commit data...
S390_OWNERS Loading commit data...
WATCHLISTS Loading commit data...
WORKSPACE Loading commit data...
codereview.settings Loading commit data...