Bug 117272 - fourthTier: DFG CFA should know when it hits a contradiction
Summary: fourthTier: DFG CFA should know when it hits a contradiction
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on: 117279
Blocks:
  Show dependency treegraph
 
Reported: 2013-06-05 13:07 PDT by Filip Pizlo
Modified: 2013-06-06 21:24 PDT (History)
7 users (show)

See Also:


Attachments
work in progress (49.15 KB, patch)
2013-06-05 13:07 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (67.31 KB, patch)
2013-06-05 15:22 PDT, Filip Pizlo
oliver: 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 2013-06-05 13:07:31 PDT
Patch forthcoming.
Comment 1 Filip Pizlo 2013-06-05 13:07:53 PDT
Created attachment 203875 [details]
work in progress
Comment 2 Filip Pizlo 2013-06-05 15:22:03 PDT
Created attachment 203886 [details]
the patch
Comment 3 Filip Pizlo 2013-06-05 20:58:08 PDT
This looks like a ~0.8% V8v7 regression, most likely because every contradiction is automatically treated as a frequent exit.  I'll investigate more before landing.

Benchmark report for SunSpider, V8Spider, Octane, Kraken, and JSRegress on oldmac (MacPro4,1).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/fourthTier/OpenSource/WebKitBuild/Release/jsc (r151231)
"Contradiction" at /Volumes/Data/fromMiniMe/fourthTier/tertiary/OpenSource/WebKitBuild/Release/jsc (r151231)

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               Contradiction                                   
SunSpider:
   3d-cube                                         6.7277+-0.1045            6.6596+-0.1014          might be 1.0102x faster
   3d-morph                                        8.5155+-0.1194            8.4721+-0.1605        
   3d-raytrace                                     8.4792+-0.1267            8.4348+-0.1375        
   access-binary-trees                             1.8227+-0.0143            1.8137+-0.0094        
   access-fannkuch                                 7.7148+-0.0905            7.6719+-0.0648        
   access-nbody                                    3.9882+-0.0094            3.9844+-0.0064        
   access-nsieve                                   4.8181+-0.0391            4.8136+-0.0830        
   bitops-3bit-bits-in-byte                        1.7770+-0.0177            1.7747+-0.0174        
   bitops-bits-in-byte                             6.9271+-0.0822            6.7983+-0.0873          might be 1.0189x faster
   bitops-bitwise-and                              2.7874+-0.0363            2.7669+-0.0628        
   bitops-nsieve-bits                              4.4528+-0.0634     ?      4.4830+-0.0273        ?
   controlflow-recursive                           3.0036+-0.0352     ?      3.0072+-0.0356        ?
   crypto-aes                                      5.1966+-0.0763            5.1943+-0.0612        
   crypto-md5                                      3.0585+-0.0243     ?      3.0625+-0.0304        ?
   crypto-sha1                                     2.8425+-0.0198     ?      2.8444+-0.0270        ?
   date-format-tofte                              14.8683+-0.2040           14.7809+-0.2138        
   date-format-xparb                               8.3608+-0.1546     ?      8.3916+-0.1493        ?
   math-cordic                                     3.9594+-0.0321            3.9470+-0.0377        
   math-partial-sums                              11.9370+-0.1072           11.9023+-0.1145        
   math-spectral-norm                              2.7174+-0.0140     ?      2.7208+-0.0160        ?
   regexp-dna                                     12.6537+-0.1942           12.6361+-0.1811        
   string-base64                                   5.1019+-0.0412            5.0713+-0.0546        
   string-fasta                                   10.7448+-0.1391           10.7334+-0.0560        
   string-tagcloud                                14.4382+-0.1602           14.4325+-0.2200        
   string-unpack-code                             29.0000+-0.1420           28.8889+-0.1305        
   string-validate-input                           6.7030+-0.1869            6.5883+-0.1800          might be 1.0174x faster

   <arithmetic> *                                  7.4075+-0.0545            7.3798+-0.0486          might be 1.0038x faster
   <geometric>                                     5.8395+-0.0345            5.8196+-0.0319          might be 1.0034x faster
   <harmonic>                                      4.7027+-0.0204            4.6897+-0.0197          might be 1.0028x faster

                                                     TipOfTree               Contradiction                                   
V8Spider:
   crypto                                         79.8109+-0.1825           79.6727+-0.4158        
   deltablue                                     104.5810+-1.7588          104.1448+-0.3557        
   earley-boyer                                   69.8515+-0.1867     ?     70.0228+-0.2414        ?
   raytrace                                       38.1151+-0.3861     ?     38.1790+-0.4742        ?
   regexp                                        100.9521+-0.7985     ?    101.4893+-0.3397        ?
   richards                                      112.5223+-1.4049          111.7891+-0.6706        
   splay                                          47.1807+-0.2157     ?     47.3771+-0.3044        ?

   <arithmetic>                                   79.0019+-0.2565           78.9536+-0.1809          might be 1.0006x faster
   <geometric> *                                  73.7812+-0.1961     ?     73.7970+-0.1621        ? might be 1.0002x slower
   <harmonic>                                     68.1945+-0.2058     ?     68.2631+-0.1863        ? might be 1.0010x slower

                                                     TipOfTree               Contradiction                                   
