Skip to content
This repository has been archived by the owner on Apr 3, 2020. It is now read-only.

Rebase SIMD.js patches to M40 #70

Merged
merged 4 commits into from
Dec 22, 2014
Merged

Conversation

huningxin
Copy link
Contributor

BUG=XWALK-3210

fenghaitao and others added 3 commits December 17, 2014 09:52
Add the Float32x4, Float64x2, Int32x4, Float32x4Array, Float64x2Array
and Int32x4Array data types.
Add the SIMD operations on the Float32x4, Float64x2 and Int32x4 with
C++ runtime functions and implement Float32x4Array, Float64x2Array and
Int32x4Array element loading and storing.

Float32x4, Float64x2 and Int32x4 are implemented as JSObject.
These objects contain a "value" pointer pointing to a corresponding
FixedTypedArray which is the real data storage.

Conflicts:

	include/v8.h
	src/bootstrapper.cc
	src/compiler/access-builder.cc
	src/heap/heap.h
	src/heap/mark-compact.cc
	src/objects-printer.cc
	src/runtime.cc
	src/runtime.h
The implementation is only for ia32 and x64 ports.

Optimize Float32x4Array, Float64x2Array and Int32x4Array element loading
and storing for ia32 and x64 port by:
  1). Allocating SIMD128 registers
  2). Emitting SIMD movups instruction
  3). Adding deoptimization support for SIMD128 registers or stack slots

Inline all SIMD operations and emit SIMD instructions for ia32 and x64 port

Conflicts:

	src/hydrogen-types.cc
	src/hydrogen-types.h
	src/hydrogen.cc
	src/ia32/assembler-ia32.cc
	src/ia32/assembler-ia32.h
	src/x64/assembler-x64.cc
	src/x64/disasm-x64.cc
	test/fuzz-natives/testcfg.py
@crosswalk-trybot
Copy link

Testing patch series with huningxin/v8-crosswalk@9ba1ebe as its head.

