Bug 119737 - [sh4] DFG_JIT implementation for sh4 architecture
Summary: [sh4] DFG_JIT implementation for sh4 architecture
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on: 119755 119758
Blocks:
  Show dependency treegraph
 
Reported: 2013-08-13 03:17 PDT by Julien Brianceau
Modified: 2013-08-14 09:50 PDT (History)
6 users (show)

See Also:


Attachments
DFG_JIT implementation for sh4 architecture (86.56 KB, patch)
2013-08-13 04:52 PDT, Julien Brianceau
jbriance: commit-queue-
Details | Formatted Diff | Diff
DFG_JIT implementation for sh4 architecture (87.62 KB, patch)
2013-08-13 09:39 PDT, Julien Brianceau
no flags Details | Formatted Diff | Diff
DFG_JIT implementation for sh4 architecture (after split) (37.74 KB, patch)
2013-08-14 02:14 PDT, Julien Brianceau
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Julien Brianceau 2013-08-13 03:17:19 PDT
I'll submit a DFG_JIT implementation proposal for sh4 architecture soon.
Comment 1 Julien Brianceau 2013-08-13 04:52:21 PDT
Created attachment 208618 [details]
DFG_JIT implementation for sh4 architecture

I've tested this patch on my sh4 board using r153882 and I didn't see regressions when running
- Tools/Scripts/run-javascriptcore-tests
- Tools/Scripts/run-fast-jsc
- SunSpider 1.0


SunSpider 1.0 results on r153882 without this patch:

============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 13166.3ms +/- 0.2%
--------------------------------------------

  3d:                   2706.3ms +/- 0.5%
    cube:                837.8ms +/- 0.6%
    morph:               539.2ms +/- 0.7%
    raytrace:           1329.3ms +/- 0.7%

  access:               1905.7ms +/- 0.1%
    binary-trees:        114.2ms +/- 2.7%
    fannkuch:           1148.7ms +/- 0.4%
    nbody:               455.2ms +/- 1.0%
    nsieve:              187.7ms +/- 0.3%

  bitops:               1031.2ms +/- 0.4%
    3bit-bits-in-byte:    78.2ms +/- 0.5%
    bits-in-byte:        111.2ms +/- 0.4%
    bitwise-and:         196.0ms +/- 0.0%
    nsieve-bits:         645.8ms +/- 0.6%

  controlflow:            74.0ms +/- 0.0%
    recursive:            74.0ms +/- 0.0%

  crypto:               1165.7ms +/- 1.3%
    aes:                 666.2ms +/- 1.9%
    md5:                 317.5ms +/- 1.1%
    sha1:                182.0ms +/- 2.0%

  date:                 2085.0ms +/- 1.1%
    format-tofte:        925.7ms +/- 1.2%
    format-xparb:       1159.3ms +/- 1.3%

  math:                  850.2ms +/- 1.1%
    cordic:              248.8ms +/- 3.8%
    partial-sums:        343.8ms +/- 2.7%
    spectral-norm:       257.5ms +/- 1.2%

  regexp:                531.0ms +/- 0.8%
    dna:                 531.0ms +/- 0.8%

  string:               2817.3ms +/- 0.5%
    base64:              218.2ms +/- 0.5%
    fasta:               446.3ms +/- 3.2%
    tagcloud:            560.0ms +/- 1.1%
    unpack-code:        1255.2ms +/- 1.0%
    validate-input:      337.7ms +/- 2.2%




SunSpider 1.0 results on r153882 with this patch:

============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 10122.6ms +/- 0.2%
--------------------------------------------

  3d:                   2440.8ms +/- 0.2%
    cube:                899.0ms +/- 0.3%
    morph:               278.5ms +/- 0.6%
    raytrace:           1263.3ms +/- 0.2%

  access:                882.0ms +/- 0.3%
    binary-trees:        106.5ms +/- 1.6%
    fannkuch:            289.3ms +/- 0.5%
    nbody:               335.9ms +/- 0.7%
    nsieve:              150.3ms +/- 0.7%

  bitops:                335.5ms +/- 0.6%
    3bit-bits-in-byte:    29.2ms +/- 1.0%
    bits-in-byte:         74.6ms +/- 1.8%
    bitwise-and:          79.2ms +/- 0.4%
    nsieve-bits:         152.5ms +/- 0.9%

  controlflow:            96.1ms +/- 0.2%
    recursive:            96.1ms +/- 0.2%

  crypto:                886.4ms +/- 0.3%
    aes:                 464.9ms +/- 0.6%
    md5:                 251.0ms +/- 0.7%
    sha1:                170.5ms +/- 0.7%

  date:                 1512.6ms +/- 0.4%
    format-tofte:        780.6ms +/- 0.7%
    format-xparb:        732.0ms +/- 0.7%

  math:                  589.3ms +/- 0.4%
    cordic:              148.5ms +/- 0.3%
    partial-sums:        314.9ms +/- 0.6%
    spectral-norm:       125.9ms +/- 0.2%

  regexp:                529.1ms +/- 0.4%
    dna:                 529.1ms +/- 0.4%

  string:               2850.8ms +/- 0.7%
    base64:              189.2ms +/- 0.9%
    fasta:               402.9ms +/- 0.9%
    tagcloud:            541.1ms +/- 0.6%
    unpack-code:        1323.1ms +/- 1.0%
    validate-input:      394.5ms +/- 1.5%
