Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Issue 1843143002: [turbofan] CodeGenerator: Frame setup refactoring (Closed)

Created:
4 years, 8 months ago by Mircea Trofin
Modified:
4 years, 8 months ago
CC:
v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[turbofan] CodeGenerator: Frame setup refactoring 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. BUG= Committed: https://crrev.com/81a1530e6fb3f4382098f71c01ffe047ffd72afc Cr-Commit-Position: refs/heads/master@{#35642}

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Total comments: 4

Patch Set 7 : #

Patch Set 8 : #

Patch Set 9 : #

Patch Set 10 : #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+187 lines, -113 lines) Patch
M src/compiler/arm/code-generator-arm.cc View 1 2 3 4 5 6 7 8 9 6 chunks +32 lines, -14 lines 0 comments Download
M src/compiler/arm64/code-generator-arm64.cc View 1 2 3 4 5 6 7 8 9 6 chunks +27 lines, -10 lines 0 comments Download
M src/compiler/code-generator.h View 1 2 3 4 5 6 3 chunks +8 lines, -4 lines 0 comments Download
M src/compiler/code-generator.cc View 1 2 3 4 5 6 7 4 chunks +8 lines, -5 lines 0 comments Download
M src/compiler/code-generator-impl.h View 3 chunks +3 lines, -3 lines 0 comments Download
M src/compiler/frame.h View 1 2 3 4 5 6 7 8 6 chunks +5 lines, -13 lines 2 comments Download
M src/compiler/frame.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -2 lines 0 comments Download
M src/compiler/ia32/code-generator-ia32.cc View 1 2 3 4 5 6 7 8 9 5 chunks +20 lines, -8 lines 0 comments Download
M src/compiler/mips/code-generator-mips.cc View 1 2 3 4 5 6 7 8 9 4 chunks +29 lines, -19 lines 0 comments Download
M src/compiler/mips64/code-generator-mips64.cc View 1 2 3 4 5 6 7 8 9 4 chunks +26 lines, -16 lines 0 comments Download
M src/compiler/x64/code-generator-x64.cc View 1 2 3 4 5 6 7 8 6 chunks +29 lines, -14 lines 0 comments Download
M src/globals.h View 1 2 3 4 5 6 7 1 chunk +0 lines, -5 lines 0 comments Download

Messages

Total messages: 19 (7 generated)
Mircea Trofin
4 years, 8 months ago (2016-03-31 02:52:59 UTC) #3
Mircea Trofin
On 2016/03/31 02:52:59, Mircea Trofin wrote: ping :)
4 years, 8 months ago (2016-04-01 05:32:41 UTC) #4
danno
first round of feedback https://codereview.chromium.org/1843143002/diff/90001/src/compiler/code-generator.h File src/compiler/code-generator.h (right): https://codereview.chromium.org/1843143002/diff/90001/src/compiler/code-generator.h#newcode73 src/compiler/code-generator.h:73: frame_access_state_ = new (code()->zone()) FrameAccessState(frame); ...
4 years, 8 months ago (2016-04-01 15:56:26 UTC) #5
Mircea Trofin
https://codereview.chromium.org/1843143002/diff/90001/src/compiler/frame.h File src/compiler/frame.h (right): https://codereview.chromium.org/1843143002/diff/90001/src/compiler/frame.h#newcode160 src/compiler/frame.h:160: int stack_shrink_slots_; On 2016/04/01 15:56:26, danno wrote: > I ...
4 years, 8 months ago (2016-04-01 18:27:39 UTC) #6
Benedikt Meurer
On 2016/04/01 18:27:39, Mircea Trofin (OOO) wrote: > https://codereview.chromium.org/1843143002/diff/90001/src/compiler/frame.h > File src/compiler/frame.h (right): > > ...
4 years, 8 months ago (2016-04-04 03:50:30 UTC) #7
Mircea Trofin
https://codereview.chromium.org/1843143002/diff/90001/src/compiler/frame.h File src/compiler/frame.h (right): https://codereview.chromium.org/1843143002/diff/90001/src/compiler/frame.h#newcode160 src/compiler/frame.h:160: int stack_shrink_slots_; On 2016/04/01 15:56:26, danno wrote: > I ...
4 years, 8 months ago (2016-04-16 04:25:10 UTC) #9
Mircea Trofin
https://codereview.chromium.org/1843143002/diff/190001/src/compiler/frame.h File src/compiler/frame.h (right): https://codereview.chromium.org/1843143002/diff/190001/src/compiler/frame.h#newcode107 src/compiler/frame.h:107: spill_slot_count_ += delta; On 2016/04/16 04:25:10, Mircea Trofin wrote: ...
4 years, 8 months ago (2016-04-16 15:25:44 UTC) #11
Mircea Trofin
On 2016/04/16 15:25:44, Mircea Trofin wrote: > https://codereview.chromium.org/1843143002/diff/190001/src/compiler/frame.h > File src/compiler/frame.h (right): > > https://codereview.chromium.org/1843143002/diff/190001/src/compiler/frame.h#newcode107 ...
4 years, 8 months ago (2016-04-20 05:01:31 UTC) #12
Benedikt Meurer
LGTM.
4 years, 8 months ago (2016-04-20 05:05:10 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1843143002/190001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1843143002/190001
4 years, 8 months ago (2016-04-20 05:13:56 UTC) #15
commit-bot: I haz the power
Committed patchset #10 (id:190001)
4 years, 8 months ago (2016-04-20 05:40:25 UTC) #17
nodir1
4 years, 8 months ago (2016-04-22 18:43:39 UTC) #19
Message was sent while issue was closed.
Patchset 10 (id:??) landed as
https://crrev.com/81a1530e6fb3f4382098f71c01ffe047ffd72afc
Cr-Commit-Position: refs/heads/master@{#35642}

Powered by Google App Engine
This is Rietveld 408576698