Bug 72563 - JSC::CodeBlock should know which references generated by the DFG are weak
Summary: JSC::CodeBlock should know which references generated by the DFG are weak
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks: 72312
  Show dependency treegraph
 
Reported: 2011-11-16 16:09 PST by Filip Pizlo
Modified: 2011-11-16 16:50 PST (History)
0 users

See Also:


Attachments
the patch (22.79 KB, patch)
2011-11-16 16:15 PST, Filip Pizlo
ggaren: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2011-11-16 16:09:51 PST
Patch forthcoming.
Comment 1 Filip Pizlo 2011-11-16 16:15:57 PST
Created attachment 115473 [details]
the patch
Comment 2 Geoffrey Garen 2011-11-16 16:24:10 PST
Comment on attachment 115473 [details]
the patch

r=me
Comment 3 Filip Pizlo 2011-11-16 16:39:37 PST
It's performance-neutral.



Benchmark report for SunSpider, V8, and Kraken on bigmac.local (MacPro5,1).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r100522)
"DFGWeak" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc (r100522)

Collected 12 samples per benchmark/VM, with 4 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                DFGWeak                                     
SunSpider:
   3d-cube                                7.4398+-0.0273          7.4265+-0.0310       
   3d-morph                               8.3947+-0.0303    ?     8.4720+-0.1302       ?
   3d-raytrace                            7.8433+-0.1168          7.7104+-0.0512         might be 1.0172x faster
   access-binary-trees                    1.6054+-0.0134          1.5999+-0.0096       
   access-fannkuch                        7.6610+-0.1248    ^     7.5207+-0.0105       ^ definitely 1.0187x faster
   access-nbody                           4.1811+-0.0077    ?     4.1882+-0.0328       ?
   access-nsieve                          3.1675+-0.0434          3.1550+-0.0475       
   bitops-3bit-bits-in-byte               1.2622+-0.0191          1.2533+-0.0158       
   bitops-bits-in-byte                    4.9339+-0.0287          4.9009+-0.0143       
   bitops-bitwise-and                     3.2972+-0.0169    ?     3.3324+-0.0443       ? might be 1.0107x slower
   bitops-nsieve-bits                     5.6792+-0.0333          5.6682+-0.0405       
   controlflow-recursive                  2.3004+-0.0291    ?     2.3032+-0.0241       ?
   crypto-aes                             7.1191+-0.0418          7.1127+-0.0367       
   crypto-md5                             2.5027+-0.0186    ?     2.5536+-0.0460       ? might be 1.0203x slower
   crypto-sha1                            2.1973+-0.0230          2.1954+-0.0332       
   date-format-tofte                     10.9261+-0.2857         10.7098+-0.0489         might be 1.0202x faster
   date-format-xparb                     11.3367+-0.2987         11.1948+-0.3314         might be 1.0127x faster
   math-cordic                            7.2301+-0.0726    ^     7.1259+-0.0186       ^ definitely 1.0146x faster
   math-partial-sums                     10.5693+-0.1449         10.5256+-0.0354       
   math-spectral-norm                     2.6410+-0.0325    ^     2.5981+-0.0080       ^ definitely 1.0165x faster
   regexp-dna                            13.0281+-0.0726         13.0013+-0.0620       
   string-base64                          3.9365+-0.0144    ?     3.9419+-0.0189       ?
   string-fasta                           7.3809+-0.0333    ?     7.3940+-0.0269       ?
   string-tagcloud                       13.2893+-0.1496         13.1009+-0.0725         might be 1.0144x faster
   string-unpack-code                    22.2383+-0.0946    ?    22.3519+-0.2027       ?
   string-validate-input                  5.6933+-0.1166          5.5768+-0.0504         might be 1.0209x faster

   <arithmetic> *                         6.8406+-0.0350          6.8044+-0.0253         might be 1.0053x faster
   <geometric>                            5.4390+-0.0263          5.4151+-0.0212         might be 1.0044x faster
   <harmonic>                             4.2287+-0.0205          4.2161+-0.0221         might be 1.0030x faster

                                            TipOfTree                DFGWeak                                     
V8:
   crypto                                77.3485+-0.2738    ?    78.1872+-1.1799       ? might be 1.0108x slower
   deltablue                            168.2160+-0.6230    !   171.4753+-2.2625       ! definitely 1.0194x slower
   earley-boyer                         106.4277+-2.1540        105.0603+-1.3109         might be 1.0130x faster
   raytrace                              63.1313+-0.5673    ?    63.3722+-1.1857       ?
   regexp                               126.4038+-0.5045        126.2782+-0.5559       
   richards                             139.0056+-1.9669    ?   140.8099+-1.9653       ? might be 1.0130x slower
   splay                                 89.7563+-0.7820    ?    90.6418+-1.2659       ?

   <arithmetic>                         110.0413+-0.6796    ?   110.8321+-0.4371       ? might be 1.0072x slower
   <geometric> *                        104.6856+-0.6344    ?   105.3143+-0.5341       ? might be 1.0060x slower
   <harmonic>                            99.4776+-0.5807    ?   100.0015+-0.6478       ? might be 1.0053x slower

                                            TipOfTree                DFGWeak                                     
Kraken:
   ai-astar                             819.2897+-10.1898       818.7022+-10.9279      
   audio-beat-detection                 206.4602+-1.0583        204.8580+-0.6615       
   audio-dft                            268.9449+-10.0384       262.9276+-2.6183         might be 1.0229x faster
   audio-fft                            133.3716+-0.2218        133.2630+-0.2694       
   audio-oscillator                     293.6317+-0.2900    ?   294.6799+-1.6204       ?
   imaging-darkroom                     335.0992+-5.0936        333.3226+-4.6104       
   imaging-desaturate                   240.9964+-0.0905        240.9428+-0.2223       
   imaging-gaussian-blur                620.8911+-0.2228    ?   621.7937+-2.1577       ?
   json-parse-financial                  73.4866+-0.2516    ^    72.5241+-0.2918       ^ definitely 1.0133x faster
   json-stringify-tinderbox              85.6875+-0.8347    ?    85.7868+-0.5077       ?
   stanford-crypto-aes                  117.0081+-0.7022        116.6514+-0.6636       
   stanford-crypto-ccm                  115.9199+-0.4262        115.5942+-1.0340       
   stanford-crypto-pbkdf2               232.3294+-0.4827        231.3283+-1.0463       
   stanford-crypto-sha256-iterative      93.3015+-0.1997         93.2156+-0.1988       

   <arithmetic> *                       259.7442+-0.8163        258.9707+-0.9146         might be 1.0030x faster
   <geometric>                          200.1064+-0.6275        199.3300+-0.3560         might be 1.0039x faster
   <harmonic>                           161.0712+-0.5026        160.3877+-0.2369         might be 1.0043x faster

                                            TipOfTree                DFGWeak                                     
All benchmarks:
   <arithmetic>                          97.5439+-0.2197         97.4112+-0.2341         might be 1.0014x faster
   <geometric>                           24.7285+-0.0957         24.6616+-0.0674         might be 1.0027x faster
   <harmonic>                             7.4535+-0.0358          7.4318+-0.0383         might be 1.0029x faster

                                            TipOfTree                DFGWeak                                     
Geomean of preferred means:
   <scaled-result>                       57.0823+-0.1913         57.0386+-0.1300         might be 1.0008x faster
Comment 4 Filip Pizlo 2011-11-16 16:50:14 PST
Landed in http://trac.webkit.org/changeset/100527