Closed Bug 1127929 Opened 5 years ago Closed 5 years ago

IonMonkey: Inline SIMD.int32x4.and calls

Categories

(Core :: JavaScript Engine: JIT, defect)

x86_64
All
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla38
Tracking Status
firefox38 --- fixed

People

(Reporter: nbp, Assigned: victorcarlquist, Mentored)

References

Details

Attachments

(1 file, 1 obsolete file)

The goal of this bug is to inline SIMD.int32x4.and calls from js/src/jit-tests/tests/asm.js/simd-mandelbrot.js benchmarks when the JavaScript shell is ran with --no-asmjs command line argument.

To solve this issue, you have modify, build and check the JavaScript shell [1].
Then identify if the optimization is working well by running the jit-test as follow:

  $ jit-test/jit_test.py --ion -s -o path/to/js asm.js/simd-mandelbrot.js

To display the command line, then prefix the command line as describe in the documentation for using iongraph [2], and use iongraph tool to see if the last MIR phase is changed and if the SIMD.int32x4.and operation got inlined with a MSimdBinaryBitwise.

You can refer to Bug 1118344 for one example.

[1] https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Build_Documentation
[2] https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Hacking_Tips#Using_IonMonkey_spew_%28JS_shell%29
Could I work on this bug?
(In reply to Victor Carlquist from comment #1)
> Could I work on this bug?

Sure, I've assigned you to this bug ;)
Assignee: nobody → victorcarlquist
Status: NEW → ASSIGNED
Attached patch Patch (obsolete) — Splinter Review
This patch inline the Int32x4.and call.
Attachment #8558506 - Flags: review?(nicolas.b.pierron)
Comment on attachment 8558506 [details] [diff] [review]
Patch

Review of attachment 8558506 [details] [diff] [review]:
-----------------------------------------------------------------

This looks awesome :)

I will send this patch to Try.

We might wait a bit for Benjamin to add a few SIMD benchmarks on AWFY [1]. This way we would be able to see how much this patch improve the speed of IonMonkey ;)

[1] http://arewefastyet.com
Attachment #8558506 - Flags: review?(nicolas.b.pierron) → review+
Depends on: 1128987
https://treeherder.mozilla.org/#/jobs?repo=try&revision=93fd0e8fa422

Feel free to open a bug to implement other SIMD operations as well.
Also, you might want to request access[1] to push to Try yourself ;)

[1] https://www.mozilla.org/en-US/about/governance/policies/commit/
(In reply to Nicolas B. Pierron [:nbp] from comment #5)
> https://treeherder.mozilla.org/#/jobs?repo=try&revision=93fd0e8fa422
> 
> Feel free to open a bug to implement other SIMD operations as well.
> Also, you might want to request access[1] to push to Try yourself ;)
> 
> [1] https://www.mozilla.org/en-US/about/governance/policies/commit/

It's really Awesome!
Thank you very much ;)

The Try is red because I need to rebase the patch. I'll do it now.
Attached patch Patch rebased.Splinter Review
Attachment #8558506 - Attachment is obsolete: true
Attachment #8558665 - Flags: review+
Blocks: 1129148
(In reply to Victor Carlquist from comment #7)
> Created attachment 8558665 [details] [diff] [review]
> Patch rebased.

And pushed to Try:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=db165ba6d710
Hopefully, this one should stay, and not be back out because of some weird error on Windows 8 ;)
https://hg.mozilla.org/integration/mozilla-inbound/rev/ed0a31f8bdc6
For your information, we should expect a speed-up on the benchmarks that Benjamin added to AreWeFastYet [1].  Have a look at asmjs-ubench-fbirds-native and asmjs-ubench-mandelbrot-native.

[1] http://arewefastyet.com/#machine=28&view=breakdown&suite=asmjs-ubench
Nice! 
I agree ;)
Ok, I'll have a look at the benchmarks.
Thanks.
https://hg.mozilla.org/mozilla-central/rev/ed0a31f8bdc6
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla38
Depends on: 1130845
You need to log in before you can comment on or make changes to this bug.