Chromium Code Reviews
Help | Chromium Project | Gerrit Changes | Sign in
(2)

Issue 1219943002: Expose SIMD.Float32x4 type to Javascript. (Closed)

Created:
4 years, 3 months ago by bbudge
Modified:
4 years, 3 months ago
CC:
v8-dev, Yang, PaweĊ‚ Hajdan Jr.
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Expose SIMD.Float32x4 type to Javascript. This CL exposes the constructor function, defines type related information, and implements value type semantics. It also refactors test/mjsunit/samevalue.js to test SameValue and SameValueZero. TEST=test/mjsunit/harmony/simd.js, test/cctest/test-simd.cc LOG=Y BUG=v8:4124 Committed: https://crrev.com/e5ed3bee99807c502fa7d7a367ec401e16d3f773 Cr-Commit-Position: refs/heads/master@{#29689} Committed: https://crrev.com/61130584270ebffdfc43c4ab802c6b0b75f1504b Cr-Commit-Position: refs/heads/master@{#29712}

Patch Set 1 #

Total comments: 38

Patch Set 2 : Andreas' review comments #

Total comments: 1

Patch Set 3 : Dan's comments. Rework tests in simd.js. #

Patch Set 4 : Remove SIMD_OBJECT from native context fields. #

Total comments: 4

Patch Set 5 : Rebase. #

Total comments: 2

Patch Set 6 : Don't install SIMD object without the simd flag. #

Total comments: 6

Patch Set 7 : SameValue, SameValueZero, and tests. #

Total comments: 6

Patch Set 8 : Rebase. #

Total comments: 2

Patch Set 9 : samevalue.js tweak. #

Total comments: 2

Patch Set 10 : Andreas' comments, add hashing and set/map tests. #

Patch Set 11 : Rebase. #

Patch Set 12 : Add Object::SameValue and SameValueZero, and test-simd.cc. #

Patch Set 13 : Rebase #

Patch Set 14 : Remove SIMD_OBJECT_TYPE that wasn't deleted. #

