Bug 126722

Summary: DFG and FTL should have separate compilation worklists
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: atrick, barraclough, ggaren, mark.lam, mhahnenberg, msaboff, nrotem, oliver, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 112840    
Attachments:
Description Flags
the patch mhahnenberg: review+

Description Filip Pizlo 2014-01-09 15:05:31 PST
Patch forthcoming.
Comment 1 Filip Pizlo 2014-01-09 15:08:37 PST
Created attachment 220773 [details]
the patch
Comment 2 Mark Hahnenberg 2014-01-09 15:15:34 PST
Comment on attachment 220773 [details]
the patch

r=me
Comment 3 Filip Pizlo 2014-01-09 16:26:19 PST
Benchmark report for SunSpider, Octane, and Kraken on oldmac (MacPro4,1).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/cStack/OpenSource/WebKitBuild/Release/jsc (r161590)
"ToTParallel" at /Volumes/Data/pizlo/cStack/OpenSource/WebKitBuild/Release/jsc (r161590)
    export JSC_numberOfCompilerThreads=7
"DualFTL" at /Volumes/Data/fromMiniMe/cStack/OpenSource/WebKitBuild/Release/jsc (r161590)

Collected 10 samples per benchmark/VM, with 10 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark
iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark
execution times with 95% confidence intervals in milliseconds.

                                                TipOfTree                ToTParallel                 DualFTL               DualFTL v. TipOfTree   
SunSpider:
   3d-cube                                    7.7350+-0.1403     ?      7.8031+-0.0543     ?      7.8924+-0.0669        ? might be 1.0204x slower
   3d-morph                                   8.7733+-0.0991     !      9.1814+-0.1007     ^      8.7825+-0.0606        ?
   3d-raytrace                                9.5156+-0.1249            9.2736+-0.1206     ?      9.3440+-0.1619          might be 1.0184x faster
   access-binary-trees                        2.4751+-0.0171     ^      2.3861+-0.0198     ^      2.1944+-0.0394        ^ definitely 1.1279x faster
   access-fannkuch                            7.9955+-0.1110     ?      8.2837+-0.5175            8.0945+-0.0772        ? might be 1.0124x slower
   access-nbody                               4.2644+-0.0142     !      4.4524+-0.0255     ^      4.2758+-0.0098        ?
   access-nsieve                              5.5880+-0.0206     ?      5.6016+-0.0964            5.5880+-0.1668        
   bitops-3bit-bits-in-byte                   1.9945+-0.0207     !      2.1833+-0.0133     ^      1.9876+-0.0198        
   bitops-bits-in-byte                        6.7168+-0.0741     !      6.8758+-0.0213     ^      6.6912+-0.0102        
   bitops-bitwise-and                         3.0426+-0.1102     ?      3.1417+-0.0885            2.9948+-0.0926          might be 1.0159x faster
   bitops-nsieve-bits                         5.7832+-0.0789     !      6.1569+-0.0582     ^      5.7990+-0.0970        ?
   controlflow-recursive                      4.5550+-0.0541     ^      3.9242+-0.0130     ^      3.8724+-0.0140        ^ definitely 1.1763x faster
   crypto-aes                                 5.8840+-0.0771     !      6.0512+-0.0807     ?      6.0727+-0.0630        ! definitely 1.0321x slower
   crypto-md5                                 3.5651+-0.0237     ?      3.6012+-0.0418     ?      3.6126+-0.0722        ? might be 1.0133x slower
   crypto-sha1                                3.6039+-0.0455     !      3.8102+-0.0323     ^      3.7198+-0.0110        ! definitely 1.0321x slower
   date-format-tofte                         11.4091+-0.1328     !     11.6409+-0.0693           11.4883+-0.1030        ?
   date-format-xparb                          8.4204+-0.0703     !      8.5730+-0.0675            8.5148+-0.1166        ? might be 1.0112x slower
   math-cordic                                4.7391+-0.0530     !      4.9023+-0.0500            4.8443+-0.0160        ! definitely 1.0222x slower
   math-partial-sums                         10.2762+-0.1186     ?     10.4455+-0.0977           10.2392+-0.1667        
   math-spectral-norm                         4.4365+-0.3661     ^      3.1942+-0.0144     !      3.2475+-0.0260        ^ definitely 1.3661x faster
   regexp-dna                                13.0538+-0.1486           12.9485+-0.1302     ?     13.1896+-0.2219        ? might be 1.0104x slower
   string-base64                              5.5600+-0.0266     !      5.9501+-0.0452     ^      5.6209+-0.0939        ? might be 1.0109x slower
   string-fasta                              11.2043+-0.2024           10.8907+-0.1598     ?     10.8925+-0.1670          might be 1.0286x faster
   string-tagcloud                           15.0982+-0.1287     !     15.4909+-0.1335     ^     15.1574+-0.1170        ?
   string-unpack-code                        32.1125+-0.3270     ?     32.6096+-0.2257           32.2217+-0.1813        ?
   string-validate-input                      7.0659+-0.0967     ?      7.2557+-0.0951     ^      7.0590+-0.0798        

   <arithmetic> *                             7.8795+-0.0217     !      7.9472+-0.0231     ^      7.8230+-0.0155        ^ definitely 1.0072x faster
   <geometric>                                6.5084+-0.0227     ?      6.5309+-0.0209     ^      6.3898+-0.0163        ^ definitely 1.0186x faster
   <harmonic>                                 5.5083+-0.0320     ?      5.5089+-0.0198     ^      5.3392+-0.0228        ^ definitely 1.0317x faster

                                                TipOfTree                ToTParallel                 DualFTL               DualFTL v. TipOfTree   
