• Mircea Trofin's avatar
    Move phis, if any, when ensuring deferred blocks. · 8038e5ca
    Mircea Trofin authored
    We use Schedule::EnsureDeferredCodeSingleEntryPoint as a helper for 
    hand-crafted builtin code, to ensure deferred code isn't entered from a
    mix of deferred and non-deferred code (invariant required for hot/cold
    allocation, or "splintering").
    
    When we create a "merger" block, it may be the case that the original 
    block had a few phi operands. Those need to be moved as well.
    
    This bug was uncovered by both v8:6390, and, earlier, by v8:5998. We 
    fixed the earlier one by authoring a the builtin to avoid the need for
    EnsureDeferredCodeSingleEntryPoint. I proposed earlier an alternative 
    where we'd replace the Ensure... method with a Verify, and throw early
    when the builtin is assembled, however, we may want to maintain the 
    slightly higher level DSL for authoring builtins, and perform such 
    graph adjustments for the lower level constraints afterwards, hence 
    this current CL.
    
    Bug: v8:5998 v8:6390
    Change-Id: Ia3143f7a66904fe480d8edb5b52bf915b8d185dc
    Reviewed-on: https://chromium-review.googlesource.com/505264
    Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
    Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#45387}
    8038e5ca
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...
.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...
DEPS.chromium 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...