Octane and V8v7:
   encrypt                                        0.46862+-0.00351          0.46595+-0.00057       
   decrypt                                        8.62815+-0.01466    ^     8.59114+-0.00548       ^ definitely 1.0043x faster
   deltablue                             x2       0.56742+-0.00305    !     0.59626+-0.00289       ! definitely 1.0508x slower
   earley                                         0.88137+-0.00343    ?     0.88399+-0.00222       ?
   boyer                                         13.00454+-0.05012    ?    13.09365+-0.07199       ?
   raytrace                              x2       4.51976+-0.03846          4.47933+-0.04109       
   regexp                                x2      32.71187+-0.29210         32.60318+-0.36388       
   richards                              x2       0.31040+-0.00197    ?     0.31175+-0.00302       ?
   splay                                 x2       0.64078+-0.01437    ?     0.66054+-0.02766       ? might be 1.0308x slower
   navier-stokes                         x2      10.81320+-0.01014         10.80681+-0.01318       
   closure                                        0.32216+-0.03576    ?     0.32366+-0.03625       ?
   jquery                                         4.57667+-0.55546          4.57426+-0.55678       
   gbemu                                 x2     140.46226+-1.72771    ?   142.13469+-2.24039       ? might be 1.0119x slower
   box2d                                 x2      32.72646+-0.11335    ^    32.47411+-0.12822       ^ definitely 1.0078x faster

V8v7:
   <arithmetic>                                   7.63185+-0.04081          7.62190+-0.04600         might be 1.0013x faster
   <geometric> *                                  2.43292+-0.01126    ?     2.45429+-0.01491       ? might be 1.0088x slower
   <harmonic>                                     0.92795+-0.00548    !     0.94281+-0.00836       ! definitely 1.0160x slower

Octane including V8v7:
   <arithmetic>                                  21.51754+-0.17811    ?    21.63936+-0.21620       ? might be 1.0057x slower
   <geometric> *                                  4.17728+-0.04408    ?     4.20616+-0.04614       ? might be 1.0069x slower
   <harmonic>                                     1.06197+-0.01756    ?     1.07676+-0.01895       ? might be 1.0139x slower

                                                     TipOfTree               Contradiction                                   
Kraken:
   ai-astar                                       492.812+-0.700      !     518.598+-5.769         ! definitely 1.0523x slower
   audio-beat-detection                           242.025+-0.863            241.510+-0.431         
   audio-dft                                      307.744+-0.834      ?     313.846+-10.592        ? might be 1.0198x slower
   audio-fft                                      144.674+-1.531            143.428+-0.448         
   audio-oscillator                               246.839+-5.891      ?     249.157+-6.554         ?
   imaging-darkroom                               286.121+-0.765            286.062+-0.779         
   imaging-desaturate                             160.219+-0.402      ^     158.888+-0.901         ^ definitely 1.0084x faster
   imaging-gaussian-blur                          406.337+-5.660      ^     399.774+-0.255         ^ definitely 1.0164x faster
   json-parse-financial                            81.180+-0.639      ^      79.674+-0.302         ^ definitely 1.0189x faster
   json-stringify-tinderbox                        98.296+-0.222      !      99.118+-0.318         ! definitely 1.0084x slower
   stanford-crypto-aes                             92.243+-0.411      !      93.793+-0.494         ! definitely 1.0168x slower
   stanford-crypto-ccm                             90.241+-4.715      ?      90.727+-4.770         ?
   stanford-crypto-pbkdf2                         263.967+-0.791      !     269.242+-2.255         ! definitely 1.0200x slower
   stanford-crypto-sha256-iterative               115.162+-0.168      !     116.207+-0.450         ! definitely 1.0091x slower

   <arithmetic> *                                 216.276+-0.665      !     218.573+-0.869         ! definitely 1.0106x slower
   <geometric>                                    183.507+-0.727      ?     184.606+-0.748         ? might be 1.0060x slower
   <harmonic>                                     156.375+-0.960      ?     156.857+-0.972         ? might be 1.0031x slower

                                                     TipOfTree               Contradiction                                   