Bot Status
V8 Linux ia32 [FAILED 💔](https://build.crosswalk-project.org/try/builders/V8 Linux ia32/builds/67)
V8 Linux ARM [FAILED 💔](https://build.crosswalk-project.org/try/builders/V8 Linux ARM/builds/64)
V8 Linux x64 [FAILED 💔](https://build.crosswalk-project.org/try/builders/V8 Linux x64/builds/66)

@huningxin
Copy link
Contributor Author

@rakuco , it seems bots have some issues. Could you please take a look? Thanks.

It allows developers to load or store 1, 2, 3, and 4 elements of SIMD128
data from or to variable typed arrays.

The APIs inlucde:
SIMD.float32x4.load
SIMD.float32x4.loadX
SIMD.float32x4.loadXY
SIMD.float32x4.loadXYZ
SIMD.float32x4.store
SIMD.float32x4.storeX
SIMD.float32x4.storeXY
SIMD.float32x4.storeXYZ
SIMD.float64x2.load
SIMD.float64x2.loadX
SIMD.float64x2.store
SIMD.float64x2.storeX
SIMD.int32x4.load
SIMD.int32x4.loadX
SIMD.int32x4.loadXY
SIMD.int32x4.loadXYZ
SIMD.int32x4.store
SIMD.int32x4.storeX
SIMD.int32x4.storeXY
SIMD.int32x4.storeXYZ

This commit only optimizes accessing float32x4 in Float32Array and Int8Array,
accessing int32x4 in Int32Array and Int8Array as well as accessing float64x2
in Float64Array and Int8Array.

TODO=optimize for x64
TEST=mjsunit/simd/loadstore
BUG=XWALK-2865

Conflicts:
	src/hydrogen-instructions.h
	src/hydrogen.cc
	src/runtime.cc
	src/runtime/runtime.h
@darktears
Copy link

I think you can try again.

@crosswalk-trybot
Copy link

Testing patch series with huningxin/v8-crosswalk@d477fe0 as its head.

Bot Status
V8 Linux x64 [FAILED 💔](https://build.crosswalk-project.org/try/builders/V8 Linux x64/builds/70)
V8 Linux ia32 [FAILED 💔](https://build.crosswalk-project.org/try/builders/V8 Linux ia32/builds/71)
V8 Linux ARM [FAILED 💔](https://build.crosswalk-project.org/try/builders/V8 Linux ARM/builds/68)

@huningxin
Copy link
Contributor Author

Trigger the bots.

@crosswalk-trybot
Copy link

Testing patch series with huningxin/v8-crosswalk@0686565 as its head.

Bot Status
V8 Linux x64 [SUCCESS 💚](https://build.crosswalk-project.org/try/builders/V8 Linux x64/builds/71)
V8 Linux ia32 [SUCCESS 💚](https://build.crosswalk-project.org/try/builders/V8 Linux ia32/builds/72)
V8 Linux ARM [SUCCESS 💚](https://build.crosswalk-project.org/try/builders/V8 Linux ARM/builds/69)

@huningxin
Copy link
Contributor Author

Fixed the coding style issue and trigger the bots.

@huningxin
Copy link
Contributor Author

@fujunwei, please take a look. Thanks!

@crosswalk-trybot
Copy link

Testing patch series with huningxin/v8-crosswalk@94010fa as its head.

Bot Status
V8 Linux x64 [SUCCESS 💚](https://build.crosswalk-project.org/try/builders/V8 Linux x64/builds/72)
V8 Linux ia32 [SUCCESS 💚](https://build.crosswalk-project.org/try/builders/V8 Linux ia32/builds/73)
V8 Linux ARM [SUCCESS 💚](https://build.crosswalk-project.org/try/builders/V8 Linux ARM/builds/70)

@fujunwei
Copy link

LGTM. Thanks.

@huningxin
Copy link
Contributor Author

@rakuco , are you OK to merge it?

@rakuco
Copy link
Member

rakuco commented Dec 22, 2014

Yup!

rakuco added a commit that referenced this pull request Dec 22, 2014
Rebase SIMD.js patches to M40
@rakuco rakuco merged commit 11bb7b4 into crosswalk-project:master Dec 22, 2014
@huningxin
Copy link
Contributor Author

Thanks for the review and merging. I will roll the v8.

mrunalk pushed a commit that referenced this pull request Jun 11, 2016
Merged 997682f

[heap] Properly deal with OOM during committing of pooled pages

BUG=chromium:610603
LOG=N
R=hablich@chromium.org

Review URL: https://codereview.chromium.org/2030183002 .

Cr-Commit-Position: refs/branch-heads/5.1@{#70}
Cr-Branched-From: 167dc63-refs/heads/5.1.281@{#1}
Cr-Branched-From: 03953f5-refs/heads/master@{#35282}
rakuco pushed a commit that referenced this pull request Sep 21, 2016
Cr-Commit-Position: refs/branch-heads/5.3@{#70}
Cr-Branched-From: 820a23a-refs/heads/5.3.332@{#2}
Cr-Branched-From: 37538cb-refs/heads/master@{#37308}
rakuco pushed a commit that referenced this pull request Oct 21, 2016
Cr-Commit-Position: refs/branch-heads/5.4@{#70}
Cr-Branched-From: 5ce2827-refs/heads/5.4.500@{#2}
Cr-Branched-From: ad07b49-refs/heads/master@{#38841}
imreotto pushed a commit to tenta-browser/v8-crosswalk that referenced this pull request Sep 4, 2017
Cr-Commit-Position: refs/branch-heads/5.9@{crosswalk-project#70}
Cr-Branched-From: fe9bb7e-refs/heads/5.9.211@{crosswalk-project#1}
Cr-Branched-From: 70ad237-refs/heads/master@{#44591}
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants