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 M37 #44

Merged
merged 5 commits into from
Jul 31, 2014

Conversation

huningxin
Copy link
Contributor

Implement the SIMD types as JSObject.

@crosswalk-trybot
Copy link

Testing patch series with bf9935b as its head.

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

@huningxin
Copy link
Contributor Author

@rakuco , could you please look at the coding style check in bots? I didn't experience it locally. And it says "src/runtime.h" not found is wired. Since this patch doesn't remove runtime.h. It should be there. Thanks in advance.

fenghaitao and others added 2 commits July 25, 2014 19:39
and Int32x4Array data types, implement the SIMD operations on the
Float32x4, Float64x2 and Int32x4 with C++ runtime functions and implement
Float32x4Array, Float64x2Array and Int32x4Array element loading and storing.

Conflicts:
	include/v8.h
	src/arm/assembler-arm.h
	src/hydrogen-instructions.cc
	src/ia32/assembler-ia32.h
	src/ia32/lithium-codegen-ia32.cc
	src/types.cc
	src/types.h
	src/x64/assembler-x64.h
	src/x64/lithium-codegen-x64.cc
	src/x64/lithium-x64.cc
	src/x64/lithium-x64.h
These objects contains a "value" pointer pointing to a corresponding
FixedTypedArray which is the real data storage.
@crosswalk-trybot
Copy link

Testing patch series with 3c70675 as its head.

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

@huningxin
Copy link
Contributor Author

Update the PR to implement the new SIMD128 JSObject layout.
Each SIMD128 JSObject contains a Object pointer ("value") pointing to a FixedTypedArray as data storage. It is GC friendly.
In optimized code, it introduces an additional memory read to load the FixedTypedArray object for SIMD128 objects boxing and unboxing.
It passes all tests (existing and new simd) for me.
The major remaining TODO is to implement the inline SIMD128 object creation. Otherwise, two simd128 benchmarks (AOBench and Sine) has significant performance regression.

@huningxin
Copy link
Contributor Author

Again, the coding style failure is wired. All three ports passed tests locally.

fenghaitao and others added 3 commits July 28, 2014 01:52
The implementation is 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-instructions.cc
	src/hydrogen-instructions.h
	src/ia32/assembler-ia32.h
	src/ia32/deoptimizer-ia32.cc
	src/ia32/lithium-codegen-ia32.cc
	src/ia32/lithium-codegen-ia32.h
	src/ia32/macro-assembler-ia32.cc
	src/x64/assembler-x64.h
	src/x64/lithium-codegen-x64.cc
	src/x64/lithium-x64.h
	src/hydrogen-instructions.cc
	src/hydrogen-instructions.h
	src/hydrogen.cc
	src/ia32/lithium-ia32.cc
	src/x64/lithium-x64.cc
	test/cctest/test-disasm-ia32.cc
- Fix the runtime function test auto generation.
- Fix the coding style issues.

TODO(ningxin): squash into patch 1
Implement the simd128-tag inlining for the new JSObject-based
SIMD128 types' layout.

TODO(ningxin): squash into patch-2
@rakuco
Copy link
Member

rakuco commented Jul 28, 2014

Ping @fenghaitao. I'll try to fix the style checker.

@rakuco
Copy link
Member

rakuco commented Jul 28, 2014

I think I've fixed the style checker -- instead of running the presubmit tests as the "check coding style" step, I'm now running them properly as actual tests.

Please submit your patch again, I think there were some failures already present in the tree without your patch that were caught by those new tests.

@crosswalk-trybot
Copy link

Testing patch series with 97783aa as its head.

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

@crosswalk-trybot
Copy link

Testing patch series with d66d271 as its head.