JSRegress:
   adapt-to-double-divide                         22.5815+-0.0980           22.5376+-0.0987        
   aliased-arguments-getbyval                      0.8388+-0.0075            0.8373+-0.0080        
   allocate-big-object                             2.4910+-0.0247            2.4831+-0.0231        
   arity-mismatch-inlining                         0.7810+-0.0226            0.7801+-0.0209        
   array-access-polymorphic-structure              6.8076+-0.0927     !      9.8191+-0.1541        ! definitely 1.4424x slower
   array-nonarray-polymorhpic-access             208.2232+-1.7012          206.1913+-2.5074        
   array-with-double-add                           5.9616+-0.0696     ^      4.8444+-0.0616        ^ definitely 1.2306x faster
   array-with-double-increment                     4.1665+-0.0557     !      4.4680+-0.0296        ! definitely 1.0724x slower
   array-with-double-mul-add                       6.6468+-0.0591     ^      5.4096+-0.0620        ^ definitely 1.2287x faster
   array-with-double-sum                           7.8875+-0.0867     ?      7.9348+-0.0899        ?
   array-with-int32-add-sub                       10.6629+-0.1743     ^      9.0435+-0.0596        ^ definitely 1.1791x faster
   array-with-int32-or-double-sum                  7.9765+-0.0788            7.9585+-0.0814        
   big-int-mul                                     4.8110+-0.0410     ?      4.8239+-0.0447        ?
   boolean-test                                    4.3786+-0.0744     ?      4.3801+-0.0733        ?
   branch-fold                                    16.8321+-0.0927     ^     16.0685+-0.0509        ^ definitely 1.0475x faster
   cast-int-to-double                             13.9602+-0.2909     ?     13.9681+-0.1137        ?
   cell-argument                                  14.8679+-0.3763           14.7883+-0.3283        
   cfg-simplify                                    3.9907+-0.0474     ?      3.9913+-0.0460        ?
   cmpeq-obj-to-obj-other                         11.0875+-0.1210           10.9272+-0.1400          might be 1.0147x faster
   constant-test                                   8.5756+-0.0743     ?      8.6536+-0.1151        ?
   direct-arguments-getbyval                       0.7381+-0.0078            0.7374+-0.0110        
   double-pollution-getbyval                      10.7537+-0.0889     ?     10.7694+-0.1040        ?
   double-pollution-putbyoffset                    5.2980+-0.0916            5.2534+-0.0944        
   empty-string-plus-int                          10.9229+-0.2046           10.8586+-0.1730        
   external-arguments-getbyval                     1.9137+-0.0093     ?      1.9269+-0.0174        ?
   external-arguments-putbyval                     3.1420+-0.0140     ?      3.1456+-0.0187        ?
   Float32Array-matrix-mult                       13.8483+-0.1442     !     15.4967+-0.1396        ! definitely 1.1190x slower
   fold-double-to-int                             22.0320+-0.2780           21.9370+-0.2127        
   function-dot-apply                              3.1075+-0.0131     !      3.1888+-0.0093        ! definitely 1.0262x slower
   function-test                                   5.0288+-0.1250            4.9206+-0.1135          might be 1.0220x faster
   get-by-id-chain-from-try-block                  6.7285+-0.1203     ?      6.7771+-0.2094        ?
   HashMap-put-get-iterate-keys                   84.3518+-0.6405     ?     84.4359+-0.3590        ?
   HashMap-put-get-iterate                        91.7142+-1.1229     ^     89.6102+-0.7194        ^ definitely 1.0235x faster
   HashMap-string-put-get-iterate                 71.7668+-0.4054     ?     73.2522+-2.0352        ? might be 1.0207x slower
   imul-double-only                                    ERROR                     ERROR             
   imul-int-only                                       ERROR                     ERROR             
   imul-mixed                                          ERROR                     ERROR             
   indexed-properties-in-objects                   4.4767+-0.0614            4.4299+-0.0245          might be 1.0106x faster
   inline-arguments-access                         1.2572+-0.0135            1.2533+-0.0125        
   inline-arguments-local-escape                  23.1570+-0.2717           23.1368+-0.2998        
   inline-get-scoped-var                           6.5491+-0.0637     ?      6.5619+-0.0753        ?
   inlined-put-by-id-transition                   16.4308+-0.2398     ?     16.6107+-0.2369        ? might be 1.0109x slower
   int-or-other-abs-then-get-by-val                9.0039+-0.1037            8.8921+-0.0731          might be 1.0126x faster
   int-or-other-abs-zero-then-get-by-val          41.2373+-0.1009           41.1927+-0.0688        
   int-or-other-add-then-get-by-val               10.2194+-0.1230           10.1548+-0.0743        
   int-or-other-add                               10.4464+-0.0546           10.4157+-0.0628        
   int-or-other-div-then-get-by-val                6.3523+-0.0906            6.3444+-0.0845        
   int-or-other-max-then-get-by-val                7.3454+-0.0919            7.3285+-0.0874        
   int-or-other-min-then-get-by-val                7.3951+-0.0898            7.3428+-0.0936        
   int-or-other-mod-then-get-by-val                6.0404+-0.0677     ?      6.1222+-0.0923        ? might be 1.0135x slower
   int-or-other-mul-then-get-by-val                6.5141+-0.0974            6.4980+-0.0841        
   int-or-other-neg-then-get-by-val                8.1016+-0.1216     ?      8.1052+-0.1123        ?
   int-or-other-neg-zero-then-get-by-val          40.4480+-0.1461           40.3960+-0.1960        
   int-or-other-sub-then-get-by-val               10.2778+-0.1147           10.2004+-0.0978        
   int-or-other-sub                                8.2392+-0.0968            8.2276+-0.0900        
   int-overflow-local                             11.7439+-0.1222     ?     11.7661+-0.1422        ?
   Int16Array-bubble-sort                         49.2737+-0.1166     !     49.6635+-0.0889        ! definitely 1.0079x slower
   Int16Array-load-int-mul                         1.9216+-0.0082            1.9207+-0.0089        
   Int8Array-load                                  4.7805+-0.0712     ?      4.8260+-0.0521        ?
   integer-divide                                 15.3376+-0.1156           15.2889+-0.1000        
   integer-modulo                                  1.9826+-0.0113            1.9793+-0.0151        
   make-indexed-storage                            3.7250+-0.0521            3.7218+-0.0329        
   method-on-number                               25.0239+-0.3131     ?     25.2970+-0.3052        ? might be 1.0109x slower
   negative-zero-divide                            0.3283+-0.0141            0.3269+-0.0132        
   negative-zero-modulo                            0.3240+-0.0191            0.3231+-0.0217        
   negative-zero-negate                            0.3164+-0.0305            0.3068+-0.0189          might be 1.0312x faster
   nested-function-parsing-random                390.6321+-14.0313         384.7706+-13.2177         might be 1.0152x faster
   nested-function-parsing                        47.9052+-1.0062     ?     48.5271+-1.2418        ? might be 1.0130x slower
   new-array-buffer-dead                           3.7386+-0.0550     ^      3.6640+-0.0179        ^ definitely 1.0204x faster
   new-array-buffer-push                          10.1991+-0.1749     !     10.5612+-0.1535        ! definitely 1.0355x slower
   new-array-dead                                 28.4129+-0.1548           28.3287+-0.1193        
   new-array-push                                  6.8692+-0.0468     !      7.9936+-0.1464        ! definitely 1.1637x slower
   number-test                                     4.4082+-0.0956            4.3131+-0.0838          might be 1.0220x faster
   object-closure-call                            11.3768+-2.0853     ?     11.3838+-2.1588        ?
   object-test                                     4.7962+-0.0641     ?      4.7971+-0.0365        ?
   poly-stricteq                                  91.6223+-0.0886     !     92.6186+-0.6153        ! definitely 1.0109x slower
   polymorphic-structure                          20.6851+-0.1413     ?     20.7164+-0.0741        ?
   polyvariant-monomorphic-get-by-id              12.5826+-0.1150     ?     12.6720+-0.1752        ?
   rare-osr-exit-on-local                         20.0561+-0.1177     ?     20.0706+-0.2016        ?
   register-pressure-from-osr                     31.4160+-0.1148           31.2829+-0.0850        
   simple-activation-demo                         34.5253+-0.2809           34.3046+-0.1543        
   slow-array-profile-convergence                  3.8523+-0.0210            3.8139+-0.0477          might be 1.0101x faster
   slow-convergence                                3.3858+-0.0149     ?      3.3870+-0.0112        ?
   sparse-conditional                              1.3127+-0.0214            1.3047+-0.0191        
   splice-to-remove                               49.5206+-0.2651     !     52.3485+-0.8964        ! definitely 1.0571x slower
   string-concat-object                            2.7242+-0.0200     ?      2.7243+-0.0210        ?
   string-concat-pair-object                       2.6875+-0.0401     ?      2.6877+-0.0566        ?
   string-concat-pair-simple                      17.1435+-0.3281     ?     17.1996+-0.2698        ?
   string-concat-simple                           17.0137+-0.3306           16.9058+-0.2521        
   string-cons-repeat                             10.2293+-0.0874           10.1933+-0.0201        
   string-cons-tower                              10.9699+-0.0536           10.9293+-0.0688        
   string-equality                               108.0268+-3.5476          105.1438+-1.2751          might be 1.0274x faster
   string-hash                                     2.5531+-0.0089     ?      2.5600+-0.0092        ?
   string-repeat-arith                            43.4555+-0.4192           43.1203+-0.1121        
   string-sub                                     88.5814+-0.7647     ^     86.3685+-0.7308        ^ definitely 1.0256x faster
   string-test                                     4.2163+-0.0394     ?      4.2236+-0.0297        ?
   structure-hoist-over-transitions                3.2562+-0.0927            3.1668+-0.0231          might be 1.0282x faster
   tear-off-arguments-simple                       1.7424+-0.0197     ?      1.7456+-0.0132        ?
   tear-off-arguments                              3.2147+-0.0438            3.1765+-0.0084          might be 1.0121x faster
   temporal-structure                             21.0518+-0.1216           20.9959+-0.0868        
   to-int32-boolean                               23.1511+-0.0712     ?     23.2103+-0.1238        ?
   undefined-test                                  4.4847+-0.0295     ?      4.5248+-0.0603        ?

   <arithmetic>                                        ERROR                     ERROR             
   <geometric> *                                       ERROR                     ERROR             
   <harmonic>                                          ERROR                     ERROR             

                                                     TipOfTree               Contradiction                                   
