Bug 113624 - FTL should support double variables
Summary: FTL should support double variables
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on:
Blocks: 112840
  Show dependency treegraph
 
Reported: 2013-03-29 16:15 PDT by Filip Pizlo
Modified: 2013-04-28 18:04 PDT (History)
7 users (show)

See Also:


Attachments
the patch (32.82 KB, patch)
2013-04-27 15:50 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (32.98 KB, patch)
2013-04-27 16:12 PDT, Filip Pizlo
ggaren: review+
Details | Formatted Diff | Diff
latest MCJIT patch (18.60 KB, patch)
2013-04-28 17:37 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2013-03-29 16:15:52 PDT
FTL should support double variables
Comment 1 Filip Pizlo 2013-04-27 15:50:51 PDT
Created attachment 199919 [details]
the patch

Still need to test it more, so not ready for review.
Comment 2 Filip Pizlo 2013-04-27 15:59:03 PDT
Heh.  Looping over an array to sum up some doubles just got 50% faster.


[pizlo@dethklok OpenSource] DYLD_FRAMEWORK_PATH=WebKitBuild/Release/ WebKitBuild/Release/jsc --useExperimentalFTL=false test10.js
Warmup: 1000 iterations took 3.915071487426758 ms.
Warmup: 10000 iterations took 33.653974533081055 ms.
Measurement: 100000 iterations took 329.6809196472168 ms.
[pizlo@dethklok OpenSource] DYLD_FRAMEWORK_PATH=WebKitBuild/Release/ WebKitBuild/Release/jsc --useExperimentalFTL=true test10.js
Warmup: 1000 iterations took 8.111000061035156 ms.
Warmup: 10000 iterations took 22.084951400756836 ms.
Measurement: 100000 iterations took 220.31879425048828 ms.
Comment 3 Filip Pizlo 2013-04-27 16:12:08 PDT
Created attachment 199921 [details]
the patch

Note, for this to work on Darwin, I'll need to fix LLVM's MCJIT on Darwin.  Lol.
Comment 4 Geoffrey Garen 2013-04-27 17:44:01 PDT
Comment on attachment 199921 [details]
the patch

r=me

Now all we need is for Darwin to become a supported platform for LLVM...
Comment 5 Filip Pizlo 2013-04-28 00:07:58 PDT
(In reply to comment #4)
> (From update of attachment 199921 [details])
> r=me
> 
> Now all we need is for Darwin to become a supported platform for LLVM...

Lol.

I will wait with landing this until I have that figured out.  I've got a backlog of concurrent DFG stuff to do anyway.
Comment 6 Filip Pizlo 2013-04-28 17:36:27 PDT
(In reply to comment #5)
> (In reply to comment #4)
> > (From update of attachment 199921 [details] [details])
> > r=me
> > 
> > Now all we need is for Darwin to become a supported platform for LLVM...
> 
> Lol.
> 
> I will wait with landing this until I have that figured out.  I've got a backlog of concurrent DFG stuff to do anyway.

And I "fixed" it.  All that is needed is to switch the MCJIT to CodeModel::Small.  This required exposing more things via the C API; I'll attach the patch here and try to land it in LLVM trunk soon.
Comment 7 Filip Pizlo 2013-04-28 17:37:49 PDT
Created attachment 199976 [details]
latest MCJIT patch

This includes my previous MCJIT patch since it's still in a land-rollout pattern. ;-)
Comment 8 Filip Pizlo 2013-04-28 18:04:15 PDT
Landed in http://trac.webkit.org/changeset/149264