• jyan's avatar
    S390: [turbofan] CodeGenerator: Frame setup refactoring · 2f2b3040
    jyan authored
    Port 81a1530e
    
    Original commit message:
    
        Before frame elision, we finalized the frame shape when assembling the
        prologue, which is also when we prepared the frame (saving sp, etc).
    
        The frame finalization only needs to happen once, and happens to be
        actually a set of idempotent operations. With frame elision, the logic for
        frame finalization was happening every time we constructed the frame.
        Albeit idempotent operations, the code would become hard to maintain.
    
        This change separates frame shape finalization from frame
        construction. When constructing the CodeGenerator, we finalize the
        frame. Subsequent access is to a const Frame*.
    
        Also renamed AssemblePrologue to AssembleConstructFrame, as
        suggested in the frame elision CR.
    
        Separating frame setup gave the opportunity to do away with
        architecture-independent frame aligning (which is something just arm64
        cares about), and also with stack pointer setup (also arm64). Both of
        these happen now at frame finalization on arm64.
    
    R=mtrofin@chromium.org, joransiu@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
    
    BUG=
    LOG=N
    
    Review URL: https://codereview.chromium.org/1903403002
    
    Cr-Commit-Position: refs/heads/master@{#35677}
    2f2b3040
Name
Last commit
Last update
..
OWNERS Loading commit data...
code-generator-s390.cc Loading commit data...
instruction-codes-s390.h Loading commit data...
instruction-scheduler-s390.cc Loading commit data...
instruction-selector-s390.cc Loading commit data...