All benchmarks:
   <arithmetic>                                        ERROR                     ERROR             
   <geometric>                                         ERROR                     ERROR             
   <harmonic>                                          ERROR                     ERROR             

                                                     TipOfTree               Contradiction                                   
Geomean of preferred means:
   <scaled-result>                                     ERROR                     ERROR
Comment 4 Filip Pizlo 2013-06-06 12:44:57 PDT
Lol.  It's starting to look that the performance regression was a direct outcome of the same bug as https://bugs.webkit.org/show_bug.cgi?id=117279: anytime we watchpointed the ArrayPrototype, this patch would think that we should force-exit.  The code would do that because it would observe the m_arrayModes going to BOTTOM.

Awesome.

I'm now testing after rebaselining to that patch.
Comment 5 Filip Pizlo 2013-06-06 17:16:43 PDT
Landed in http://trac.webkit.org/changeset/151303.

It was no longer a regression because of the fix to array mode filtering:

Benchmark report for SunSpider, V8Spider, Octane, Kraken, and JSRegress on oldmac (MacPro4,1).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/fourthTier/OpenSource/WebKitBuild/Release/jsc (r151283)
"Contradiction" at /Volumes/Data/fromMiniMe/fourthTier/tertiary/OpenSource/WebKitBuild/Release/jsc (r151283)

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               Contradiction                                   
SunSpider:
   3d-cube                                         6.7439+-0.0845     ?      6.7469+-0.0900        ?
   3d-morph                                        8.5446+-0.1424            8.3622+-0.0982          might be 1.0218x faster
   3d-raytrace                                     8.4732+-0.1492     ?      8.4936+-0.1066        ?
   access-binary-trees                             1.8824+-0.0866            1.8178+-0.0069          might be 1.0355x faster
   access-fannkuch                                 7.7086+-0.0696     ?      7.7295+-0.0840        ?
   access-nbody                                    4.0392+-0.0621            3.9713+-0.0282          might be 1.0171x faster
   access-nsieve                                   4.8007+-0.1030     ?      4.8042+-0.0533        ?
   bitops-3bit-bits-in-byte                        1.7746+-0.0163     ?      1.7783+-0.0223        ?
   bitops-bits-in-byte                             6.6867+-0.0732     ?      6.7443+-0.0721        ?
   bitops-bitwise-and                              2.7754+-0.0470     ?      2.7932+-0.0390        ?
   bitops-nsieve-bits                              4.5253+-0.0254     ?      4.5306+-0.0331        ?
   controlflow-recursive                           2.9993+-0.0308     ?      3.0049+-0.0290        ?
   crypto-aes                                      5.2973+-0.1209            5.2188+-0.0597          might be 1.0150x faster
   crypto-md5                                      3.0494+-0.0274     !      3.1249+-0.0331        ! definitely 1.0248x slower
   crypto-sha1                                     2.8595+-0.0277            2.8562+-0.0215        
   date-format-tofte                              14.9309+-0.2432           14.8696+-0.1967        
   date-format-xparb                               8.4568+-0.1897     ?      8.5309+-0.1872        ?
   math-cordic                                     3.9302+-0.0140     ?      3.9351+-0.0126        ?
   math-partial-sums                              11.8062+-0.0781     ?     11.9156+-0.1170        ?
   math-spectral-norm                              2.7113+-0.0164     ?      2.7188+-0.0150        ?
   regexp-dna                                     12.7505+-0.1725           12.6800+-0.1917        
   string-base64                                   5.0538+-0.0686     ?      5.0899+-0.0581        ?
   string-fasta                                   10.8700+-0.2191           10.7755+-0.1543        
   string-tagcloud                                14.5275+-0.1683           14.4694+-0.2045        
   string-unpack-code                             29.0319+-0.1442           29.0281+-0.1304        
   string-validate-input                           6.4951+-0.1160     ?      6.5691+-0.1130        ? might be 1.0114x slower

   <arithmetic> *                                  7.4125+-0.0549            7.4061+-0.0499          might be 1.0009x faster
   <geometric>                                     5.8437+-0.0360            5.8398+-0.0309          might be 1.0007x faster
   <harmonic>                                      4.7129+-0.0288            4.7064+-0.0175          might be 1.0014x faster

                                                     TipOfTree               Contradiction                                   