Comment 2 Julien Brianceau 2013-08-13 06:28:05 PDT
Comment on attachment 208618 [details]
DFG_JIT implementation for sh4 architecture

I cq- because I just saw that this patch introduces a regression (crash) in v8-v4 test suite.

However, I'd still be happy to get feedbacks on this patch, especially the "SH4_32BIT_DUMMY_ARG" part introduced in DFGSpeculativeJIT.h.
Comment 3 Julien Brianceau 2013-08-13 09:39:58 PDT
Created attachment 208642 [details]
DFG_JIT implementation for sh4 architecture

I've tested this patch on my sh4 board using r153999 and I didn't see regressions when running
- Tools/Scripts/run-javascriptcore-tests
- Tools/Scripts/run-fast-jsc
- SunSpider 1.0
- v8-v4 test suite


v8-v4 test suite results on r153999 without this patch:

============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:             74696.0ms +/- 11.7%
--------------------------------------------

  v8:              74696.0ms +/- 11.7%
    crypto:        13296.7ms +/- 1.4%
    deltablue:     21649.7ms +/- 17.6%
    earley-boyer:   6108.0ms +/- 7.4%
    raytrace:       7092.7ms +/- 7.3%
    regexp:         6166.3ms +/- 1.2%
    richards:      15396.0ms +/- 43.9%
    splay:          4986.7ms +/- 6.6%




v8-v4 test suite results on r153999 with this patch:

============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:             36705.7ms +/- 0.7%
--------------------------------------------

  v8:              36705.7ms +/- 0.7%
    crypto:         4592.0ms +/- 0.5%
    deltablue:      7425.7ms +/- 1.6%
    earley-boyer:   4113.3ms +/- 0.2%
    raytrace:       5562.7ms +/- 1.1%
    regexp:         7486.7ms +/- 0.1%
    richards:       4316.7ms +/- 1.4%
    splay:          3208.7ms +/- 9.5%
Comment 4 Oliver Hunt 2013-08-13 09:40:09 PDT
Comment on attachment 208618 [details]
DFG_JIT implementation for sh4 architecture

Separate out the llint changes into a separate patch (it will jus take it easier to be sure a regression was not introduced by those vs. the dfg.  Similarly there's a lot of assembler changes that look like they should be safe on there own (separate tom this patch)
Comment 5 Julien Brianceau 2013-08-13 09:59:11 PDT
Comment on attachment 208642 [details]
DFG_JIT implementation for sh4 architecture

(In reply to comment #4)
> Separate out the llint changes into a separate patch (it will jus take it easier to be sure a regression was not introduced by those vs. the dfg.  Similarly there's a lot of assembler changes that look like they should be safe on there own (separate tom this patch)

Thanks. So I'm going to separate this patch in 3 parts: LLINT, MacroAssembler not related to the DFG then the DFG.
Comment 6 Julien Brianceau 2013-08-13 10:16:26 PDT
LLINT part: https://bugs.webkit.org/show_bug.cgi?id=119755
Comment 7 Julien Brianceau 2013-08-13 10:54:55 PDT
Baseline JIT part: https://bugs.webkit.org/show_bug.cgi?id=119758
Comment 8 Julien Brianceau 2013-08-14 02:14:01 PDT
Created attachment 208707 [details]
DFG_JIT implementation for sh4 architecture (after split)
Comment 9 WebKit Commit Bot 2013-08-14 09:24:11 PDT
Comment on attachment 208707 [details]
DFG_JIT implementation for sh4 architecture (after split)

Rejecting attachment 208707 [details] from commit-queue.

Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.appspot.com', '--bot-id=webkit-cq-03', 'build', '--no-clean', '--no-update', '--build-style=release', '--port=mac']" exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ilure)

Failed to run "['Tools/Scripts/build-webkit', '--release']" exit_code: 65
Process.sb
make: *** wait: No child processes.  Stop.
make: *** Waiting for unfinished jobs....
make: *** wait: No child processes.  Stop.
Command /bin/sh failed with exit code 2


** BUILD FAILED **


The following build commands failed:
	PhaseScriptExecution "Generate Derived Sources" "/Volumes/Data/EWS/WebKit/WebKitBuild/WebKit2.build/Release/Derived Sources.build/Script-C0CE72841247E66800BC0EC4.sh"
(1 failure)

Full output: http://webkit-queues.appspot.com/results/1464096
Comment 10 Julien Brianceau 2013-08-14 09:27:47 PDT
Comment on attachment 208707 [details]
DFG_JIT implementation for sh4 architecture (after split)

Mac bot looks sick today :-/
Comment 11 Allan Sandfeld Jensen 2013-08-14 09:50:03 PDT
Comment on attachment 208707 [details]
DFG_JIT implementation for sh4 architecture (after split)

Clearing flags on attachment: 208707

Committed r154052: <http://trac.webkit.org/changeset/154052>
Comment 12 Allan Sandfeld Jensen 2013-08-14 09:50:10 PDT
All reviewed patches have been landed.  Closing bug.