• Mythri's avatar
    [Turbofan] Allow recursive inlining · d72c97e2
    Mythri authored
    Currently, we do not inline recursive functions. This is in general a
    good idea but could be useful in some cases. For example, in rayTrace
    there is a class.create function to create new classes, which basically
    calls the initialize function on the object. When there are classes which
    instantiate other classes this leads to recursion. These are really small
    functions (within the small function budget) and it is good to inline them.
    Allowing such functions to inline improves the score on rayTrace by 12-16%
    and box2d by 24-30%.
    
    There is also an absolute limit on the maximum levels of inlining to avoid
    any corner cases and to ensure inlining always terminates.
    
    Bug: v8:6682
    Change-Id: I6784f68d6395097d126c0850b1a1336b6583d958
    Reviewed-on: https://chromium-review.googlesource.com/608235Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Commit-Queue: Mythri Alle <mythria@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47255}
    d72c97e2
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 Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.editorconfig 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.fdlibm 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...
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...