V8Spider:
   crypto                                         79.9150+-0.1787     ^     79.5882+-0.1333        ^ definitely 1.0041x faster
   deltablue                                     103.6937+-0.5881     ^    102.1184+-0.2341        ^ definitely 1.0154x faster
   earley-boyer                                   70.4536+-0.2245     ?     70.6261+-0.2324        ?
   raytrace                                       38.0140+-0.2351           37.6969+-0.2100        
   regexp                                        100.2354+-0.1964     !    100.8331+-0.2926        ! definitely 1.0060x slower
   richards                                      112.1393+-1.5756     ?    112.6494+-1.2603        ?
   splay                                          46.9385+-0.3507     ?     47.1421+-0.4130        ?

   <arithmetic>                                   78.7699+-0.2969           78.6649+-0.2259          might be 1.0013x faster
   <geometric> *                                  73.6062+-0.2248           73.4965+-0.2196          might be 1.0015x faster
   <harmonic>                                     68.0515+-0.2086           67.9239+-0.2386          might be 1.0019x faster

                                                     TipOfTree               Contradiction                                   
Octane and V8v7:
   encrypt                                        0.46747+-0.00065    ?     0.46902+-0.00505       ?
   decrypt                                        8.63819+-0.05217          8.60522+-0.01010       
   deltablue                             x2       0.57594+-0.00334          0.57307+-0.00420       
   earley                                         0.87832+-0.00701    !     0.89916+-0.00289       ! definitely 1.0237x slower
   boyer                                         13.12776+-0.17097         13.00711+-0.08348       
   raytrace                              x2       4.50568+-0.03941          4.50558+-0.06929       
   regexp                                x2      32.38359+-0.33513    ?    32.63562+-0.38478       ?
   richards                              x2       0.30839+-0.00109    ?     0.31108+-0.00324       ?
   splay                                 x2       0.64421+-0.01645          0.63132+-0.00956         might be 1.0204x faster
   navier-stokes                         x2      10.83006+-0.02664         10.81908+-0.00918       
   closure                                        0.32072+-0.03548    ?     0.32499+-0.03585       ? might be 1.0133x slower
   jquery                                         4.58813+-0.55443          4.56708+-0.55385       
   gbemu                                 x2     141.26124+-1.88930    ?   142.34676+-2.30909       ?
   box2d                                 x2      32.94576+-0.09921         32.89076+-0.14888       

