Bug 73764 - DFG should optimize strict equality
Summary: DFG should optimize strict equality
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:
 
Reported: 2011-12-03 21:46 PST by Filip Pizlo
Modified: 2011-12-04 13:17 PST (History)
1 user (show)

See Also:


Attachments
the patch (17.15 KB, patch)
2011-12-03 21:52 PST, 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 2011-12-03 21:46:49 PST
Patch forthcoming.
Comment 1 Filip Pizlo 2011-12-03 21:47:17 PST
Performance:


Benchmark report for SunSpider, V8, and Kraken on nitroflex.local (MacBookPro8,2).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r101941)
"StrictEq" at /Volumes/Data/pizlo/quartary/OpenSource/WebKitBuild/Release/jsc (r101941)

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                StrictEq                                    
SunSpider:
   3d-cube                                6.9323+-0.1950          6.8258+-0.1168         might be 1.0156x faster
   3d-morph                               7.7808+-0.1310          7.6057+-0.1444         might be 1.0230x faster
   3d-raytrace                            7.2095+-0.2285    ?     7.2449+-0.1412       ?
   access-binary-trees                    1.5190+-0.0531    ?     1.5205+-0.0456       ?
   access-fannkuch                        6.3998+-0.0992          6.3726+-0.0952       
   access-nbody                           3.1883+-0.0460    ?     3.2425+-0.1529       ? might be 1.0170x slower
   access-nsieve                          2.5078+-0.0444          2.4955+-0.0388       
   bitops-3bit-bits-in-byte               1.2539+-0.0331    ?     1.2702+-0.0271       ? might be 1.0130x slower
   bitops-bits-in-byte                    2.4069+-0.0753          2.3651+-0.0655         might be 1.0177x faster
   bitops-bitwise-and                     3.5193+-0.0955          3.4204+-0.0665         might be 1.0289x faster
   bitops-nsieve-bits                     5.3966+-0.1127          5.3858+-0.1208       
   controlflow-recursive                  2.0642+-0.0389          2.0570+-0.0374       
   crypto-aes                             6.9077+-0.1512    ?     6.9706+-0.3068       ?
   crypto-md5                             2.4144+-0.0995          2.3924+-0.0552       
   crypto-sha1                            2.1003+-0.0765    ?     2.1010+-0.0702       ?
   date-format-tofte                     10.6994+-0.4402         10.2068+-0.1852         might be 1.0483x faster
   date-format-xparb                      9.9395+-0.2505          9.8182+-0.3418         might be 1.0124x faster
   math-cordic                            6.2878+-0.0545    !     6.5924+-0.1110       ! definitely 1.0484x slower
   math-partial-sums                      7.5167+-0.1188    ?     7.6744+-0.1654       ? might be 1.0210x slower
   math-spectral-norm                     2.3594+-0.0652          2.2948+-0.0333         might be 1.0281x faster
   regexp-dna                            11.1150+-0.1390         11.0333+-0.2120       
   string-base64                          3.9360+-0.1301          3.9124+-0.1739       
   string-fasta                           6.5948+-0.0735          6.5943+-0.1124       
   string-tagcloud                       11.4289+-0.3142         11.1968+-0.2792         might be 1.0207x faster
   string-unpack-code                    19.7935+-0.6190         19.3594+-0.5112         might be 1.0224x faster
   string-validate-input                  5.2879+-0.0671    ?     5.4383+-0.1742       ? might be 1.0284x slower

   <arithmetic> *                         6.0215+-0.0333          5.9766+-0.0299         might be 1.0075x faster
   <geometric>                            4.7955+-0.0234          4.7752+-0.0210         might be 1.0043x faster
   <harmonic>                             3.7771+-0.0328          3.7673+-0.0228         might be 1.0026x faster

                                            TipOfTree                StrictEq                                    
