• mbrandy's avatar
    PPC: [turbofan] Add general support for sp-based frame access · 19f33159
    mbrandy authored
    Port 51669873
    
    Original commit message:
        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().
    
    R=danno@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
    BUG=v8:4076
    LOG=n
    
    Review URL: https://codereview.chromium.org/1484913003
    
    Cr-Commit-Position: refs/heads/master@{#32420}
    19f33159
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...