V8v7:
   <arithmetic>                                   7.60047+-0.04404    ?     7.62075+-0.05040       ? might be 1.0027x slower
   <geometric> *                                  2.43418+-0.01190          2.43332+-0.00934         might be 1.0004x faster
   <harmonic>                                     0.92879+-0.00474    ?     0.92925+-0.00388       ? might be 1.0005x slower

Octane including V8v7:
   <arithmetic>                                  21.58774+-0.19318    ?    21.69541+-0.23157       ? might be 1.0050x slower
   <geometric> *                                  4.18320+-0.04437    ?     4.18610+-0.04786       ? might be 1.0007x slower
   <harmonic>                                     1.06211+-0.01711    ?     1.06474+-0.01796       ? might be 1.0025x slower

                                                     TipOfTree               Contradiction                                   
Kraken:
   ai-astar                                       495.391+-3.625            492.529+-0.441         
   audio-beat-detection                           242.645+-1.712      ?     242.788+-1.125         ?
   audio-dft                                      309.118+-0.929            307.690+-0.668         
   audio-fft                                      143.424+-0.168            143.291+-0.433         
   audio-oscillator                               246.658+-5.896            246.646+-5.829         
   imaging-darkroom                               286.055+-0.954            285.988+-0.794         
   imaging-desaturate                             159.915+-0.131      ^     157.728+-0.133         ^ definitely 1.0139x faster
   imaging-gaussian-blur                          401.955+-0.609      ^     399.957+-0.599         ^ definitely 1.0050x faster
   json-parse-financial                            80.617+-0.267             80.538+-0.308         
   json-stringify-tinderbox                        98.695+-0.244      !      99.172+-0.222         ! definitely 1.0048x slower
   stanford-crypto-aes                             94.071+-0.881      ^      92.821+-0.365         ^ definitely 1.0135x faster
   stanford-crypto-ccm                             97.278+-1.621             94.653+-4.653           might be 1.0277x faster
   stanford-crypto-pbkdf2                         267.936+-0.471      ^     265.244+-0.871         ^ definitely 1.0101x faster
   stanford-crypto-sha256-iterative               116.746+-0.540      ^     115.606+-0.303         ^ definitely 1.0099x faster

   <arithmetic> *                                 217.179+-0.411      ^     216.047+-0.423         ^ definitely 1.0052x faster
   <geometric>                                    184.994+-0.287      ^     183.825+-0.689         ^ definitely 1.0064x faster
   <harmonic>                                     158.375+-0.349            157.147+-0.995           might be 1.0078x faster

                                                     TipOfTree               Contradiction                                   
