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

Issue 1412573009: [turbofan] reduce ResolveControlFlow overhead. (Closed)

Created:
5 years, 1 month ago by Mircea Trofin
Modified:
5 years, 1 month 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] reduce ResolveControlFlow overhead. I found this optimization opportunity when analyzing some pathological compile-time examples. When tying together live ranges across control flow boundaries, we used to repeatedly check if the top level range was spilled in deferred blocks or not. This proved to be a hotspot in such cases (i.e. the pathological compile time ones). Because the analysis needs to progress block by block and not live range by live range, we cannot feasibly save per-range information to remove the hotspot. Instead, we save this information when constructing LiveRangeBounds. The result is 2.5 to 7% improvement in the pathological cases, and a few similar bonuses in perf in a couple of other benchmarks. Also, opportunistically removed the loop counting the number of child ranges, since we have that count from the new (post - refactoring) range numbering technique. BUG= Committed: https://crrev.com/0bcfb26e7c45664ed94b1139eeb3f580725929fd Cr-Commit-Position: refs/heads/master@{#32071}

Patch Set 1 : #

Total comments: 4

Patch Set 2 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+36 lines, -24 lines) Patch
M src/compiler/register-allocator.h View 1 chunk +2 lines, -0 lines 0 comments Download
M src/compiler/register-allocator.cc View 1 5 chunks +34 lines, -24 lines 0 comments Download

Messages

Total messages: 13 (6 generated)
Mircea Trofin
5 years, 1 month ago (2015-11-17 05:15:43 UTC) #6
Jarin
https://codereview.chromium.org/1412573009/diff/60001/src/compiler/register-allocator.cc File src/compiler/register-allocator.cc (right): https://codereview.chromium.org/1412573009/diff/60001/src/compiler/register-allocator.cc#newcode3215 src/compiler/register-allocator.cc:3215: new (curr) LiveRangeBound(i, !spilled_in_blocks && i->spilled()); Could you add ...
5 years, 1 month ago (2015-11-17 14:53:12 UTC) #7
Mircea Trofin
https://codereview.chromium.org/1412573009/diff/60001/src/compiler/register-allocator.cc File src/compiler/register-allocator.cc (right): https://codereview.chromium.org/1412573009/diff/60001/src/compiler/register-allocator.cc#newcode3215 src/compiler/register-allocator.cc:3215: new (curr) LiveRangeBound(i, !spilled_in_blocks && i->spilled()); On 2015/11/17 14:53:12, ...
5 years, 1 month ago (2015-11-17 16:57:05 UTC) #8
Jarin
lgtm. thanks!
5 years, 1 month ago (2015-11-18 06:26:37 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1412573009/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1412573009/80001
5 years, 1 month ago (2015-11-18 06:27:02 UTC) #11
commit-bot: I haz the power
Committed patchset #2 (id:80001)
5 years, 1 month ago (2015-11-18 06:47:52 UTC) #12
commit-bot: I haz the power
5 years, 1 month ago (2015-11-18 06:48:16 UTC) #13
Message was sent while issue was closed.
Patchset 2 (id:??) landed as
https://crrev.com/0bcfb26e7c45664ed94b1139eeb3f580725929fd
Cr-Commit-Position: refs/heads/master@{#32071}

Powered by Google App Engine
This is Rietveld 408576698