Bug 80014

Summary: DFG local CSE for a node can be terminated earlier
Product: WebKit Reporter: Yuqiang Xian <yuqiang.xian>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, fpizlo
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
patch fpizlo: review+, yuqiang.xian: commit-queue-

Description Yuqiang Xian 2012-03-01 00:55:37 PST
When one of the node's child is met in the process of back traversing the nodes.
Comment 1 Yuqiang Xian 2012-03-01 01:21:17 PST
Created attachment 129662 [details]
patch

Performance neutral on SunSpider, V8 and Kraken.

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.

                                               ToT                    80014
SunSpider:
   3d-cube                                8.2738+-0.0353          8.2301+-0.0563
   3d-morph                              10.2796+-1.4343          9.6136+-0.0313         might be 1.0693x faster
   3d-raytrace                           11.0725+-0.9814         10.4138+-0.0440         might be 1.0632x faster
   access-binary-trees                    2.4162+-0.0410          2.3782+-0.0361         might be 1.0160x faster
   access-fannkuch                       10.2832+-0.0330    ?    10.2954+-0.0425       ?
   access-nbody                           5.4756+-0.0298          5.4618+-0.0295
   access-nsieve                          3.9493+-0.0242    ?     3.9842+-0.0311       ?
   bitops-3bit-bits-in-byte               1.2317+-0.0311    ?     1.2399+-0.0296       ?
   bitops-bits-in-byte                    4.6308+-0.0328    ?     4.6579+-0.0509       ?
   bitops-bitwise-and                     4.2234+-0.0316          4.2182+-0.0432
   bitops-nsieve-bits                     4.3899+-0.3781          4.2256+-0.0175         might be 1.0389x faster
   controlflow-recursive                  2.7894+-0.0347    ?     2.7986+-0.0338       ?
   crypto-aes                             9.7159+-0.1013    ?    10.5690+-1.2842       ? might be 1.0878x slower
   crypto-md5                             3.4543+-0.0349          3.4355+-0.0376
   crypto-sha1                            2.7817+-0.0356    ?     2.7985+-0.0392       ?
   date-format-tofte                     12.8141+-0.0429    ?    13.7343+-1.4600       ? might be 1.0718x slower
   date-format-xparb                     11.9026+-0.3037         11.8689+-0.0892
   math-cordic                            3.9316+-0.0467    ?     3.9752+-0.0324       ? might be 1.0111x slower
   math-partial-sums                     14.8843+-0.0637         14.8552+-0.0492
   math-spectral-norm                     2.6706+-0.0337          2.6667+-0.0376
   regexp-dna                             9.3694+-0.0691          9.3647+-0.0505
   string-base64                          5.5776+-0.0453    ?     5.6318+-0.0409       ?
   string-fasta                           9.4847+-0.0408          9.4238+-0.0588
   string-tagcloud                       16.1147+-0.0385         16.0927+-0.0581
   string-unpack-code                    27.4101+-0.2297    ?    27.4592+-0.0953       ?
   string-validate-input                  8.3594+-0.0566          8.3010+-0.0346

   <arithmetic> *                         7.9802+-0.0902    ?     7.9882+-0.0704       ? might be 1.0010x slower
   <geometric>                            6.2931+-0.0599          6.2917+-0.0331         might be 1.0002x faster
   <harmonic>                             4.8742+-0.0378          4.8738+-0.0156         might be 1.0001x faster

                                               ToT                    80014
V8:
   crypto                                94.7222+-0.6127         94.3364+-0.1624
   deltablue                            167.5102+-1.5407        166.1025+-1.0373
   earley-boyer                         120.8037+-2.9029    ?   121.9013+-2.8339       ?
   raytrace                              59.9594+-0.7856         58.9291+-0.3481         might be 1.0175x faster
   regexp                               111.0411+-0.6099    ?   111.5218+-0.6567       ?
   richards                             190.1924+-0.4228        189.7350+-0.5080
   splay                                 77.8327+-0.6798         77.0769+-0.2385

   <arithmetic>                         117.4374+-0.6452        117.0861+-0.5871         might be 1.0030x faster
   <geometric> *                        109.5003+-0.6401        109.0575+-0.5577         might be 1.0041x faster
   <harmonic>                           102.0258+-0.6461        101.4286+-0.5071         might be 1.0059x faster

                                               ToT                    80014
Kraken:
   ai-astar                             784.0337+-1.2429    ?   785.9269+-1.9518       ?
   audio-beat-detection                 237.0179+-0.2599    !   237.7329+-0.3846       ! definitely 1.0030x slower
   audio-dft                            387.1959+-3.4243    ?   388.8320+-3.7839       ?
   audio-fft                            152.0611+-1.0486        151.3095+-0.1807
   audio-oscillator                     345.9121+-1.9871    ?   346.2906+-2.4266       ?
   imaging-darkroom                     375.5057+-9.0815    ?   377.0849+-10.1587      ?
   imaging-desaturate                   304.5204+-1.5808        303.5016+-0.6957
   imaging-gaussian-blur                507.3724+-1.6954        507.3209+-1.5560
   json-parse-financial                  86.7866+-0.4406    ?    87.7147+-0.5420       ? might be 1.0107x slower
   json-stringify-tinderbox             105.6743+-0.5484        105.4368+-0.6363
   stanford-crypto-aes                  105.9003+-0.5528        105.5189+-0.3627
   stanford-crypto-ccm                  100.7187+-0.8381        100.0919+-0.7498
   stanford-crypto-pbkdf2               237.7638+-2.1886        235.6427+-0.4011
   stanford-crypto-sha256-iterative     103.2649+-0.7613    ?   103.9360+-1.4175       ?

   <arithmetic> *                       273.8377+-1.0482    ?   274.0243+-1.1220       ? might be 1.0007x slower
   <geometric>                          217.4013+-0.7602    ?   217.4395+-0.8597       ? might be 1.0002x slower
   <harmonic>                           175.6196+-0.5666    ?   175.6745+-0.6949       ? might be 1.0003x slower

                                               ToT                    80014
All benchmarks:
   <arithmetic>                         103.4740+-0.4113    ?   103.4816+-0.3955       ? might be 1.0001x slower
   <geometric>                           27.6609+-0.1844         27.6424+-0.0895         might be 1.0007x faster
   <harmonic>                             8.5727+-0.0653          8.5714+-0.0268         might be 1.0002x faster

                                               ToT                    80014
Geomean of preferred means:
   <scaled-result>                       62.0820+-0.3918         62.0323+-0.2147         might be 1.0008x faster
Comment 2 Filip Pizlo 2012-03-01 01:22:42 PST
Comment on attachment 129662 [details]
patch

R=me.
Comment 3 Yuqiang Xian 2012-03-01 01:28:45 PST
Comment on attachment 129662 [details]
patch

Going to land it manually... I was thinking that you might be offline so the review might be delayed.
Comment 4 Yuqiang Xian 2012-03-01 01:32:37 PST
Landed as http://trac.webkit.org/changeset/109325