• pierre.langlois's avatar
    [turbofan] ARM64: Match 64 bit compare with zero and branch · 27bd1747
    pierre.langlois authored
    This patch enables the following transformations in the instruction
    selector:
    
    | Before           | After                  |
    |------------------+------------------------|
    | and x3, x1, #0x1 | tb{,n}z w1, #0, #+0x78 |
    | cmp x3, #0x0     |                        |
    | b.{eq,ne} #+0x80 |                        |
    |------------------+------------------------|
    | cmp x0, #0x0     | cb{,n}z x0, #+0x48     |
    | b.{eq,ne} #+0x4c |                        |
    
    I have not seen these patterns beeing generated by turbofan, however the
    stubs hit these cases frequently. A particular reason is that we are
    turning operations that check for a Smi into a single `tbz`.
    
    As a concequence, the interpreter is affected thanks to inlining
    turbofan stubs into it's bytecode handlers. I have noticed the size of
    the interpreter was reduced by 200 instructions.
    
    BUG=
    
    Review-Url: https://codereview.chromium.org/2022073002
    Cr-Commit-Position: refs/heads/master@{#36632}
    27bd1747
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles 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...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md 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...