DescriptionPPC: [turbofan] CodeGenerator: Frame setup refactoring
Port 81a1530e6fb3f4382098f71c01ffe047ffd72afc
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, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
BUG=
LOG=N
Committed: https://crrev.com/a9cb48bf37fe325a54ca010e0760237ed714ab9d
Cr-Commit-Position: refs/heads/master@{#35674}
Patch Set 1 #
Total comments: 2
Patch Set 2 : removed unnecessary push #Messages
Total messages: 8 (2 generated)
|