Bug 154325

Summary: [JSC] Remove the overflow check on ArithAbs when possible
Product: WebKit Reporter: Benjamin Poulain <benjamin>
Component: New BugsAssignee: Benjamin Poulain <benjamin>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, fpizlo, keith_miller, mark.lam, msaboff, saam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Benjamin Poulain 2016-02-16 21:13:52 PST
[JSC] Remove the overflow check on ArithAbs when possible
Comment 1 Benjamin Poulain 2016-02-16 21:21:07 PST
Created attachment 271533 [details]
Patch
Comment 2 Benjamin Poulain 2016-02-16 21:22:55 PST
About 1% on gaussian-blur. Neutral elsewhere.

                                                  Conf#1                    Conf#2                                      
SunSpider:
   3d-cube                                    4.8852+-0.0913     ?      4.9328+-0.1325        ?
   3d-morph                                   5.4792+-0.1419            5.4662+-0.0827        
   3d-raytrace                                5.6336+-0.0367     ?      5.6627+-0.0506        ?
   access-binary-trees                        2.2280+-0.1050            2.2134+-0.0759        
   access-fannkuch                            6.0196+-0.0881     ?      6.0701+-0.0785        ?
   access-nbody                               2.7521+-0.1064     ?      2.9307+-0.2636        ? might be 1.0649x slower
   access-nsieve                              3.2474+-0.0860     ?      3.3969+-0.1118        ? might be 1.0460x slower
   bitops-3bit-bits-in-byte                   1.1719+-0.0139     ?      1.2097+-0.0258        ? might be 1.0322x slower
   bitops-bits-in-byte                        3.2384+-0.0499            3.2269+-0.0372        
   bitops-bitwise-and                         2.0868+-0.0539            2.0597+-0.0322          might be 1.0131x faster
   bitops-nsieve-bits                         3.0554+-0.0537     ?      3.0681+-0.0652        ?
   controlflow-recursive                      2.3878+-0.0264     ?      2.4110+-0.0278        ?
   crypto-aes                                 4.1863+-0.1245            4.1284+-0.0360          might be 1.0140x faster
   crypto-md5                                 2.6582+-0.1438            2.6224+-0.0352          might be 1.0136x faster
   crypto-sha1                                2.3763+-0.0208     ?      2.4676+-0.1245        ? might be 1.0384x slower
   date-format-tofte                          7.3401+-0.3186            7.2486+-0.2181          might be 1.0126x faster
   date-format-xparb                          4.8938+-0.1406            4.8368+-0.1926          might be 1.0118x faster
   math-cordic                                3.0269+-0.0445     ?      3.0382+-0.0701        ?
   math-partial-sums                          5.0036+-0.1445            5.0022+-0.1835        
   math-spectral-norm                         2.0618+-0.0267            2.0421+-0.0326        
   regexp-dna                                 6.2351+-0.2049            6.2270+-0.1641        
   string-base64                              4.6818+-0.2319            4.6268+-0.0718          might be 1.0119x faster
   string-fasta                               6.0590+-0.1843     ?      6.2068+-0.2719        ? might be 1.0244x slower
   string-tagcloud                            8.5210+-0.3996            8.3247+-0.1083          might be 1.0236x faster
   string-unpack-code                        19.8429+-0.8882           19.4293+-0.9452          might be 1.0213x faster
   string-validate-input                      4.5056+-0.1359            4.4980+-0.1766        

   <arithmetic>                               4.7530+-0.0369            4.7441+-0.0556          might be 1.0019x faster

                                                  Conf#1                    Conf#2                                      