Octane and V8v7:
   encrypt                                   0.44227+-0.00445          0.43756+-0.00049    ?     0.43765+-0.00074         might be 1.0106x faster
   decrypt                                   8.09333+-0.02411    ?     8.14397+-0.04516    ?     8.17768+-0.07785       ? might be 1.0104x slower
   deltablue                        x2       0.55937+-0.00265    ^     0.54515+-0.00929          0.53778+-0.00746       ^ definitely 1.0402x faster
   earley                                    0.89108+-0.01754          0.88955+-0.01030          0.88891+-0.01445       
   boyer                                    11.98773+-0.03993    ?    12.08035+-0.09569         12.01329+-0.05560       ?
   raytrace                         x2       3.97495+-0.04962          3.93134+-0.01134    ^     3.88757+-0.03056       ^ definitely 1.0225x faster
   regexp                           x2      30.94620+-0.10105    ?    31.18226+-0.14836    ?    31.28541+-0.05398       ! definitely 1.0110x slower
   richards                         x2       0.22445+-0.00253    ?     0.22446+-0.00196          0.22423+-0.00170       
   splay                            x2       0.63010+-0.00352          0.62697+-0.00234    ?     0.62863+-0.00345       
   navier-stokes                    x2       8.24634+-0.01810    ?     8.27680+-0.09913          8.22878+-0.01162       
   closure                                   0.77319+-0.00194          0.77150+-0.00241    ?     0.78109+-0.01136       ? might be 1.0102x slower
   jquery                                   10.86971+-0.09816    ?    10.89717+-0.09670    ?    10.90944+-0.06909       ?
   gbemu                            x2      94.55735+-2.15531    ^    85.47404+-2.31036         84.20366+-0.56867       ^ definitely 1.1230x faster
   mandreel                         x2     102.09544+-0.41028        101.44793+-0.37334    ?   101.68476+-0.91844       
   pdfjs                            x2      99.10754+-0.29963    ?    99.56893+-0.27883    !   100.22624+-0.18232       ! definitely 1.0113x slower
   box2d                            x2      31.14315+-0.08152    !    31.46904+-0.09198    ?    31.52653+-0.19350       ! definitely 1.0123x slower