Patch Set 15 : Back out changes to include/v8.h #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1149 lines, -131 lines) Patch
M BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +3 lines, -1 line 0 comments Download
M include/v8.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +6 lines, -0 lines 0 comments Download
M src/arm/full-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -0 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +11 lines, -0 lines 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +6 lines, -0 lines 0 comments Download
M src/arm64/full-codegen-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +6 lines, -0 lines 0 comments Download
M src/arm64/lithium-codegen-arm64.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +15 lines, -0 lines 0 comments Download
M src/bootstrapper.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +29 lines, -0 lines 0 comments Download
M src/code-stubs.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -0 lines 0 comments Download
M src/code-stubs.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +8 lines, -4 lines 0 comments Download
M src/code-stubs-hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +20 lines, -12 lines 0 comments Download
M src/contexts.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +2 lines, -0 lines 0 comments Download
M src/flag-definitions.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -1 line 0 comments Download
M src/globals.h View 1 2 3 4 1 chunk +0 lines, -1 line 0 comments Download
A src/harmony-simd.js View 1 1 chunk +89 lines, -0 lines 0 comments Download
M src/heap/heap.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -0 lines 0 comments Download
M src/hydrogen-instructions.cc View 1 2 chunks +4 lines, -1 line 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -0 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +11 lines, -0 lines 0 comments Download
M src/ic/handler-compiler.cc View 1 chunk +2 lines, -0 lines 0 comments Download
M src/ic/ic-inl.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M src/macros.py View 2 chunks +2 lines, -0 lines 0 comments Download
M src/messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
M src/messages.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -0 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +4 lines, -0 lines 0 comments Download
M src/mips/full-codegen-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -0 lines 0 comments Download
M src/mips/lithium-codegen-mips.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +15 lines, -0 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +4 lines, -0 lines 0 comments Download
M src/mips64/full-codegen-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -0 lines 0 comments Download
M src/mips64/lithium-codegen-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +15 lines, -0 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 chunks +2 lines, -2 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 7 8 9 10 11 12 8 chunks +39 lines, -4 lines 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +3 lines, -9 lines 0 comments Download
M src/ppc/code-stubs-ppc.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +6 lines, -0 lines 0 comments Download
M src/ppc/full-codegen-ppc.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -0 lines 0 comments Download
M src/ppc/lithium-codegen-ppc.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +11 lines, -0 lines 0 comments Download
M src/runtime.js View 1 2 3 4 5 6 7 8 9 10 11 chunks +23 lines, -5 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +11 lines, -0 lines 0 comments Download
A src/runtime/runtime-simd.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +129 lines, -0 lines 0 comments Download
M src/type-info.cc View 1 chunk +2 lines, -1 line 0 comments Download
M src/types.cc View 1 1 chunk +3 lines, -0 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M src/x64/full-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -0 lines 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +11 lines, -0 lines 0 comments Download
M src/x87/code-stubs-x87.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +3 lines, -0 lines 0 comments Download
M src/x87/full-codegen-x87.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -0 lines 0 comments Download
M src/x87/lithium-codegen-x87.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +11 lines, -0 lines 0 comments Download
M test/cctest/cctest.gyp View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download
M test/cctest/test-heap.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +33 lines, -22 lines 0 comments Download
M test/cctest/test-heap-profiler.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +17 lines, -0 lines 0 comments Download
A test/cctest/test-simd.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +45 lines, -0 lines 0 comments Download
A test/mjsunit/harmony/simd.js View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +408 lines, -0 lines 0 comments Download
M test/mjsunit/messages.js View 1 2 3 4 2 chunks +6 lines, -1 line 0 comments Download
M test/mjsunit/samevalue.js View 1 2 3 4 5 6 7 8 9 1 chunk +82 lines, -66 lines 0 comments Download
M test/simdjs/harness-adapt.js View 1 chunk +5 lines, -0 lines 0 comments Download
M tools/gyp/v8.gyp View 1 2 3 4 5 6 7 8 9 10 2 chunks +2 lines, -0 lines 0 comments Download

Messages

