• danno's avatar
    [turbofan] Add general support for sp-based frame access · 51669873
    danno authored
    Some highlights of this CL:
    * Refactor the mutable state out of Frame into FrameAccessState,
      which is maintained and updated during code generation to
      record whether sp- or fp-based frame access is currently active
      and how deep the stack on top of the frame is.
    * The operand resultion in linkage.cc now uses FrameAccessState
      to determine how to generate frame-accessing operands.
    * Update all platforms to accurately track additionally pushed
      stack slots (e.g. arguments for calls) in the FrameAccessState.
    * Add a flag, --turbo_sp_frame_access, which forces all frame
      access to be sp-based whenever possible. This will likely never
      be used in production, but for testing it's useful in verifying
      that the stack-tracking of each platform maintained in the
      FrameAccessState is correct.
    * Use sp-based frame access for gap resolving before tail
      calls. This will allow for slightly more efficient restoration
      of the frame pointer in the tail call in a later CL.
    * Remove most ad hoc groping into CallDescriptors to
      determine if a frame is needed, instead consistently use
      predicates like needs_frame(), IsCFunctionCall() and
      IsJSFunctionCall().
    
    BUG=v8:4076
    LOG=n
    
    Review URL: https://codereview.chromium.org/1460183002
    
    Cr-Commit-Position: refs/heads/master@{#32234}
    51669873
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...