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

Issue 2135123002: [turbofan] Eliminate a few redundant bounds checks. (Closed)

Created:
4 years, 5 months ago by Benedikt Meurer
Modified:
4 years, 5 months ago
Reviewers:
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] Eliminate a few redundant bounds checks. Usually loops run from 0 to some array length l, which means the induction variable i will probably have type Unsigned32, just like the length l. The CheckBounds operation lowers to an Uint32LessThan comparison, so if we also lower the user level i < l comparison to Uint32LessThan (whenever possible), we get some bounds check elimination for free (via value numbering plus branch condition elimination). This merges the branch condition elimination phase with the late optimization phase to make this magic happen. R=jarin@chromium.org BUG=v8:4930, v8:5141 Committed: https://crrev.com/4f97632880d38a0e1b29f4ce4b468457fc2d82f3 Cr-Commit-Position: refs/heads/master@{#37629}

Patch Set 1 #

Patch Set 2 : Fix BranchElimination to play well with the other reducers. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+23 lines, -41 lines) Patch
M src/compiler/branch-elimination.cc View 1 4 chunks +5 lines, -7 lines 0 comments Download
M src/compiler/pipeline.cc View 4 chunks +3 lines, -19 lines 0 comments Download
M src/compiler/simplified-lowering.cc View 2 chunks +15 lines, -15 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 17 (8 generated)
Benedikt Meurer
4 years, 5 months ago (2016-07-11 07:38:08 UTC) #1
Benedikt Meurer
Hey Jaro, Here's the rearrangement for some free bounds check elimination. Please take a look. ...
4 years, 5 months ago (2016-07-11 07:39:03 UTC) #4
Jarin
lgtm
4 years, 5 months ago (2016-07-11 07:40:03 UTC) #5
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2135123002/1
4 years, 5 months ago (2016-07-11 07:40:53 UTC) #8
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux64_avx2_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel_ng/builds/4686) v8_linux64_avx2_rel_ng_triggered on master.tryserver.v8 (JOB_FAILED, ...
4 years, 5 months ago (2016-07-11 07:56:02 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2135123002/20001
4 years, 5 months ago (2016-07-11 08:15:19 UTC) #13
commit-bot: I haz the power
Committed patchset #2 (id:20001)
4 years, 5 months ago (2016-07-11 08:40:22 UTC) #14
commit-bot: I haz the power
CQ bit was unchecked.
4 years, 5 months ago (2016-07-11 08:40:24 UTC) #15
commit-bot: I haz the power
4 years, 5 months ago (2016-07-11 08:41:11 UTC) #17
Message was sent while issue was closed.
Patchset 2 (id:??) landed as
https://crrev.com/4f97632880d38a0e1b29f4ce4b468457fc2d82f3
Cr-Commit-Position: refs/heads/master@{#37629}

Powered by Google App Engine
This is Rietveld 408576698