Total messages: 51 (18 generated)
bbudge
There are a couple of issues still but I think it's ready for a look. ...
4 years, 3 months ago (2015-07-01 00:06:53 UTC) #2
bbudge
On 2015/07/01 00:06:53, bbudge wrote: > There are a couple of issues still but I ...
4 years, 3 months ago (2015-07-01 05:41:18 UTC) #3
rossberg
On 2015/07/01 00:06:53, bbudge wrote: > There are a couple of issues still but I ...
4 years, 3 months ago (2015-07-02 13:35:44 UTC) #4
bbudge
I backed out changes to mirror-debugger.js for another CL. I think I addressed all of ...
4 years, 3 months ago (2015-07-06 23:59:06 UTC) #5
bbudge
On 2015/07/02 13:35:44, rossberg wrote: > On 2015/07/01 00:06:53, bbudge wrote: > > There are ...
4 years, 3 months ago (2015-07-07 00:04:02 UTC) #6
Dan Ehrenberg
https://codereview.chromium.org/1219943002/diff/120001/test/mjsunit/harmony/simd.js File test/mjsunit/harmony/simd.js (right): https://codereview.chromium.org/1219943002/diff/120001/test/mjsunit/harmony/simd.js#newcode201 test/mjsunit/harmony/simd.js:201: assertTrue(SIMD.float32x4(1, 2, 3, 4) == SIMD.float32x4(1, 2, 3, 4)); ...
4 years, 3 months ago (2015-07-07 17:18:59 UTC) #8
rossberg
Bill, can you please re-upload your patch sets such that they are separated from rebases?
4 years, 3 months ago (2015-07-08 11:15:15 UTC) #9
rossberg
https://codereview.chromium.org/1219943002/diff/1/src/code-stubs.h File src/code-stubs.h (right): https://codereview.chromium.org/1219943002/diff/1/src/code-stubs.h#newcode2753 src/code-stubs.h:2753: SIMD_TYPE, On 2015/07/06 23:59:04, bbudge wrote: > On 2015/07/02 ...
4 years, 3 months ago (2015-07-08 11:19:37 UTC) #10
bbudge
I separated out the rebase. Sorry, I didn't realize there was so much churn. I ...
4 years, 3 months ago (2015-07-08 20:51:02 UTC) #20
bbudge
https://codereview.chromium.org/1219943002/diff/170001/test/mjsunit/harmony/simd.js File test/mjsunit/harmony/simd.js (right): https://codereview.chromium.org/1219943002/diff/170001/test/mjsunit/harmony/simd.js#newcode207 test/mjsunit/harmony/simd.js:207: assertFalse(SIMD.float32x4(1, 2, 3, NaN) === SIMD.float32x4(1, 2, 3, NaN)); ...
4 years, 3 months ago (2015-07-08 21:38:42 UTC) #21
Dan Ehrenberg
https://codereview.chromium.org/1219943002/diff/230001/src/bootstrapper.cc File src/bootstrapper.cc (right): https://codereview.chromium.org/1219943002/diff/230001/src/bootstrapper.cc#newcode1317 src/bootstrapper.cc:1317: { Looks like this code runs regardless of --harmony_simd
4 years, 3 months ago (2015-07-09 00:23:18 UTC) #22
Dan Ehrenberg
4 years, 3 months ago (2015-07-09 00:23:20 UTC) #23
bbudge
https://codereview.chromium.org/1219943002/diff/230001/src/bootstrapper.cc File src/bootstrapper.cc (right): https://codereview.chromium.org/1219943002/diff/230001/src/bootstrapper.cc#newcode1317 src/bootstrapper.cc:1317: { On 2015/07/09 00:23:17, Dan Ehrenberg wrote: > Looks ...
4 years, 3 months ago (2015-07-09 01:11:32 UTC) #24
martyn.capewell
https://codereview.chromium.org/1219943002/diff/250001/src/arm64/full-codegen-arm64.cc File src/arm64/full-codegen-arm64.cc (right): https://codereview.chromium.org/1219943002/diff/250001/src/arm64/full-codegen-arm64.cc#newcode4894 src/arm64/full-codegen-arm64.cc:4894: ASM_LOCATION("FullCodeGenerator::EmitLiteralCompareTypeof symbol_string"); DBC: s/symbol_string/float32x4_string/
4 years, 3 months ago (2015-07-09 10:48:08 UTC) #26
rossberg
Looking almost good. Sorry I overlooked the missing SameValue[Zero] adaptation earlier. https://codereview.chromium.org/1219943002/diff/210001/test/mjsunit/harmony/reflect-apply.js File test/mjsunit/harmony/reflect-apply.js (right): ...
4 years, 3 months ago (2015-07-10 11:38:20 UTC) #27
bbudge
https://codereview.chromium.org/1219943002/diff/210001/test/mjsunit/object-toprimitive.js File test/mjsunit/object-toprimitive.js (right): https://codereview.chromium.org/1219943002/diff/210001/test/mjsunit/object-toprimitive.js#newcode28 test/mjsunit/object-toprimitive.js:28: // Flags: --harmony-simd On 2015/07/10 11:38:20, rossberg wrote: > ...
4 years, 3 months ago (2015-07-10 13:21:17 UTC) #28
rossberg
https://codereview.chromium.org/1219943002/diff/210001/test/mjsunit/object-toprimitive.js File test/mjsunit/object-toprimitive.js (right): https://codereview.chromium.org/1219943002/diff/210001/test/mjsunit/object-toprimitive.js#newcode28 test/mjsunit/object-toprimitive.js:28: // Flags: --harmony-simd On 2015/07/10 13:21:17, bbudge wrote: > ...
4 years, 3 months ago (2015-07-10 13:25:45 UTC) #29
bbudge
Andreas, I noticed that tests/mjsunit/samevalue.js does not test SameValueZero, so I modified the tests. It ...
4 years, 3 months ago (2015-07-10 19:14:30 UTC) #32
Dan Ehrenberg
These new tests make a good addition https://codereview.chromium.org/1219943002/diff/330001/test/mjsunit/samevalue.js File test/mjsunit/samevalue.js (right): https://codereview.chromium.org/1219943002/diff/330001/test/mjsunit/samevalue.js#newcode36 test/mjsunit/samevalue.js:36: var sameValueZero ...
4 years, 3 months ago (2015-07-10 20:59:22 UTC) #33
bbudge
https://codereview.chromium.org/1219943002/diff/330001/test/mjsunit/samevalue.js File test/mjsunit/samevalue.js (right): https://codereview.chromium.org/1219943002/diff/330001/test/mjsunit/samevalue.js#newcode36 test/mjsunit/samevalue.js:36: var sameValueZero = natives.$sameValueZero; On 2015/07/10 20:59:22, Dan Ehrenberg ...
4 years, 3 months ago (2015-07-10 21:40:48 UTC) #34
Dan Ehrenberg
On 2015/07/10 21:40:48, bbudge wrote: > https://codereview.chromium.org/1219943002/diff/330001/test/mjsunit/samevalue.js > File test/mjsunit/samevalue.js (right): > > https://codereview.chromium.org/1219943002/diff/330001/test/mjsunit/samevalue.js#newcode36 > ...
4 years, 3 months ago (2015-07-10 23:32:44 UTC) #35
Dan Ehrenberg
On 2015/07/10 21:40:48, bbudge wrote: > https://codereview.chromium.org/1219943002/diff/330001/test/mjsunit/samevalue.js > File test/mjsunit/samevalue.js (right): > > https://codereview.chromium.org/1219943002/diff/330001/test/mjsunit/samevalue.js#newcode36 > ...
4 years, 3 months ago (2015-07-10 23:32:47 UTC) #36
rossberg
Thanks for adding the sameValueZero tests, was missing indeed. Almost there. My only other request ...
4 years, 3 months ago (2015-07-13 11:13:23 UTC) #37
bbudge
Moved SIMD tests out of es5 tests (samevalue.js, object-toprimitive.js) and into the simd.js test file. ...
4 years, 3 months ago (2015-07-13 23:10:39 UTC) #38
rossberg
LGTM, just one nit: > Left Simd tests in reflect-apply.js, since it's also in tests/harmony. ...
4 years, 3 months ago (2015-07-14 06:43:47 UTC) #39
bbudge
I moved the SIMD reflect-apply tests to simd.js. I agree it's better to keep these ...
4 years, 3 months ago (2015-07-15 18:32:17 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1219943002/450001
4 years, 3 months ago (2015-07-15 19:14:38 UTC) #43
commit-bot: I haz the power
Committed patchset #14 (id:450001)
4 years, 3 months ago (2015-07-15 19:17:00 UTC) #44
commit-bot: I haz the power
Patchset 14 (id:??) landed as https://crrev.com/e5ed3bee99807c502fa7d7a367ec401e16d3f773 Cr-Commit-Position: refs/heads/master@{#29689}
4 years, 3 months ago (2015-07-15 19:17:19 UTC) #45
Michael Hablich
A revert of this CL (patchset #14 id:450001) has been created in https://codereview.chromium.org/1241533004/ by hablich@chromium.org. ...
4 years, 3 months ago (2015-07-16 12:35:17 UTC) #46
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1219943002/470001
4 years, 3 months ago (2015-07-16 17:28:07 UTC) #49
commit-bot: I haz the power
Committed patchset #15 (id:470001)
4 years, 3 months ago (2015-07-16 19:43:28 UTC) #50
commit-bot: I haz the power
4 years, 3 months ago (2015-07-16 19:43:43 UTC) #51
Message was sent while issue was closed.
Patchset 15 (id:??) landed as
https://crrev.com/61130584270ebffdfc43c4ab802c6b0b75f1504b
Cr-Commit-Position: refs/heads/master@{#29712}

Powered by Google App Engine
This is Rietveld 408576698