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

Issue 1634093002: [turbofan] fine grained in-block move optimization (Closed)

Created:
4 years, 10 months ago by Mircea Trofin
Modified:
4 years, 10 months ago
Reviewers:
Benedikt Meurer, Jarin
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] fine grained in-block move optimization So far, we've been moving down gaps wholesale. This change moves individual move operations instead. This improves some benchmarks, and should overall reduce code size, because it improves the chance of reducing the number of moves. For example, there are improvements on x64 in Emscripten (Bullet, in particular) , JetStream geomean, Embenchen (zlib). In the process of making this change, I noticed we can separate the tasks performed by the move optimizer, as follows: - group gaps into 1 - push gaps down, jumping instructions (these 2 were together before) - merge blocks (and then push gaps down) - finalize We can do without a finalization list. This avoids duplicating storage - we already have the list of instructions; it also simplifies the logic, since, with this change, we may process an instruction's gap twice. Compile time doesn't regress much (see pathological cases), but we may want to avoid the allocations of the few sets used in the new code. I'll do that in a subsequent change. BUG= Committed: https://crrev.com/1ecf58f409668ccd805fca2eef5f2350071ee49b Cr-Commit-Position: refs/heads/master@{#33715}

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Patch Set 7 : #

Patch Set 8 : #

Patch Set 9 : temp #

Patch Set 10 : temp #

Patch Set 11 : temp #

Patch Set 12 : temp #

Patch Set 13 : temp #

Total comments: 12

Patch Set 14 : rebase #

Patch Set 15 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+248 lines, -103 lines) Patch
M src/compiler/instruction.h View 1 2 4 1 chunk +8 lines, -2 lines 0 comments Download
M src/compiler/move-optimizer.h View 1 2 3 4 5 6 7 8 9 1 chunk +18 lines, -3 lines 0 comments Download
M src/compiler/move-optimizer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 8 chunks +179 lines, -95 lines 0 comments Download
M src/compiler/register-allocator.cc View 13 1 chunk +24 lines, -1 line 0 comments Download
M test/unittests/compiler/move-optimizer-unittest.cc View 1 2 3 4 5 6 3 chunks +19 lines, -2 lines 0 comments Download

Messages

Total messages: 17 (9 generated)
Mircea Trofin
Let me know if you'd prefer me making this smaller first.
4 years, 10 months ago (2016-01-28 03:24:44 UTC) #3
Jarin
https://codereview.chromium.org/1634093002/diff/240001/src/compiler/move-optimizer.cc File src/compiler/move-optimizer.cc (right): https://codereview.chromium.org/1634093002/diff/240001/src/compiler/move-optimizer.cc#newcode124 src/compiler/move-optimizer.cc:124: // ret makes any assignment before it unnecessary, except ...
4 years, 10 months ago (2016-02-03 05:25:18 UTC) #4
Jarin
One more thing: could you write down the motivation for this change? Does it improve ...
4 years, 10 months ago (2016-02-03 05:28:29 UTC) #5
Mircea Trofin
https://codereview.chromium.org/1634093002/diff/240001/src/compiler/move-optimizer.cc File src/compiler/move-optimizer.cc (right): https://codereview.chromium.org/1634093002/diff/240001/src/compiler/move-optimizer.cc#newcode124 src/compiler/move-optimizer.cc:124: // ret makes any assignment before it unnecessary, except ...
4 years, 10 months ago (2016-02-04 05:23:32 UTC) #7
Jarin
lgtm. Thanks for clarifying the comments. Could you add a line to the description that ...
4 years, 10 months ago (2016-02-04 05:33:39 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1634093002/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1634093002/280001
4 years, 10 months ago (2016-02-04 05:43:28 UTC) #12
commit-bot: I haz the power
Committed patchset #15 (id:280001)
4 years, 10 months ago (2016-02-04 06:30:01 UTC) #15
commit-bot: I haz the power
4 years, 10 months ago (2016-02-04 06:30:45 UTC) #17
Message was sent while issue was closed.
Patchset 15 (id:??) landed as
https://crrev.com/1ecf58f409668ccd805fca2eef5f2350071ee49b
Cr-Commit-Position: refs/heads/master@{#33715}

Powered by Google App Engine
This is Rietveld 408576698