Bot Status
V8 Linux ARM [SUCCESS 💚](https://build.crosswalk-project.org/try/builders/V8 Linux ARM/builds/16)
V8 Linux x64 [FAILED 💔](https://build.crosswalk-project.org/try/builders/V8 Linux x64/builds/18)
V8 Linux ia32 [SUCCESS 💚](https://build.crosswalk-project.org/try/builders/V8 Linux ia32/builds/19)

@huningxin
Copy link
Contributor Author

The x64 failure passes on my local test. I am going to trigger the bots once more.

@crosswalk-trybot
Copy link

Testing patch series with af33544 as its head.

Bot Status
V8 Linux ARM [FAILED 💔](https://build.crosswalk-project.org/try/builders/V8 Linux ARM/builds/17)
V8 Linux x64 [SUCCESS 💚](https://build.crosswalk-project.org/try/builders/V8 Linux x64/builds/19)
V8 Linux ia32 [SUCCESS 💚](https://build.crosswalk-project.org/try/builders/V8 Linux ia32/builds/20)

@huningxin
Copy link
Contributor Author

Bots give different results without any code change...

@rakuco
Copy link
Member

rakuco commented Jul 28, 2014

This is something I couldn't understand so far either -- when we moved to M37's V8 I had to remove the build directory in build.crosswalk-project.org (not the tryslaves here) to get Check to stop crashing in x64. I did the same thing today with the tryslaves and Check still fails. Any insights here would be appreciated.

@huningxin
Copy link
Contributor Author

I didn't meet any x64 Check failure issues on my local build for M37. @fenghaitao @weilianglin , do you have any ideas?

@huningxin
Copy link
Contributor Author

Is it related to VM configuration? I remember previously we have one issue only in VM but not in real machines.

@crosswalk-trybot
Copy link

Testing patch series with 0fe7e99 as its head.

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

@huningxin
Copy link
Contributor Author

I've added a commit to implement the inlining of simd128-tag. It improve the performance of all benchmarks especially for AOBench and Sine.

With this, there are no significant performance regressions comparing to M36. (Actually, it has some performance regression since the new implementation employs more complex object layout.)

@rakuco
Copy link
Member

rakuco commented Jul 29, 2014

The bots finally decided to cooperate :-)

I just need @fenghaitao or anyone else with any V8 expertise to lgtm this to merge.

@fenghaitao
Copy link
Contributor

LGTM

@huningxin
Copy link
Contributor Author

Thanks for the review!

rakuco added a commit that referenced this pull request Jul 31, 2014
Rebase SIMD.JS patches to M37
@rakuco rakuco merged commit 402ca0b into crosswalk-project:master Jul 31, 2014
mrunalk pushed a commit that referenced this pull request Apr 29, 2016
This is essentially a cherry-pick that was applied before plus the
removal of a test that is now failing because it depends on more
involved changes. The test case checks comparison of different
undetectable JSReceivers, which is not relevant in practice, as there's
only one of these at most, which is document.all.

Merged 55b4df7
Merged d00da47
Merged 4da2e3d
Merged c1507e1

[runtime] Unify comparison operator runtime entries.

[turbofan] Don't use the CompareIC in JSGenericLowering.

PPC: [runtime] Unify comparison operator runtime entries.

PPC: [turbofan] Don't use the CompareIC in JSGenericLowering.

R=yangguo@chromium.org
BUG=chromium:590832,v8:4788,chromium:606181
LOG=N
NOTRY=true
NOPRESUBMIT=true

Cr-Commit-Position: refs/branch-heads/5.0@{#13}
Cr-Branched-From: ad16e6c-refs/heads/5.0.71@{#1}
Cr-Branched-From: bd9df50-refs/heads/master@{#34215}

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

Cr-Commit-Position: refs/branch-heads/5.0@{#44}
Cr-Branched-From: ad16e6c-refs/heads/5.0.71@{#1}
Cr-Branched-From: bd9df50-refs/heads/master@{#34215}
mrunalk pushed a commit that referenced this pull request May 20, 2016
Merged f98caf4

Various species micro-optimizations

BUG=chromium:609739
LOG=N
R=adamk@chromium.org, adamk

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

Cr-Commit-Position: refs/branch-heads/5.1@{#44}
Cr-Branched-From: 167dc63-refs/heads/5.1.281@{#1}
Cr-Branched-From: 03953f5-refs/heads/master@{#35282}
mrunalk pushed a commit that referenced this pull request Jul 19, 2016
Merged 46428e4

Make it possible to create a v8::Function directly w/o a prototype

BUG=chromium:625823
LOG=N
TBR=hablich@chromium.org

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

Cr-Commit-Position: refs/branch-heads/5.2@{#44}
Cr-Branched-From: 2cd36d6-refs/heads/5.2.361@{#1}
Cr-Branched-From: 3fef34e-refs/heads/master@{#36332}
mrunalk pushed a commit that referenced this pull request Sep 1, 2016
Revision: 6cf621e

BUG=chromium:628542
LOG=N
NOTRY=true
NOPRESUBMIT=true
NOTREECHECKS=true
R=hablich@chromium.org

Review-Url: https://codereview.chromium.org/2248213003
Cr-Commit-Position: refs/branch-heads/5.3@{#44}
Cr-Branched-From: 820a23a-refs/heads/5.3.332@{#2}
Cr-Branched-From: 37538cb-refs/heads/master@{#37308}
mrunalk pushed a commit that referenced this pull request Sep 27, 2016
Cr-Commit-Position: refs/branch-heads/5.4@{#44}
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#44}
Cr-Branched-From: fe9bb7e-refs/heads/5.9.211@{crosswalk-project#1}
Cr-Branched-From: 70ad237-refs/heads/master@{#44591}
asifhisam pushed a commit to asifhisam/v8-crosswalk that referenced this pull request Sep 9, 2019
Cr-Commit-Position: refs/branch-heads/5.8@{crosswalk-project#44}
Cr-Branched-From: eda659c-refs/heads/5.8.283@{crosswalk-project#1}
Cr-Branched-From: 4310cd0-refs/heads/master@{#43429}
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.

4 participants