JSRegress:
   adapt-to-double-divide                         22.5415+-0.0932           22.5261+-0.0910        
   aliased-arguments-getbyval                      0.8373+-0.0088     ?      0.8400+-0.0057        ?
   allocate-big-object                             2.4917+-0.0265            2.4871+-0.0263        
   arity-mismatch-inlining                         0.7852+-0.0221     ?      0.7882+-0.0211        ?
   array-access-polymorphic-structure              6.7777+-0.1221     ?      6.8224+-0.0905        ?
   array-nonarray-polymorhpic-access             196.1500+-2.4649          194.8028+-3.3513        
   array-with-double-add                           5.8491+-0.0734     ?      5.9408+-0.0942        ? might be 1.0157x slower
   array-with-double-increment                     4.2003+-0.0751            4.1754+-0.0601        
   array-with-double-mul-add                       6.6502+-0.0659     ?      6.6740+-0.0727        ?
   array-with-double-sum                           7.8929+-0.1029     ?      7.9423+-0.0960        ?
   array-with-int32-add-sub                       10.5938+-0.1123           10.5666+-0.0971        
   array-with-int32-or-double-sum                  7.9892+-0.1018            7.9435+-0.0904        
   big-int-mul                                     4.8157+-0.0563            4.7972+-0.0761        
   boolean-test                                    4.4010+-0.0670     ?      4.4611+-0.0847        ? might be 1.0137x slower
   branch-fold                                    16.1243+-0.0820     !     16.8069+-0.1033        ! definitely 1.0423x slower
   cast-int-to-double                             13.7496+-0.1351     ?     14.0217+-0.1374        ? might be 1.0198x slower
   cell-argument                                  15.0269+-0.2407           14.8682+-0.3627          might be 1.0107x faster
   cfg-simplify                                    3.9815+-0.0604     ?      3.9942+-0.0459        ?
   cmpeq-obj-to-obj-other                         11.0407+-0.2178           10.9462+-0.2614        
   constant-test                                   8.5717+-0.1446     ?      8.5932+-0.1051        ?
   direct-arguments-getbyval                       0.7366+-0.0095            0.7362+-0.0082        
   double-pollution-getbyval                      10.8286+-0.0819           10.7523+-0.0676        
   double-pollution-putbyoffset                    5.4545+-0.0732            5.3304+-0.0732          might be 1.0233x faster
   empty-string-plus-int                          10.8436+-0.1688     ?     10.9394+-0.2026        ?
   external-arguments-getbyval                     1.9179+-0.0098            1.9094+-0.0102        
   external-arguments-putbyval                     3.1204+-0.0229     ?      3.1398+-0.0170        ?
   Float32Array-matrix-mult                       13.7677+-0.1294           13.7527+-0.1955        
   fold-double-to-int                             22.0692+-0.2302           22.0465+-0.2163        
   function-dot-apply                              3.1082+-0.0180     !      3.1837+-0.0123        ! definitely 1.0243x slower
   function-test                                   4.9671+-0.0894            4.8954+-0.0953          might be 1.0147x faster
   get-by-id-chain-from-try-block                  6.8419+-0.1761            6.8050+-0.1478        
   HashMap-put-get-iterate-keys                   85.2540+-0.7066     ?     85.3857+-0.6933        ?
   HashMap-put-get-iterate                        91.5647+-0.9500     ^     89.5862+-0.3902        ^ definitely 1.0221x faster
   HashMap-string-put-get-iterate                 72.0914+-0.4345     ?     72.4170+-0.3853        ?
   imul-double-only                                    ERROR                     ERROR             
   imul-int-only                                       ERROR                     ERROR             
   imul-mixed                                          ERROR                     ERROR             
   indexed-properties-in-objects                   4.4343+-0.0206            4.4291+-0.0129        
   inline-arguments-access                         1.2696+-0.0251            1.2629+-0.0172        
   inline-arguments-local-escape                  23.0177+-0.2022     ?     23.4243+-0.2588        ? might be 1.0177x slower
   inline-get-scoped-var                           6.6154+-0.0906            6.5345+-0.1045          might be 1.0124x faster
   inlined-put-by-id-transition                   16.0892+-0.3542     ?     16.5522+-0.1941        ? might be 1.0288x slower
   int-or-other-abs-then-get-by-val                8.9536+-0.1016     ?      8.9724+-0.1261        ?
   int-or-other-abs-zero-then-get-by-val          40.7369+-0.2497           40.3718+-0.1313        
   int-or-other-add-then-get-by-val               10.2111+-0.0837           10.1787+-0.0750        
   int-or-other-add                               10.5219+-0.1115           10.4488+-0.0910        
   int-or-other-div-then-get-by-val                6.4897+-0.0878            6.4044+-0.0880          might be 1.0133x faster
   int-or-other-max-then-get-by-val                7.2986+-0.0997            7.2736+-0.0807        
   int-or-other-min-then-get-by-val                7.3794+-0.0874            7.3512+-0.0828        
   int-or-other-mod-then-get-by-val                6.2213+-0.0597     ?      6.2661+-0.0863        ?
   int-or-other-mul-then-get-by-val                6.5277+-0.0820     ?      6.5696+-0.0936        ?
   int-or-other-neg-then-get-by-val                8.0659+-0.0965     ?      8.1182+-0.1385        ?
   int-or-other-neg-zero-then-get-by-val          40.3857+-0.2214           40.3225+-0.1354        
   int-or-other-sub-then-get-by-val               10.2645+-0.0929           10.1624+-0.0696          might be 1.0100x faster
   int-or-other-sub                                8.1489+-0.0838     ?      8.2344+-0.1061        ? might be 1.0105x slower
   int-overflow-local                             11.8365+-0.1941           11.7121+-0.0910          might be 1.0106x faster
   Int16Array-bubble-sort                         49.2049+-0.0594     !     49.6925+-0.0914        ! definitely 1.0099x slower
   Int16Array-load-int-mul                         1.9216+-0.0105     ?      1.9319+-0.0200        ?
   Int8Array-load                                  4.8217+-0.0514     ?      4.8218+-0.0374        ?
   integer-divide                                 15.2273+-0.0814     ?     15.2938+-0.1224        ?
   integer-modulo                                  1.9910+-0.0210            1.9898+-0.0158        
   make-indexed-storage                            3.7182+-0.0454     ?      3.7272+-0.0499        ?
   method-on-number                               25.0840+-0.2854     !     26.3358+-0.4089        ! definitely 1.0499x slower
   negative-zero-divide                            0.3307+-0.0153            0.3289+-0.0129        
   negative-zero-modulo                            0.3241+-0.0198     ?      0.3265+-0.0181        ?
   negative-zero-negate                            0.3106+-0.0208            0.3076+-0.0186        
   nested-function-parsing-random                383.3783+-12.3366    ?    383.9648+-13.8544       ?
   nested-function-parsing                        47.9470+-1.0493     ?     48.1746+-1.0443        ?
   new-array-buffer-dead                           3.6712+-0.0183     ?      3.6852+-0.0413        ?
   new-array-buffer-push                          10.3081+-0.1449           10.1844+-0.2018          might be 1.0121x faster
   new-array-dead                                 28.7331+-0.4932           28.5266+-0.2516        
   new-array-push                                  6.8203+-0.0990     ?      6.8390+-0.0460        ?
   number-test                                     4.3645+-0.0623            4.3246+-0.0563        
   object-closure-call                            11.2536+-2.0740           10.1659+-1.9106          might be 1.1070x faster
   object-test                                     4.8110+-0.0592            4.7831+-0.0616        
   poly-stricteq                                  92.2711+-0.9136     ?     92.5784+-0.9485        ?
   polymorphic-structure                          20.7365+-0.0683     ?     20.7606+-0.0799        ?
   polyvariant-monomorphic-get-by-id              12.5152+-0.0945     ?     12.5676+-0.1153        ?
   rare-osr-exit-on-local                         20.1113+-0.1281     ?     20.2976+-0.3495        ?
   register-pressure-from-osr                     31.3390+-0.1381     ?     31.3530+-0.1219        ?
   simple-activation-demo                         34.2942+-0.1194     ?     34.3198+-0.1148        ?
   slow-array-profile-convergence                  3.8538+-0.0277            3.8507+-0.0250        
   slow-convergence                                3.3973+-0.0209     ?      3.4003+-0.0180        ?
   sparse-conditional                              1.3127+-0.0252            1.3068+-0.0196        
   splice-to-remove                               49.6141+-0.1744     !     50.0255+-0.2203        ! definitely 1.0083x slower
   string-concat-object                            2.7395+-0.0541            2.6997+-0.0366          might be 1.0147x faster
   string-concat-pair-object                       2.6336+-0.0271     ?      2.6718+-0.0336        ? might be 1.0145x slower
   string-concat-pair-simple                      16.9388+-0.3235           16.8107+-0.2433        
   string-concat-simple                           17.2701+-0.2618     ?     17.4277+-0.3120        ?
   string-cons-repeat                             10.1685+-0.0338     ?     10.1758+-0.0283        ?
   string-cons-tower                              11.0088+-0.1423           10.8924+-0.0375          might be 1.0107x faster
   string-equality                               104.5272+-0.1960     ?    105.7507+-1.0439        ? might be 1.0117x slower
   string-hash                                     2.5556+-0.0097            2.5554+-0.0098        
   string-repeat-arith                            43.5841+-0.2645           43.4800+-0.2983        
   string-sub                                     87.9012+-1.3839           87.3511+-0.7470        
   string-test                                     4.2173+-0.0187     ?      4.2376+-0.0452        ?
   structure-hoist-over-transitions                3.1807+-0.0267            3.1719+-0.0255        
   tear-off-arguments-simple                       1.7324+-0.0129     ?      1.7438+-0.0159        ?
   tear-off-arguments                              3.1782+-0.0089     ?      3.1786+-0.0073        ?
   temporal-structure                             21.2422+-0.3230           20.9615+-0.0791          might be 1.0134x faster
   to-int32-boolean                               23.1393+-0.0796     ?     23.2634+-0.1537        ?
   undefined-test                                  4.4957+-0.0406     ?      4.5139+-0.0465        ?

   <arithmetic>                                        ERROR                     ERROR             
   <geometric> *                                       ERROR                     ERROR             
   <harmonic>                                          ERROR                     ERROR             

                                                     TipOfTree               Contradiction                                   
All benchmarks:
   <arithmetic>                                        ERROR                     ERROR             
   <geometric>                                         ERROR                     ERROR             
   <harmonic>                                          ERROR                     ERROR             

                                                     TipOfTree               Contradiction                                   
Geomean of preferred means:
   <scaled-result>                                     ERROR                     ERROR
Comment 6 Filip Pizlo 2013-06-06 21:24:52 PDT
Landed in http://trac.webkit.org/changeset/151303