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

Issue 2583043004: [turbofan] Do not set node's mark to min on get (Closed)

Created:
4 years ago by Leszek Swirski
Modified:
4 years ago
Reviewers:
Benedikt Meurer, Jarin
CC:
v8-reviews_googlegroups.com
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[turbofan] Do not set node's mark to min on get This simplifies the mark getter enough to generate a branch-free check on many architectures (e.g. using cmov on x64 or csel on ARM). As a drive-by, we can now make the mark access const. Review-Url: https://codereview.chromium.org/2583043004 Cr-Commit-Position: refs/heads/master@{#41833} Committed: https://chromium.googlesource.com/v8/v8/+/0a5bffe24d18bbad321c56e9125325b6b7589d50

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+7 lines, -8 lines) Patch
M src/compiler/node.h View 1 chunk +1 line, -1 line 0 comments Download
M src/compiler/node-marker.h View 3 chunks +6 lines, -7 lines 0 comments Download

Messages

Total messages: 13 (8 generated)
Leszek Swirski
Hi Benedikt/Jaro, I was seeing a lot of branch mispredictions (25%) on NodeMarkerBase::Get, and this ...
4 years ago (2016-12-19 17:47:44 UTC) #4
Benedikt Meurer
Nice catch! LGTM. But I doubt that using cmov would be beneficial here, as cmov ...
4 years ago (2016-12-19 17:51:20 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/2583043004/1
4 years ago (2016-12-20 08:51:17 UTC) #9
commit-bot: I haz the power
Committed patchset #1 (id:1) as https://chromium.googlesource.com/v8/v8/+/0a5bffe24d18bbad321c56e9125325b6b7589d50
4 years ago (2016-12-20 08:53:02 UTC) #12
Leszek Swirski
4 years ago (2016-12-20 08:55:11 UTC) #13
Message was sent while issue was closed.
On 2016/12/19 17:51:20, Benedikt Meurer wrote:
> Nice catch! LGTM.
> 
> But I doubt that using cmov would be beneficial here, as cmov has a terrible
> latency.

Well, profiling shows a benefit, but I couldn't tell you if it's because of jmp
vs cmov, branch misprediction, smaller code/icache, or something I've completely
not thought of. Regardless, giving the compiler more chances to optimize never
hurts.

Powered by Google App Engine
This is Rietveld 408576698