• Junliang Yan's avatar
    PPC/s390: [Deopt] Remove jump table in prologue of deopt entries. · 2afe66c5
    Junliang Yan authored
    Port 4ab96a9a
    
    Original Commit Message:
    
        Remove the use of a jump table in the prologue of the deopt entries
        and instead pass the bailout id explicitly in a register when calling
        the deopt entry routine from optimized code. This unifies the logic
        with the way the Arm64 code works. It saves the following amount of
        memory in code stubs:
    
         - arm:  384KB
         - ia32: 480KB
         - x64:  240KB
    
        This could be offset by a slight increase in the size of optimized code
        for loading the immediate, however this impact should be minimal and
        will scale with the maximum number of bailout ids (e.g., the size of
        code will increase by one instruction per bailout id on Arm, therefore
        ~98,000 bailouts will be needed before the overhead is greater than
        the current fixed table size).
    
    R=rmcilroy@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
    BUG=
    LOG=N
    
    Change-Id: Id5762334b21e6a91e5ce44b7db1e38ace9147372
    Reviewed-on: https://chromium-review.googlesource.com/c/1406026
    Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
    Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
    Cr-Commit-Position: refs/heads/master@{#58752}
    2afe66c5
Name
Last commit
Last update
benchmarks 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...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython 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.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind 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...