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

Issue 179773002: [x64] Improve key value sign-extension of dehoisted LoadKeyed/StoreKeyed (Closed)

Created:
6 years, 10 months ago by Weiliang
Modified:
6 years, 8 months ago
Reviewers:
danno
CC:
v8-dev
Base URL:
git://github.com/v8/v8.git@master
Visibility:
Public.

Description

[x64] Improve key value sign-extension of dehoisted LoadKeyed/StoreKeyed Instead of sign-extending at key use, definitions that can be used as keys are sign extended immediately after the definition.

Patch Set 1 #

Patch Set 2 : new impl based on comments #

Patch Set 3 : some refine #

Total comments: 1

Patch Set 4 : #

Total comments: 10

Patch Set 5 : address comments and add testcase #

Total comments: 2

Patch Set 6 : support result in the stack slot #

Total comments: 3

Patch Set 7 : rebase #

Patch Set 8 : refine comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+246 lines, -86 lines) Patch
M src/x64/lithium-codegen-x64.h View 1 2 3 4 5 6 2 chunks +2 lines, -0 lines 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 2 3 4 5 6 7 8 chunks +22 lines, -81 lines 0 comments Download
M src/x64/lithium-gap-resolver-x64.cc View 1 2 3 4 5 6 7 2 chunks +9 lines, -3 lines 0 comments Download
M src/x64/lithium-x64.h View 1 2 3 4 5 6 4 chunks +17 lines, -1 line 0 comments Download
M src/x64/lithium-x64.cc View 1 2 3 4 5 6 4 chunks +33 lines, -1 line 0 comments Download
A test/mjsunit/dehoisted-array-index.js View 1 2 3 4 1 chunk +163 lines, -0 lines 0 comments Download

Messages

Total messages: 12 (0 generated)
danno
Your idea is going in the right direction, but I think it's possible to make ...
6 years, 10 months ago (2014-02-25 14:20:13 UTC) #1
Weiliang
On 2014/02/25 14:20:13, danno wrote: > Your idea is going in the right direction, but ...
6 years, 9 months ago (2014-03-04 13:25:11 UTC) #2
danno
https://codereview.chromium.org/179773002/diff/30001/src/x64/lithium-x64.cc File src/x64/lithium-x64.cc (right): https://codereview.chromium.org/179773002/diff/30001/src/x64/lithium-x64.cc#newcode202 src/x64/lithium-x64.cc:202: if (array_operation->IsDehoisted()) { This doesn't work completely, if you ...
6 years, 9 months ago (2014-03-12 14:26:07 UTC) #3
Weiliang
On 2014/03/12 14:26:07, danno wrote: > https://codereview.chromium.org/179773002/diff/30001/src/x64/lithium-x64.cc > File src/x64/lithium-x64.cc (right): > > https://codereview.chromium.org/179773002/diff/30001/src/x64/lithium-x64.cc#newcode202 > ...
6 years, 9 months ago (2014-03-13 13:28:28 UTC) #4
danno
Getting closer.... Can you please verify (e.g. test cases) that this works also for special ...
6 years, 9 months ago (2014-03-18 08:20:19 UTC) #5
danno
https://codereview.chromium.org/179773002/diff/70001/src/x64/lithium-codegen-x64.cc File src/x64/lithium-codegen-x64.cc (right): https://codereview.chromium.org/179773002/diff/70001/src/x64/lithium-codegen-x64.cc#newcode278 src/x64/lithium-codegen-x64.cc:278: Register result_reg = ToRegister(instr->result()); I think this might be ...
6 years, 9 months ago (2014-03-18 08:21:31 UTC) #6
Weiliang
Hi Danno, Thanks a lot~ I constructed some test cases to check various usage scenarios. ...
6 years, 9 months ago (2014-03-19 08:55:30 UTC) #7
danno
Almost there, but I think there is one more issue https://codereview.chromium.org/179773002/diff/90001/src/x64/lithium-codegen-x64.cc File src/x64/lithium-codegen-x64.cc (right): https://codereview.chromium.org/179773002/diff/90001/src/x64/lithium-codegen-x64.cc#newcode279 ...
6 years, 9 months ago (2014-03-19 09:16:43 UTC) #8
Weiliang
Hi Danno, Yes, the result may be not in the register. I add the support ...
6 years, 9 months ago (2014-03-19 11:41:04 UTC) #9
danno
https://codereview.chromium.org/179773002/diff/110001/src/x64/lithium-gap-resolver-x64.cc File src/x64/lithium-gap-resolver-x64.cc (right): https://codereview.chromium.org/179773002/diff/110001/src/x64/lithium-gap-resolver-x64.cc#newcode223 src/x64/lithium-gap-resolver-x64.cc:223: if (cgen_->IsSmiConstant(constant_source)) { Just like you added stack slot ...
6 years, 9 months ago (2014-03-21 12:36:35 UTC) #10
Weiliang
Thanks a lot for the comments.Please see the new patch. https://codereview.chromium.org/179773002/diff/110001/src/x64/lithium-gap-resolver-x64.cc File src/x64/lithium-gap-resolver-x64.cc (right): https://codereview.chromium.org/179773002/diff/110001/src/x64/lithium-gap-resolver-x64.cc#newcode223 ...
6 years, 9 months ago (2014-03-23 12:15:42 UTC) #11
danno
6 years, 9 months ago (2014-03-26 15:32:08 UTC) #12
LGTM, I'll land this for you.

Powered by Google App Engine
This is Rietveld 408576698