Octane:
   encrypt                                   0.16671+-0.00106    ?     0.16685+-0.00107       ?
   decrypt                                   2.91460+-0.00975    ?     2.93072+-0.02343       ?
   deltablue                        x2       0.14030+-0.00226          0.13972+-0.00153       
   earley                                    0.29154+-0.00167          0.29101+-0.00171       
   boyer                                     4.93106+-0.01808          4.86143+-0.09170         might be 1.0143x faster
   navier-stokes                    x2       5.04207+-0.02320    ?     5.05507+-0.02160       ?
   raytrace                         x2       0.91352+-0.00406    ?     0.91421+-0.00534       ?
   richards                         x2       0.08400+-0.00066          0.08392+-0.00053       
   splay                            x2       0.34998+-0.00302          0.34869+-0.00271       
   regexp                           x2      25.27832+-0.13485         25.20888+-0.15894       
   pdfjs                            x2      38.44316+-0.15362    ?    38.67179+-0.16234       ?
   mandreel                         x2      44.68798+-0.16031    ?    44.87991+-0.22278       ?
   gbemu                            x2      25.59351+-0.12919    ?    25.64263+-0.16530       ?
   closure                                   0.57957+-0.00316    ?     0.58092+-0.00318       ?
   jquery                                    7.55344+-0.04260    ?     7.55806+-0.02417       ?
   box2d                            x2       9.45053+-0.03911    ?     9.49386+-0.05957       ?
   zlib                             x2     388.87441+-8.38504    ?   391.93851+-8.38512       ?
   typescript                       x2     674.75188+-4.74647        673.14893+-5.30719       

   <geometric>                               5.37967+-0.01471    ?     5.38340+-0.01215       ? might be 1.0007x slower

                                                  Conf#1                    Conf#2                                      
Kraken:
   ai-astar                                   98.396+-1.130             96.892+-0.786           might be 1.0155x faster
   audio-beat-detection                       46.954+-0.824      ?      47.703+-0.611         ? might be 1.0159x slower
   audio-dft                                  99.965+-1.460      ?     100.517+-0.757         ?
   audio-fft                                  35.679+-0.037      ?      36.137+-0.737         ? might be 1.0128x slower
   audio-oscillator                           50.258+-0.968             49.872+-0.598         
   imaging-darkroom                           61.414+-0.538             61.397+-0.540         
   imaging-desaturate                         45.678+-0.408      ?      45.916+-0.500         ?
   imaging-gaussian-blur                      72.446+-0.706             71.673+-0.526           might be 1.0108x faster
   json-parse-financial                       37.368+-0.449             36.998+-0.290         
   json-stringify-tinderbox                   24.570+-1.302             23.562+-0.547           might be 1.0428x faster
   stanford-crypto-aes                        41.861+-0.883             41.510+-0.315         
   stanford-crypto-ccm                        38.282+-0.915             37.509+-0.475           might be 1.0206x faster
   stanford-crypto-pbkdf2                    104.535+-1.080            104.453+-0.999         
   stanford-crypto-sha256-iterative           39.596+-0.348             39.466+-0.486         

   <arithmetic>                               56.929+-0.213             56.686+-0.136           might be 1.0043x faster

                                                  Conf#1                    Conf#2                                      
AsmBench:
   bigfib.cpp                               455.5875+-4.6346          452.5373+-4.6232        
   cray.c                                   376.2461+-1.7561     ?    377.4903+-1.7701        ?
   dry.c                                    485.6156+-49.3191         470.5792+-41.0831         might be 1.0320x faster
   FloatMM.c                                731.1863+-7.4604     ?    732.6157+-8.7676        ?
   gcc-loops.cpp                           3727.8752+-34.9629    ?   3727.9101+-33.5049       ?
   n-body.c                                 833.2843+-4.5505     ?    833.9909+-5.3119        ?
   Quicksort.c                              414.6915+-3.9985     ?    416.5589+-2.5578        ?
   stepanov_container.cpp                  3404.4785+-13.0150        3397.8032+-23.7670       
   Towers.c                                 275.5373+-1.5047     ?    276.8855+-2.0215        ?

   <geometric>                              747.6155+-9.1220          745.7240+-6.6491          might be 1.0025x faster

                                                  Conf#1                    Conf#2                                      
Geomean of preferred means:
   <scaled-result>                           32.2974+-0.1299           32.2328+-0.0917          might be 1.0020x faster
Comment 3 Filip Pizlo 2016-02-17 14:01:58 PST
Comment on attachment 271533 [details]
Patch

Nice!!
Comment 4 WebKit Commit Bot 2016-02-17 15:35:10 PST
Comment on attachment 271533 [details]
Patch

Clearing flags on attachment: 271533

Committed r196726: <http://trac.webkit.org/changeset/196726>
Comment 5 WebKit Commit Bot 2016-02-17 15:35:13 PST
All reviewed patches have been landed.  Closing bug.