V8:
   crypto                                70.3478+-0.4708    ?    71.1741+-0.7620       ? might be 1.0117x slower
   deltablue                            149.1885+-0.6366    ?   150.9677+-1.2435       ? might be 1.0119x slower
   earley-boyer                          86.1584+-1.5846    ^    81.2521+-0.8124       ^ definitely 1.0604x faster
   raytrace                              52.5449+-0.3174         52.5310+-0.2737       
   regexp                               105.8777+-0.9201    ^   103.9017+-0.3709       ^ definitely 1.0190x faster
   richards                             115.7194+-0.3089        115.6106+-0.3917       
   splay                                 74.4429+-0.7815         73.6127+-1.1551         might be 1.0113x faster

   <arithmetic>                          93.4685+-0.3186    ^    92.7214+-0.3343       ^ definitely 1.0081x faster
   <geometric> *                         88.7326+-0.3108    ^    87.8962+-0.3192       ^ definitely 1.0095x faster
   <harmonic>                            84.2457+-0.3011    ^    83.4420+-0.3066       ^ definitely 1.0096x faster

                                            TipOfTree                StrictEq                                    
Kraken:
   ai-astar                             497.9250+-6.0276    ?   498.8070+-5.3309       ?
   audio-beat-detection                 188.6153+-3.0431        185.4334+-0.5227         might be 1.0172x faster
   audio-dft                            272.5915+-7.7390        266.2961+-2.3100         might be 1.0236x faster
   audio-fft                            120.9801+-0.5541    ?   121.2349+-1.0772       ?
   audio-oscillator                     249.7702+-3.2990    ?   249.9946+-3.3012       ?
   imaging-darkroom                     307.3386+-6.3388        304.3757+-5.0748       
   imaging-desaturate                   216.9380+-0.7358    ?   218.1204+-1.2908       ?
   imaging-gaussian-blur                560.1900+-3.2296        557.8627+-4.5548       
   json-parse-financial                  58.9333+-0.6396         58.4186+-0.2120       
   json-stringify-tinderbox              74.3975+-0.1989    !    76.8076+-1.2100       ! definitely 1.0324x slower
   stanford-crypto-aes                   99.7420+-0.8033         97.7437+-1.8397         might be 1.0204x faster
   stanford-crypto-ccm                  101.9951+-0.5625    ?   103.5983+-1.6895       ? might be 1.0157x slower
   stanford-crypto-pbkdf2               192.2552+-1.4049        190.9705+-1.4355       
   stanford-crypto-sha256-iterative      85.3768+-1.4834         83.5442+-0.5721         might be 1.0219x faster

   <arithmetic> *                       216.2178+-1.0320        215.2291+-0.6276         might be 1.0046x faster
   <geometric>                          172.7627+-0.6533        172.1056+-0.5018         might be 1.0038x faster
   <harmonic>                           139.8906+-0.5159        139.5563+-0.5263         might be 1.0024x faster

                                            TipOfTree                StrictEq                                    
All benchmarks:
   <arithmetic>                          81.6572+-0.3329         81.2266+-0.1992         might be 1.0053x faster
   <geometric>                           21.5398+-0.0691         21.4347+-0.0654         might be 1.0049x faster
   <harmonic>                             6.6508+-0.0564          6.6330+-0.0394         might be 1.0027x faster

                                            TipOfTree                StrictEq                                    
Geomean of preferred means:
   <scaled-result>                       48.7026+-0.1219    ^    48.3545+-0.1261       ^ definitely 1.0072x faster
Comment 2 Filip Pizlo 2011-12-03 21:52:46 PST
Created attachment 117783 [details]
the patch
Comment 3 WebKit Review Bot 2011-12-04 13:17:00 PST
Comment on attachment 117783 [details]
the patch

Clearing flags on attachment: 117783

Committed r101964: <http://trac.webkit.org/changeset/101964>
Comment 4 WebKit Review Bot 2011-12-04 13:17:04 PST
All reviewed patches have been landed.  Closing bug.