• mtrofin's avatar
    [turbofan] avoid xchg instruction on Intel · 7440edae
    mtrofin authored
    On Intel, xchg stalls the pipeline. We use xchg to implement swap
    moves. In a separate exploration, the presence of xchg in a very hot
    loop, due to a change in register allocation, lead to over 20% regression.
    
    Simply changing that instruction with push/mov/pop (almost) eliminated
    the regression.
    
    In light of that, I removed uses of xchg. This leads to more instructions,
    though. That is particularly problematic for long cycles, which, today,
    we translate to successions of swaps.
    
    I plan to address this cycle issue in a separate change. For now, the
    goal is to unblock the initial work that lead here.
    
    Review URL: https://codereview.chromium.org/1580233003
    
    Cr-Commit-Position: refs/heads/master@{#33282}
    7440edae
Name
Last commit
Last update
benchmarks Loading commit data...
build Loading commit data...
docs 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/binutils Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...