V8v7:
   <arithmetic>                              6.91108+-0.01459    ?     6.94534+-0.02585          6.94390+-0.00663       ! definitely 1.0047x slower
   <geometric> *                             2.17237+-0.00685          2.16430+-0.00537          2.15712+-0.00525       ^ definitely 1.0071x faster
   <harmonic>                                0.79748+-0.00451          0.79203+-0.00381          0.78975+-0.00277       ^ definitely 1.0098x faster

Octane including V8v7:
   <arithmetic>                             29.84720+-0.16703    ^    29.18130+-0.18892         29.15674+-0.07819       ^ definitely 1.0237x faster
   <geometric> *                             6.57389+-0.02082    ^     6.51243+-0.01967          6.50058+-0.01290       ^ definitely 1.0113x faster
   <harmonic>                                1.20517+-0.00633          1.19727+-0.00544          1.19493+-0.00436         might be 1.0086x faster

                                                TipOfTree                ToTParallel                 DualFTL               DualFTL v. TipOfTree   
Kraken:
   ai-astar                                  494.054+-0.566            493.943+-0.519      ?     495.509+-4.113         ?
   audio-beat-detection                      222.228+-1.196            221.917+-0.813      ?     222.988+-2.524         ?
   audio-dft                                 292.768+-2.611      ?     293.431+-2.820      ?     294.920+-4.407         ?
   audio-fft                                 129.644+-0.126      ?     129.781+-0.128            129.740+-0.139         ?
   audio-oscillator                          530.579+-0.590      ?     531.590+-0.647      ?     533.247+-3.535         ?
   imaging-darkroom                          298.699+-7.128            289.801+-2.708      !     298.392+-1.162         
   imaging-desaturate                        109.765+-0.061      ?     109.943+-0.201            109.736+-0.179         
   imaging-gaussian-blur                     191.039+-1.253      ?     192.812+-0.961      ?     203.382+-26.139        ? might be 1.0646x slower
   json-parse-financial                       79.933+-0.454             79.550+-0.288      ?      79.895+-0.347         
   json-stringify-tinderbox                  103.529+-0.459            103.476+-0.412      ?     103.812+-0.424         ?
   stanford-crypto-aes                        92.541+-0.573             92.278+-0.384      ?      92.791+-0.704         ?
   stanford-crypto-ccm                        99.185+-1.443      !     102.089+-1.355      ?     102.411+-0.800         ! definitely 1.0325x slower
   stanford-crypto-pbkdf2                    259.257+-2.044            258.160+-1.551      ?     263.137+-3.793         ? might be 1.0150x slower
   stanford-crypto-sha256-iterative          113.674+-0.582      ?     114.611+-0.749            114.286+-0.367         ?

   <arithmetic> *                            215.492+-0.609            215.242+-0.378      !     217.446+-1.794         ? might be 1.0091x slower
   <geometric>                               177.564+-0.415      ?     177.684+-0.345      ?     179.188+-1.369         ? might be 1.0091x slower
   <harmonic>                                150.614+-0.300      ?     150.978+-0.330      ?     151.841+-0.780         ! definitely 1.0081x slower

                                                TipOfTree                ToTParallel                 DualFTL               DualFTL v. TipOfTree   
All benchmarks:
   <arithmetic>                              60.5726+-0.1297     ^     60.2837+-0.1281     ?     60.6927+-0.4013        ? might be 1.0020x slower
   <geometric>                               13.1755+-0.0302           13.1465+-0.0182     ^     13.0477+-0.0217        ^ definitely 1.0098x faster
   <harmonic>                                 2.5012+-0.0118            2.4879+-0.0098     ^      2.4700+-0.0058        ^ definitely 1.0126x faster

                                                TipOfTree                ToTParallel                 DualFTL               DualFTL v. TipOfTree   
Geomean of preferred means:
   <scaled-result>                           22.3486+-0.0367           22.3336+-0.0299           22.2785+-0.0631          might be 1.0031x faster
Comment 4 Filip Pizlo 2014-01-10 13:22:08 PST
Landed in http://trac.webkit.org/changeset/161599