Summary: | Parallel copy phase synchronization should be simplified | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | barraclough, benjamin, ggaren, joepeck, mark.lam, mhahnenb, msaboff, nrotem, oliver, saam, sam | ||||
Priority: | P2 | ||||||
Version: | Other | ||||||
Hardware: | All | ||||||
OS: | All | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 149433 | ||||||
Attachments: |
|
Description
Filip Pizlo
2015-09-23 13:01:29 PDT
Created attachment 261839 [details]
the patch
It doesn't appear to break performance. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on shakezilla (MacBookPro11,3). VMs tested: "TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r190178) "SimplerCopy" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (r190178) Collected 7 samples per benchmark/VM, with 7 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 SimplerCopy SunSpider: 3d-cube 4.6068+-0.1597 4.5579+-0.1425 might be 1.0107x faster 3d-morph 5.2879+-0.0640 ? 5.5467+-0.8172 ? might be 1.0489x slower 3d-raytrace 5.6467+-1.2086 5.2932+-0.1094 might be 1.0668x faster access-binary-trees 2.1460+-0.0585 ? 2.2931+-0.2359 ? might be 1.0686x slower access-fannkuch 5.5025+-0.2037 5.4589+-0.1213 access-nbody 2.4655+-0.0291 ? 2.4715+-0.0178 ? access-nsieve 3.0877+-0.1198 3.0641+-0.1108 bitops-3bit-bits-in-byte 1.1316+-0.0155 ? 1.1618+-0.0478 ? might be 1.0267x slower bitops-bits-in-byte 3.1863+-0.0271 ? 3.2177+-0.0937 ? bitops-bitwise-and 2.0005+-0.0519 1.9917+-0.0223 bitops-nsieve-bits 2.9325+-0.0963 2.8932+-0.0560 might be 1.0136x faster controlflow-recursive 2.3280+-0.0574 ? 2.3518+-0.0763 ? might be 1.0102x slower crypto-aes 3.9299+-0.0996 3.8608+-0.0708 might be 1.0179x faster crypto-md5 2.4344+-0.0144 ? 2.4788+-0.0402 ? might be 1.0183x slower crypto-sha1 2.3917+-0.1201 ? 2.4891+-0.1285 ? might be 1.0407x slower date-format-tofte 6.7194+-0.1563 6.6821+-0.1208 date-format-xparb 4.5997+-0.0607 ? 4.6328+-0.0806 ? math-cordic 2.7423+-0.0223 ? 2.8560+-0.1336 ? might be 1.0415x slower math-partial-sums 4.9322+-0.3239 4.8094+-0.1254 might be 1.0255x faster math-spectral-norm 1.9193+-0.0364 ? 1.9244+-0.1044 ? regexp-dna 6.4719+-0.3636 ? 6.5184+-0.2909 ? string-base64 4.5010+-0.1002 ? 4.5709+-0.1380 ? might be 1.0155x slower string-fasta 5.9127+-0.3313 5.7945+-0.1066 might be 1.0204x faster string-tagcloud 7.9572+-0.1995 ? 8.2157+-0.2725 ? might be 1.0325x slower string-unpack-code 18.1314+-0.2083 ? 18.4776+-0.5513 ? might be 1.0191x slower string-validate-input 4.6374+-0.0564 4.4982+-0.1014 might be 1.0309x faster <arithmetic> 4.5232+-0.0418 ? 4.5427+-0.0408 ? might be 1.0043x slower TipOfTree SimplerCopy LongSpider: 3d-cube 806.5248+-7.5374 ? 812.8152+-3.8147 ? 3d-morph 1490.5118+-5.1652 1487.2630+-4.1903 3d-raytrace 593.5984+-4.2540 589.6819+-4.9816 access-binary-trees 796.2114+-6.0994 790.1585+-7.2759 access-fannkuch 276.3256+-5.3056 273.7230+-2.1260 access-nbody 510.4565+-7.2531 507.9469+-4.7015 access-nsieve 361.7180+-4.7588 ? 371.1830+-12.2112 ? might be 1.0262x slower bitops-3bit-bits-in-byte 33.6308+-0.3478 33.5624+-0.2242 bitops-bits-in-byte 73.3051+-1.2045 ? 74.4926+-2.2603 ? might be 1.0162x slower bitops-nsieve-bits 402.5841+-6.3524 398.9346+-2.6842 controlflow-recursive 426.9473+-4.3439 ? 427.9908+-4.9051 ? crypto-aes 563.8418+-5.1908 553.5446+-9.4107 might be 1.0186x faster crypto-md5 430.4941+-1.2272 ? 432.5428+-9.9144 ? crypto-sha1 636.8109+-9.5903 634.0022+-6.9317 date-format-tofte 507.3705+-17.0923 492.6200+-3.2805 might be 1.0299x faster date-format-xparb 668.9313+-18.6743 652.9143+-8.0341 might be 1.0245x faster hash-map 150.0156+-0.4881 ? 150.7368+-1.1181 ? math-cordic 477.1571+-2.9349 ? 479.3956+-5.8434 ? math-partial-sums 457.6941+-2.2974 454.7710+-2.1381 math-spectral-norm 547.7623+-2.5525 ? 550.0366+-3.1903 ? string-base64 351.1273+-3.3704 ? 351.3577+-4.0313 ? string-fasta 361.6763+-4.8268 ? 399.8184+-95.4427 ? might be 1.1055x slower string-tagcloud 174.5459+-0.9434 ? 176.0378+-2.1130 ? <geometric> 382.7842+-1.0974 ? 383.3441+-3.4251 ? might be 1.0015x slower TipOfTree SimplerCopy V8Spider: crypto 47.7449+-1.7614 46.8942+-0.9180 might be 1.0181x faster deltablue 78.7598+-3.0082 78.1335+-4.5379 earley-boyer 41.1656+-1.1882 ? 41.8474+-0.7979 ? might be 1.0166x slower raytrace 31.2718+-1.3254 30.2050+-1.1623 might be 1.0353x faster regexp 62.2937+-1.3522 61.9227+-0.4862 richards 54.0561+-1.5475 53.8316+-0.5816 splay 35.0198+-0.8436 ? 35.4792+-0.9149 ? might be 1.0131x slower <geometric> 47.7854+-0.4611 47.5060+-0.2799 might be 1.0059x faster TipOfTree SimplerCopy Octane: encrypt 0.16585+-0.00355 0.16517+-0.00408 decrypt 2.95342+-0.06095 2.92064+-0.01470 might be 1.0112x faster deltablue x2 0.13783+-0.00099 0.13683+-0.00138 earley 0.30109+-0.00470 0.30066+-0.00264 boyer 4.39896+-0.09210 4.34267+-0.05122 might be 1.0130x faster navier-stokes x2 4.83762+-0.02180 ? 4.85994+-0.03560 ? raytrace x2 0.86590+-0.00994 0.85652+-0.00637 might be 1.0109x faster richards x2 0.09037+-0.00311 0.08875+-0.00090 might be 1.0183x faster splay x2 0.33011+-0.00520 0.32832+-0.00516 regexp x2 25.51087+-0.64549 ^ 24.19394+-0.38241 ^ definitely 1.0544x faster pdfjs x2 36.77092+-0.26829 ? 36.92099+-0.70216 ? mandreel x2 42.43172+-0.12859 ? 42.75683+-0.80521 ? gbemu x2 31.07801+-0.35927 ? 31.74470+-1.75582 ? might be 1.0215x slower closure 0.57592+-0.00281 ? 0.57999+-0.00967 ? jquery 7.31215+-0.04738 7.24567+-0.04556 box2d x2 9.07665+-0.08641 ? 9.10723+-0.04998 ? zlib x2 404.06208+-39.29542 377.93624+-15.09257 might be 1.0691x faster typescript x2 687.69189+-84.54952 646.73190+-4.17103 might be 1.0633x faster <geometric> 5.36482+-0.04605 5.29756+-0.02176 might be 1.0127x faster TipOfTree SimplerCopy Kraken: ai-astar 128.911+-3.045 126.425+-0.734 might be 1.0197x faster audio-beat-detection 50.145+-0.314 49.977+-0.153 audio-dft 96.519+-1.781 96.028+-2.119 audio-fft 34.827+-0.162 34.779+-0.095 audio-oscillator 55.614+-0.412 ? 56.495+-0.697 ? might be 1.0158x slower imaging-darkroom 60.726+-1.613 59.846+-0.212 might be 1.0147x faster imaging-desaturate 49.165+-2.322 ? 49.659+-3.058 ? might be 1.0101x slower imaging-gaussian-blur 86.766+-4.506 86.643+-4.826 json-parse-financial 37.470+-1.977 ? 37.590+-0.433 ? json-stringify-tinderbox 22.365+-0.328 ^ 21.804+-0.172 ^ definitely 1.0257x faster stanford-crypto-aes 39.739+-0.390 ? 39.810+-0.512 ? stanford-crypto-ccm 35.183+-1.209 ? 35.382+-0.847 ? stanford-crypto-pbkdf2 94.332+-0.944 ? 94.583+-0.871 ? stanford-crypto-sha256-iterative 35.942+-0.374 ? 39.109+-7.530 ? might be 1.0881x slower <arithmetic> 59.122+-0.459 ? 59.152+-0.831 ? might be 1.0005x slower TipOfTree SimplerCopy JSRegress: abc-forward-loop-equal 29.2909+-0.2519 29.2413+-0.4313 abc-postfix-backward-loop 28.9085+-0.3038 ? 29.3231+-0.2772 ? might be 1.0143x slower abc-simple-backward-loop 28.9746+-0.3795 28.7208+-0.2567 abc-simple-forward-loop 28.7900+-0.3522 ? 29.4290+-0.8315 ? might be 1.0222x slower abc-skippy-loop 20.7495+-0.1480 ? 20.8391+-0.2599 ? abs-boolean 2.4624+-0.0538 2.4523+-0.0726 adapt-to-double-divide 16.4237+-0.5898 16.1879+-0.2142 might be 1.0146x faster aliased-arguments-getbyval 1.2187+-0.0591 ? 1.2287+-0.0647 ? allocate-big-object 2.5400+-0.1403 2.5067+-0.1234 might be 1.0133x faster arguments-named-and-reflective 10.5999+-0.3343 ? 10.8622+-0.4352 ? might be 1.0247x slower arguments-out-of-bounds 9.2860+-0.1742 9.1801+-0.1875 might be 1.0115x faster arguments-strict-mode 9.5565+-0.3028 ? 9.6215+-0.3615 ? arguments 8.4563+-0.1523 8.4322+-0.1780 arity-mismatch-inlining 0.8413+-0.0192 ? 0.8793+-0.0564 ? might be 1.0452x slower array-access-polymorphic-structure 7.0474+-0.1018 ? 7.1451+-0.1484 ? might be 1.0139x slower array-nonarray-polymorhpic-access 23.2296+-0.6859 23.1494+-0.1563 array-prototype-every 74.2049+-0.3780 74.0306+-0.5201 array-prototype-forEach 73.5342+-1.1745 72.9287+-0.6549 array-prototype-map 79.3030+-0.5786 ? 79.8805+-1.5764 ? array-prototype-reduce 71.0744+-1.7669 70.4683+-0.6373 array-prototype-reduceRight 69.7628+-0.5811 69.7603+-0.3703 array-prototype-some 74.1478+-0.4782 ? 74.5217+-0.7399 ? array-splice-contiguous 21.1046+-0.6938 20.8946+-0.3109 might be 1.0100x faster array-with-double-add 3.4199+-0.0713 ? 3.4201+-0.0364 ? array-with-double-increment 3.2878+-0.5738 3.0587+-0.0508 might be 1.0749x faster array-with-double-mul-add 4.2615+-0.2349 4.1475+-0.0370 might be 1.0275x faster array-with-double-sum 3.3339+-0.2492 3.1572+-0.0138 might be 1.0560x faster array-with-int32-add-sub 5.6240+-0.0601 5.5654+-0.0379 might be 1.0105x faster array-with-int32-or-double-sum 3.2482+-0.0402 ? 3.2688+-0.0661 ? ArrayBuffer-DataView-alloc-large-long-lived 25.6424+-0.2795 25.4470+-0.4336 ArrayBuffer-DataView-alloc-long-lived 11.7547+-0.4335 ? 11.8685+-0.6559 ? ArrayBuffer-Int32Array-byteOffset 3.5063+-0.0361 3.4893+-0.0440 ArrayBuffer-Int8Array-alloc-large-long-lived 26.3487+-1.3932 26.0879+-0.4513 ArrayBuffer-Int8Array-alloc-long-lived-buffer 19.1448+-0.2681 19.1277+-0.3942 ArrayBuffer-Int8Array-alloc-long-lived 11.0219+-0.2097 10.9311+-0.1659 ArrayBuffer-Int8Array-alloc 9.3493+-0.1393 ? 9.6793+-0.5929 ? might be 1.0353x slower arrowfunction-call 10.7087+-0.4045 10.4342+-0.1218 might be 1.0263x faster asmjs_bool_bug 7.4061+-0.0366 ? 7.4671+-0.0629 ? assign-custom-setter-polymorphic 2.4211+-0.0162 ? 2.5650+-0.2266 ? might be 1.0594x slower assign-custom-setter 3.2355+-0.0285 ! 3.4910+-0.1027 ! definitely 1.0790x slower basic-set 7.3646+-0.2442 ? 7.4335+-0.2648 ? big-int-mul 3.4607+-0.0699 3.4341+-0.0570 boolean-test 3.0662+-0.0426 ? 3.0900+-0.0299 ? branch-fold 3.8337+-0.4467 3.6149+-0.0606 might be 1.0605x faster branch-on-string-as-boolean 16.7023+-0.2624 ? 17.0042+-0.6291 ? might be 1.0181x slower by-val-generic 2.4745+-0.0776 ? 2.5827+-0.1093 ? might be 1.0437x slower call-spread-apply 27.5857+-0.4117 ^ 26.5071+-0.3576 ^ definitely 1.0407x faster call-spread-call 20.9957+-0.2922 20.9606+-0.3417 captured-assignments 0.4383+-0.0332 0.4234+-0.0219 might be 1.0350x faster cast-int-to-double 5.0804+-0.0366 ? 5.0811+-0.0406 ? cell-argument 5.7129+-0.2021 ? 5.8072+-0.1578 ? might be 1.0165x slower cfg-simplify 2.8887+-0.0397 2.8880+-0.0506 chain-getter-access 8.3752+-0.1110 ? 8.3876+-0.1681 ? cmpeq-obj-to-obj-other 12.3818+-1.0929 12.2978+-0.9116 constant-test 4.8196+-0.0469 4.8108+-0.0433 create-lots-of-functions 9.9041+-0.7442 9.4430+-0.4256 might be 1.0488x faster cse-new-array-buffer 2.2477+-0.0620 ? 2.3289+-0.0768 ? might be 1.0361x slower cse-new-array 2.4038+-0.1019 2.3606+-0.1486 might be 1.0183x faster DataView-custom-properties 30.3496+-0.3845 30.3494+-0.5030 delay-tear-off-arguments-strictmode 12.1786+-0.1629 ? 12.5185+-0.4135 ? might be 1.0279x slower deltablue-varargs 174.6500+-2.5624 167.0293+-5.2591 might be 1.0456x faster destructuring-arguments 160.7614+-0.3908 ? 160.9450+-2.0588 ? destructuring-parameters-overridden-by-function 0.5034+-0.1258 0.4714+-0.0389 might be 1.0678x faster destructuring-swap 4.7437+-0.0578 ? 4.7577+-0.0329 ? direct-arguments-getbyval 1.2159+-0.0600 ? 1.2191+-0.0353 ? div-boolean-double 5.2720+-0.0246 ? 5.3603+-0.1212 ? might be 1.0168x slower div-boolean 8.0683+-0.0155 ? 8.1302+-0.0590 ? double-get-by-val-out-of-bounds 4.4832+-0.1619 4.4693+-0.0377 double-pollution-getbyval 8.6159+-0.0595 ? 8.6672+-0.0716 ? double-pollution-putbyoffset 3.6610+-0.0713 3.6196+-0.0781 might be 1.0114x faster double-real-use 23.8302+-0.8774 23.5278+-0.2536 might be 1.0129x faster double-to-int32-typed-array-no-inline 2.2619+-0.1052 2.1855+-0.0591 might be 1.0350x faster double-to-int32-typed-array 2.0783+-0.0483 ? 2.1074+-0.0402 ? might be 1.0140x slower double-to-uint32-typed-array-no-inline 2.2650+-0.1063 ? 2.4804+-0.6098 ? might be 1.0951x slower double-to-uint32-typed-array 2.1365+-0.0598 2.0776+-0.0165 might be 1.0283x faster elidable-new-object-dag 33.7245+-0.4850 33.5694+-0.4495 elidable-new-object-roflcopter 32.5374+-0.9342 32.0479+-1.2248 might be 1.0153x faster elidable-new-object-then-call 31.9924+-0.5764 31.3804+-0.6266 might be 1.0195x faster elidable-new-object-tree 37.7877+-0.7565 36.8010+-0.2781 might be 1.0268x faster empty-string-plus-int 4.8326+-0.1322 4.7743+-0.1148 might be 1.0122x faster emscripten-cube2hash 26.9406+-1.2708 ? 27.2435+-1.3094 ? might be 1.0112x slower exit-length-on-plain-object 15.0627+-0.1996 ? 15.0849+-0.1283 ? external-arguments-getbyval 1.3207+-0.0377 ? 1.3348+-0.0975 ? might be 1.0106x slower external-arguments-putbyval 2.1678+-0.0760 2.1130+-0.0159 might be 1.0259x faster fixed-typed-array-storage-var-index 1.2168+-0.0439 1.2096+-0.0487 fixed-typed-array-storage 0.9062+-0.0300 ? 0.9461+-0.0715 ? might be 1.0440x slower Float32Array-matrix-mult 4.0079+-0.0892 3.9881+-0.0332 Float32Array-to-Float64Array-set 46.7083+-0.8988 46.6364+-0.3106 Float64Array-alloc-long-lived 58.2559+-0.7929 ? 58.5363+-2.4889 ? Float64Array-to-Int16Array-set 57.9146+-0.9798 ^ 56.0997+-0.3593 ^ definitely 1.0324x faster fold-double-to-int 12.2489+-0.3241 12.1348+-0.1097 fold-get-by-id-to-multi-get-by-offset-rare-int 10.3458+-0.9533 ? 10.8510+-0.8601 ? might be 1.0488x slower fold-get-by-id-to-multi-get-by-offset 9.8188+-0.9866 ? 9.8557+-0.7272 ? fold-multi-get-by-offset-to-get-by-offset 9.5401+-1.6775 8.7580+-1.3760 might be 1.0893x faster fold-multi-get-by-offset-to-poly-get-by-offset 8.2407+-1.2288 ? 8.3824+-0.9646 ? might be 1.0172x slower fold-multi-put-by-offset-to-poly-put-by-offset 10.0231+-1.4130 9.3829+-1.4289 might be 1.0682x faster fold-multi-put-by-offset-to-put-by-offset 9.8999+-0.5426 ? 10.0218+-0.9530 ? might be 1.0123x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 9.8090+-0.9311 9.2973+-0.5252 might be 1.0550x faster fold-put-by-id-to-multi-put-by-offset 11.3285+-0.7596 10.5679+-1.1031 might be 1.0720x faster fold-put-by-val-with-string-to-multi-put-by-offset 10.9460+-0.7136 10.3527+-0.8432 might be 1.0573x faster fold-put-by-val-with-symbol-to-multi-put-by-offset 10.2523+-1.2310 ? 11.1060+-0.5773 ? might be 1.0833x slower fold-put-structure 8.2571+-0.3890 7.7605+-0.9569 might be 1.0640x faster for-of-iterate-array-entries 11.1105+-0.8075 10.6253+-0.1977 might be 1.0457x faster for-of-iterate-array-keys 3.4193+-0.1602 ? 3.5357+-0.1118 ? might be 1.0340x slower for-of-iterate-array-values 3.3440+-0.1106 3.3114+-0.0306 fround 17.2563+-0.2416 ? 17.4524+-0.3839 ? might be 1.0114x slower ftl-library-inlining-dataview 55.8464+-1.2797 55.6145+-0.5894 ftl-library-inlining 96.1807+-2.4267 ? 96.1826+-1.3364 ? function-call 10.6880+-0.1315 ? 10.8796+-0.4522 ? might be 1.0179x slower function-dot-apply 2.0201+-0.0339 ? 2.1456+-0.1101 ? might be 1.0621x slower function-test 2.7040+-0.0379 ? 2.7538+-0.0883 ? might be 1.0184x slower function-with-eval 98.2649+-1.0629 97.0503+-1.7043 might be 1.0125x faster gcse-poly-get-less-obvious 20.2768+-0.2300 20.1552+-0.1739 gcse-poly-get 21.8574+-2.0592 21.8427+-2.1665 gcse 3.3852+-0.0509 ? 3.4371+-0.0833 ? might be 1.0153x slower get-by-id-bimorphic-check-structure-elimination-simple 2.6190+-0.0793 2.6043+-0.0248 get-by-id-bimorphic-check-structure-elimination 4.8768+-0.4067 4.7976+-0.1040 might be 1.0165x faster get-by-id-chain-from-try-block 2.3911+-0.0195 ? 2.4602+-0.0746 ? might be 1.0289x slower get-by-id-check-structure-elimination 3.9190+-0.0805 3.8919+-0.0497 get-by-id-proto-or-self 15.0061+-0.2393 ? 15.3201+-0.5589 ? might be 1.0209x slower get-by-id-quadmorphic-check-structure-elimination-simple 2.8831+-0.0595 2.8578+-0.0076 get-by-id-self-or-proto 16.0868+-1.1454 15.7521+-0.8850 might be 1.0212x faster get-by-val-out-of-bounds 4.3001+-0.0843 ? 4.3637+-0.0875 ? might be 1.0148x slower get-by-val-with-string-bimorphic-check-structure-elimination-simple 2.7693+-0.1265 2.7472+-0.0602 get-by-val-with-string-bimorphic-check-structure-elimination 5.8756+-0.1169 ? 6.2719+-1.0480 ? might be 1.0675x slower get-by-val-with-string-chain-from-try-block 2.3978+-0.0426 ? 2.4187+-0.0544 ? get-by-val-with-string-check-structure-elimination 5.4771+-0.9104 5.1619+-0.1090 might be 1.0611x faster get-by-val-with-string-proto-or-self 15.4359+-0.4128 ? 15.5901+-0.4725 ? get-by-val-with-string-quadmorphic-check-structure-elimination-simple 3.0632+-0.0802 ? 3.0753+-0.0590 ? get-by-val-with-string-self-or-proto 15.5244+-0.5570 ? 15.6200+-0.7079 ? get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 3.1136+-0.0469 ? 3.1193+-0.0363 ? get-by-val-with-symbol-bimorphic-check-structure-elimination 12.4374+-0.3226 12.3044+-0.0476 might be 1.0108x faster get-by-val-with-symbol-chain-from-try-block 2.4285+-0.0492 2.4226+-0.0575 get-by-val-with-symbol-check-structure-elimination 11.3370+-0.0803 11.3057+-0.0595 get-by-val-with-symbol-proto-or-self 15.8044+-1.0397 15.3847+-0.3259 might be 1.0273x faster get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 3.7572+-0.0695 3.7289+-0.1412 get-by-val-with-symbol-self-or-proto 15.5077+-0.8680 ? 15.5218+-0.4196 ? get_callee_monomorphic 2.3931+-0.1482 ? 2.4240+-0.2206 ? might be 1.0129x slower get_callee_polymorphic 3.3796+-0.0538 ? 3.3957+-0.0607 ? getter-no-activation 4.7756+-0.1620 ? 4.8209+-0.1954 ? getter-prototype 7.9553+-0.1798 7.8676+-0.1820 might be 1.0111x faster getter-richards 114.4554+-3.1492 ? 117.0092+-7.1145 ? might be 1.0223x slower getter 5.6112+-0.5977 ? 5.6985+-0.7275 ? might be 1.0156x slower global-object-access-with-mutating-structure 5.5878+-0.0851 5.5606+-0.0381 global-var-const-infer-fire-from-opt 0.8550+-0.1036 ? 0.8568+-0.0248 ? global-var-const-infer 0.6744+-0.0474 ? 0.6852+-0.0692 ? might be 1.0160x slower hard-overflow-check-equal 26.3220+-0.3158 26.0347+-0.3547 might be 1.0110x faster hard-overflow-check 26.0702+-0.5483 25.9783+-0.4692 HashMap-put-get-iterate-keys 24.6407+-1.2264 ? 25.7842+-1.4817 ? might be 1.0464x slower HashMap-put-get-iterate 27.7595+-0.4656 ? 28.7734+-1.5644 ? might be 1.0365x slower HashMap-string-put-get-iterate 24.3329+-0.9523 ? 25.1225+-0.9640 ? might be 1.0325x slower hoist-make-rope 8.2794+-0.5418 8.0986+-0.2458 might be 1.0223x faster hoist-poly-check-structure-effectful-loop 3.6240+-0.0669 3.6035+-0.0345 hoist-poly-check-structure 3.1359+-0.0698 ? 3.1682+-0.0297 ? might be 1.0103x slower imul-double-only 7.8790+-0.1065 ^ 7.6018+-0.1456 ^ definitely 1.0365x faster imul-int-only 8.6405+-1.0568 8.5202+-1.0161 might be 1.0141x faster imul-mixed 6.7825+-0.1936 ? 7.0551+-0.3388 ? might be 1.0402x slower in-four-cases 16.7106+-0.1052 ? 16.9877+-0.6978 ? might be 1.0166x slower in-one-case-false 9.4248+-0.3483 ? 9.7199+-0.4318 ? might be 1.0313x slower in-one-case-true 9.5416+-0.4148 9.4884+-0.3864 in-two-cases 9.8127+-0.4207 9.7338+-0.3794 indexed-properties-in-objects 2.7619+-0.0730 ? 2.7777+-0.1053 ? infer-closure-const-then-mov-no-inline 3.5571+-0.0316 ? 3.5628+-0.0262 ? infer-closure-const-then-mov 18.8195+-1.6992 18.1579+-0.1862 might be 1.0364x faster infer-closure-const-then-put-to-scope-no-inline 10.7948+-0.1175 10.7935+-0.2284 infer-closure-const-then-put-to-scope 22.4336+-0.1729 21.8477+-0.7741 might be 1.0268x faster infer-closure-const-then-reenter-no-inline 44.5476+-0.2699 ? 44.5909+-0.5155 ? infer-closure-const-then-reenter 22.5002+-0.5749 22.3549+-0.6665 infer-constant-global-property 3.4095+-0.0483 ? 3.5322+-0.2081 ? might be 1.0360x slower infer-constant-property 2.6366+-0.0572 ? 2.6710+-0.0889 ? might be 1.0131x slower infer-one-time-closure-ten-vars 7.7269+-0.0991 ? 7.7857+-0.3246 ? infer-one-time-closure-two-vars 7.3508+-0.2985 7.3454+-0.1439 infer-one-time-closure 7.2490+-0.1240 ? 7.6134+-0.6736 ? might be 1.0503x slower infer-one-time-deep-closure 10.6600+-0.3181 ? 10.9124+-0.4181 ? might be 1.0237x slower inline-arguments-access 3.6725+-0.1022 ? 3.7020+-0.1309 ? inline-arguments-aliased-access 3.6824+-0.1537 3.6730+-0.1435 inline-arguments-local-escape 3.9278+-0.1494 3.7156+-0.1875 might be 1.0571x faster inline-get-scoped-var 4.4772+-0.1177 ? 4.5824+-0.1404 ? might be 1.0235x slower inlined-put-by-id-transition 9.0572+-0.4341 ? 9.1814+-0.2520 ? might be 1.0137x slower inlined-put-by-val-with-string-transition 42.0760+-0.9686 41.2617+-0.7890 might be 1.0197x faster inlined-put-by-val-with-symbol-transition 42.0807+-2.0945 41.3245+-0.9707 might be 1.0183x faster int-or-other-abs-then-get-by-val 4.4799+-0.0883 ? 4.5099+-0.0433 ? int-or-other-abs-zero-then-get-by-val 15.4758+-0.1341 15.2149+-0.1606 might be 1.0171x faster int-or-other-add-then-get-by-val 4.1504+-0.0394 4.1392+-0.1189 int-or-other-add 4.9601+-0.0653 4.9435+-0.0601 int-or-other-div-then-get-by-val 3.7211+-0.0282 3.7194+-0.0310 int-or-other-max-then-get-by-val 3.8299+-0.0227 ? 3.9193+-0.1329 ? might be 1.0233x slower int-or-other-min-then-get-by-val 3.7796+-0.0747 3.7438+-0.0887 int-or-other-mod-then-get-by-val 3.5474+-0.1336 3.5237+-0.0705 int-or-other-mul-then-get-by-val 3.6521+-0.1323 3.5604+-0.0318 might be 1.0258x faster int-or-other-neg-then-get-by-val 4.0101+-0.1527 ? 4.0367+-0.0521 ? int-or-other-neg-zero-then-get-by-val 15.2120+-0.1742 ? 15.3709+-0.3071 ? might be 1.0104x slower int-or-other-sub-then-get-by-val 4.0359+-0.0892 ? 4.0783+-0.0635 ? might be 1.0105x slower int-or-other-sub 3.4502+-0.0642 ? 3.4586+-0.0366 ? int-overflow-local 4.1135+-0.0796 4.0951+-0.0620 Int16Array-alloc-long-lived 42.7177+-0.6583 ? 42.7979+-1.6350 ? Int16Array-bubble-sort-with-byteLength 17.9657+-1.2828 17.1049+-0.1713 might be 1.0503x faster Int16Array-bubble-sort 16.5497+-0.1241 ? 16.6368+-0.4677 ? Int16Array-load-int-mul 1.4314+-0.0352 ? 1.4368+-0.0358 ? Int16Array-to-Int32Array-set 43.8738+-0.6019 ? 44.9498+-0.7330 ? might be 1.0245x slower Int32Array-alloc-large 11.7731+-0.3195 11.7378+-0.3111 Int32Array-alloc-long-lived 47.5672+-0.6586 47.4658+-0.3459 Int32Array-alloc 2.8657+-0.1482 ? 2.9772+-0.2368 ? might be 1.0389x slower Int32Array-Int8Array-view-alloc 5.7738+-0.0904 ? 5.8859+-0.0787 ? might be 1.0194x slower int52-spill 4.6054+-0.0609 ? 4.7147+-0.0858 ? might be 1.0237x slower Int8Array-alloc-long-lived 38.4620+-0.9246 ? 38.5030+-1.0774 ? Int8Array-load-with-byteLength 3.3737+-0.0611 3.3386+-0.0262 might be 1.0105x faster Int8Array-load 3.3407+-0.0574 3.3323+-0.0377 integer-divide 10.4285+-0.3568 10.3052+-0.1283 might be 1.0120x faster integer-modulo 1.5995+-0.0409 ? 1.6427+-0.0341 ? might be 1.0270x slower is-boolean-fold-tricky 3.7596+-0.0425 ? 3.8194+-0.0706 ? might be 1.0159x slower is-boolean-fold 2.6426+-0.0424 ? 2.6653+-0.0647 ? is-function-fold-tricky-internal-function 9.5196+-0.0648 ^ 9.2604+-0.0557 ^ definitely 1.0280x faster is-function-fold-tricky 4.0642+-0.1212 4.0316+-0.0695 is-function-fold 2.6663+-0.0416 2.6534+-0.0329 is-number-fold-tricky 3.9563+-0.0526 ? 3.9619+-0.0631 ? is-number-fold 2.6060+-0.0335 ? 2.6422+-0.0525 ? might be 1.0139x slower is-object-or-null-fold-functions 2.6612+-0.0200 ? 2.6955+-0.0561 ? might be 1.0129x slower is-object-or-null-fold-less-tricky 4.0122+-0.1273 ? 4.0399+-0.0883 ? is-object-or-null-fold-tricky 4.8239+-0.1388 ? 4.9986+-0.4129 ? might be 1.0362x slower is-object-or-null-fold 2.6735+-0.0593 ? 2.6879+-0.0543 ? is-object-or-null-trickier-function 4.0330+-0.0970 ? 4.0359+-0.0516 ? is-object-or-null-trickier-internal-function 9.9395+-0.0488 ^ 9.7594+-0.1285 ^ definitely 1.0185x faster is-object-or-null-tricky-function 4.0571+-0.1638 ? 4.0601+-0.0873 ? is-object-or-null-tricky-internal-function 7.3042+-0.0684 ? 7.3685+-0.0503 ? is-string-fold-tricky 3.9042+-0.0678 ? 3.9486+-0.0589 ? might be 1.0114x slower is-string-fold 2.7141+-0.2381 2.6730+-0.0898 might be 1.0154x faster is-undefined-fold-tricky 3.3299+-0.0581 ? 3.3855+-0.0927 ? might be 1.0167x slower is-undefined-fold 2.6330+-0.0473 ? 2.6586+-0.0537 ? JSONP-negative-0 0.2381+-0.0078 ? 0.2599+-0.0262 ? might be 1.0915x slower large-int-captured 4.1347+-0.1500 ? 4.1491+-0.0918 ? large-int-neg 14.0885+-0.1412 13.8504+-0.2462 might be 1.0172x faster large-int 13.3239+-0.3419 12.8732+-0.3660 might be 1.0350x faster load-varargs-elimination 20.0030+-0.3366 ? 20.6173+-1.0109 ? might be 1.0307x slower logical-not-weird-types 3.0168+-0.0576 ? 3.2283+-0.4695 ? might be 1.0701x slower logical-not 4.4597+-0.0861 4.4459+-0.0772 lots-of-fields 9.5946+-0.5361 9.5804+-0.3701 make-indexed-storage 2.8472+-0.0768 2.7432+-0.2598 might be 1.0379x faster make-rope-cse 3.6068+-0.0560 3.5902+-0.0555 marsaglia-larger-ints 31.9777+-1.3056 31.5342+-0.7006 might be 1.0141x faster marsaglia-osr-entry 20.8884+-0.3287 ? 21.0343+-0.5124 ? math-with-out-of-bounds-array-values 21.0923+-0.2329 21.0239+-0.2126 max-boolean 2.6145+-0.0441 ? 2.6518+-0.0190 ? might be 1.0143x slower method-on-number 15.5202+-0.3466 15.3531+-0.1645 might be 1.0109x faster min-boolean 2.6285+-0.0256 ? 2.6629+-0.0238 ? might be 1.0131x slower minus-boolean-double 3.0596+-0.0338 3.0466+-0.0460 minus-boolean 2.3084+-0.0178 ? 2.3501+-0.0292 ? might be 1.0181x slower misc-strict-eq 28.0663+-0.3649 27.8726+-0.5915 mod-boolean-double 11.0457+-0.1520 ? 11.1507+-0.1755 ? mod-boolean 8.2859+-0.1167 8.2548+-0.0746 mul-boolean-double 3.6015+-0.0724 3.5904+-0.0213 mul-boolean 2.8293+-0.0534 2.8045+-0.0503 neg-boolean 3.0720+-0.0198 ? 3.0859+-0.0347 ? negative-zero-divide 0.3470+-0.0170 ? 0.3519+-0.0333 ? might be 1.0142x slower negative-zero-modulo 0.3407+-0.0191 0.3305+-0.0095 might be 1.0308x faster negative-zero-negate 0.3359+-0.0357 0.3314+-0.0163 might be 1.0137x faster nested-function-parsing 44.7364+-0.6112 ? 44.9786+-0.7160 ? new-array-buffer-dead 87.4044+-0.4054 86.7900+-0.2500 new-array-buffer-push 6.2249+-0.2839 6.1732+-0.1837 new-array-dead 14.7286+-0.5775 ? 15.1682+-0.9696 ? might be 1.0299x slower new-array-push 3.5989+-0.1749 3.5541+-0.1698 might be 1.0126x faster no-inline-constructor 30.6550+-0.2777 30.4841+-0.2313 number-test 3.0396+-0.1130 ? 3.0789+-0.1023 ? might be 1.0129x slower object-closure-call 4.9147+-0.0879 ? 4.9553+-0.1556 ? object-get-own-property-symbols-on-large-array 4.3023+-0.1974 4.2792+-0.2210 object-test 2.7103+-0.0938 ? 2.7384+-0.0561 ? might be 1.0103x slower obvious-sink-pathology-taken 98.6867+-0.7214 ^ 96.8860+-0.7973 ^ definitely 1.0186x faster obvious-sink-pathology 94.2371+-1.2849 93.1236+-0.9738 might be 1.0120x faster obviously-elidable-new-object 28.3357+-0.3424 ? 28.8953+-0.6674 ? might be 1.0197x slower plus-boolean-arith 2.3787+-0.0277 ? 2.4194+-0.0814 ? might be 1.0171x slower plus-boolean-double 3.1125+-0.0495 3.0974+-0.0210 plus-boolean 2.5511+-0.0528 ? 2.6612+-0.2974 ? might be 1.0432x slower poly-chain-access-different-prototypes-simple 3.2312+-0.0721 3.2146+-0.0471 poly-chain-access-different-prototypes 3.2588+-0.0481 ? 3.2613+-0.0445 ? poly-chain-access-simpler 3.2520+-0.0781 3.2122+-0.0608 might be 1.0124x faster poly-chain-access 3.2489+-0.0892 3.2281+-0.0464 poly-stricteq 48.9922+-0.3194 ? 49.2879+-0.3495 ? polymorphic-array-call 1.3330+-0.1193 ? 1.3603+-0.1363 ? might be 1.0205x slower polymorphic-get-by-id 2.8274+-0.0227 ? 2.8476+-0.0495 ? polymorphic-put-by-id 27.2638+-0.2322 ? 27.2948+-0.4744 ? polymorphic-put-by-val-with-string 28.6475+-1.8448 27.9189+-0.3355 might be 1.0261x faster polymorphic-put-by-val-with-symbol 28.2116+-0.4654 ? 28.4871+-0.4554 ? polymorphic-structure 12.8629+-0.6405 12.4932+-0.2668 might be 1.0296x faster polyvariant-monomorphic-get-by-id 6.6411+-0.8563 6.5379+-0.6765 might be 1.0158x faster proto-getter-access 8.4104+-0.1599 8.3059+-0.1789 might be 1.0126x faster prototype-access-with-mutating-prototype 5.4453+-0.1293 ? 5.5401+-0.2558 ? might be 1.0174x slower put-by-id-replace-and-transition 8.3075+-0.4522 7.9556+-0.3046 might be 1.0442x faster put-by-id-slightly-polymorphic 2.7157+-0.0687 2.6767+-0.0310 might be 1.0146x faster put-by-id 9.7587+-0.3055 9.5305+-0.1716 might be 1.0239x faster put-by-val-direct 0.3453+-0.0242 ? 0.3479+-0.0132 ? put-by-val-large-index-blank-indexing-type 5.1712+-0.1824 ? 5.3297+-0.1292 ? might be 1.0306x slower put-by-val-machine-int 2.5294+-0.0546 ? 2.5429+-0.0850 ? put-by-val-with-string-replace-and-transition 9.9703+-0.1504 ? 10.1177+-0.1962 ? might be 1.0148x slower put-by-val-with-string-slightly-polymorphic 2.8499+-0.0484 ? 2.8583+-0.0219 ? put-by-val-with-string 10.2775+-0.2806 ? 10.3060+-0.3214 ? put-by-val-with-symbol-replace-and-transition 11.5703+-0.1560 11.5106+-0.1035 put-by-val-with-symbol-slightly-polymorphic 3.1192+-0.0169 ? 3.2715+-0.2284 ? might be 1.0488x slower put-by-val-with-symbol 10.3084+-0.2797 10.0618+-0.2394 might be 1.0245x faster rare-osr-exit-on-local 13.5043+-0.2207 ? 13.5600+-0.2191 ? raytrace-with-empty-try-catch 5.1242+-0.0771 5.0984+-0.0664 raytrace-with-try-catch 9.9599+-0.2545 ? 10.0029+-0.2383 ? register-pressure-from-osr 16.3525+-0.1336 16.2846+-0.1566 repeat-multi-get-by-offset 19.9489+-0.1352 ? 20.1374+-0.3155 ? richards-empty-try-catch 73.8472+-1.3074 73.5354+-0.4946 richards-try-catch 240.1469+-0.3787 ? 241.1603+-1.5579 ? setter-prototype 7.6918+-0.1616 7.6552+-0.1706 setter 5.2097+-0.2218 ! 6.3966+-0.6222 ! definitely 1.2278x slower simple-activation-demo 23.8700+-0.3185 ? 23.9777+-0.3708 ? simple-getter-access 10.6919+-0.2109 ? 10.7034+-0.1640 ? simple-poly-call-nested 8.7935+-0.3779 8.4767+-0.6240 might be 1.0374x faster simple-poly-call 1.3650+-0.0975 1.3198+-0.0690 might be 1.0343x faster sin-boolean 19.9539+-1.9253 19.6818+-1.5924 might be 1.0138x faster singleton-scope 55.2812+-0.3725 55.2665+-0.4382 sink-function 10.3478+-0.5273 9.7851+-0.5019 might be 1.0575x faster sink-huge-activation 17.0866+-0.3606 17.0017+-0.4834 sinkable-new-object-dag 58.2367+-9.4820 53.0164+-0.8474 might be 1.0985x faster sinkable-new-object-taken 43.6810+-0.4197 43.1470+-0.3918 might be 1.0124x faster sinkable-new-object 29.7608+-0.1779 29.5799+-0.1786 slow-array-profile-convergence 2.4820+-0.0414 2.4455+-0.0505 might be 1.0149x faster slow-convergence 2.3202+-0.0371 2.3152+-0.0668 slow-ternaries 17.1083+-0.1143 ? 18.1611+-1.7442 ? might be 1.0615x slower sorting-benchmark 16.7353+-0.4427 16.6885+-0.1704 sparse-conditional 1.1574+-0.0389 ? 1.1797+-0.0352 ? might be 1.0193x slower splice-to-remove 12.2297+-0.2102 12.2131+-0.3484 string-char-code-at 13.1632+-0.6677 12.8324+-0.1190 might be 1.0258x faster string-concat-object 2.2043+-0.0667 ? 2.2474+-0.1012 ? might be 1.0196x slower string-concat-pair-object 2.1790+-0.0835 ? 2.2487+-0.1195 ? might be 1.0320x slower string-concat-pair-simple 9.3000+-0.3669 9.1679+-0.1580 might be 1.0144x faster string-concat-simple 9.3681+-0.1472 9.1521+-0.2261 might be 1.0236x faster string-cons-repeat 6.3437+-0.1073 ? 7.0004+-1.2510 ? might be 1.1035x slower string-cons-tower 6.6958+-0.2429 6.4975+-0.1182 might be 1.0305x faster string-equality 15.0094+-0.2998 14.8135+-0.0971 might be 1.0132x faster string-get-by-val-big-char 6.5172+-0.0746 6.4631+-0.1120 string-get-by-val-out-of-bounds-insane 2.9926+-0.0180 ! 3.0881+-0.0395 ! definitely 1.0319x slower string-get-by-val-out-of-bounds 3.8827+-0.0142 ? 3.9238+-0.0546 ? might be 1.0106x slower string-get-by-val 2.8009+-0.0611 2.7990+-0.0311 string-hash 1.8744+-0.0855 1.8615+-0.0433 string-long-ident-equality 14.4482+-3.4745 12.9947+-0.1056 might be 1.1119x faster string-out-of-bounds 10.0375+-0.2622 ? 10.0978+-0.1275 ? string-repeat-arith 26.6178+-0.1605 ? 27.0045+-1.6697 ? might be 1.0145x slower string-sub 56.0266+-0.5607 ^ 53.4667+-1.6778 ^ definitely 1.0479x faster string-test 2.8793+-0.0604 ? 2.9280+-0.0631 ? might be 1.0169x slower string-var-equality 26.4867+-0.4051 ? 26.7642+-1.1824 ? might be 1.0105x slower structure-hoist-over-transitions 2.3712+-0.0637 ? 2.4470+-0.1509 ? might be 1.0320x slower substring-concat-weird 35.6788+-1.2237 ? 36.2892+-0.9273 ? might be 1.0171x slower substring-concat 39.6727+-0.9346 ? 40.4276+-0.5113 ? might be 1.0190x slower substring 44.7008+-1.4510 44.4321+-0.7775 switch-char-constant 2.6717+-0.0328 ? 2.6959+-0.0497 ? switch-char 6.3148+-0.9957 5.5079+-0.6657 might be 1.1465x faster switch-constant 8.9417+-0.4013 8.7215+-0.5295 might be 1.0252x faster switch-string-basic-big-var 14.3090+-0.1974 14.1459+-0.1460 might be 1.0115x faster switch-string-basic-big 15.0452+-0.1837 ? 15.3206+-0.8682 ? might be 1.0183x slower switch-string-basic-var 13.4061+-0.3221 13.3846+-0.1684 switch-string-basic 12.3425+-0.1855 ? 12.3763+-0.0732 ? switch-string-big-length-tower-var 17.7743+-0.2202 ? 18.0509+-0.3999 ? might be 1.0156x slower switch-string-length-tower-var 13.0208+-0.1228 13.0140+-0.1024 switch-string-length-tower 11.2908+-0.1566 ? 11.4148+-0.2424 ? might be 1.0110x slower switch-string-short 11.2708+-0.1024 ? 11.3105+-0.2159 ? switch 10.8297+-0.4498 10.6068+-0.2603 might be 1.0210x faster tear-off-arguments-simple 3.1353+-0.1466 3.0524+-0.0953 might be 1.0272x faster tear-off-arguments 4.0592+-0.0949 ? 4.1921+-0.1639 ? might be 1.0328x slower temporal-structure 11.7493+-0.1656 ? 11.7869+-0.1664 ? to-int32-boolean 12.6408+-0.7790 12.4426+-0.1950 might be 1.0159x faster try-catch-get-by-val-cloned-arguments 9.6605+-0.1793 ? 9.7231+-0.2585 ? try-catch-get-by-val-direct-arguments 2.1920+-0.0413 ? 2.2626+-0.1829 ? might be 1.0322x slower try-catch-get-by-val-scoped-arguments 4.8569+-0.0818 4.8141+-0.0387 typed-array-get-set-by-val-profiling 26.1845+-0.3549 ? 27.2468+-1.3539 ? might be 1.0406x slower undefined-property-access 218.6985+-3.0125 217.8561+-3.0796 undefined-test 2.9952+-0.0576 ? 3.0469+-0.0849 ? might be 1.0173x slower unprofiled-licm 9.2857+-0.2338 ? 9.3751+-0.5389 ? v8-raytrace-with-empty-try-catch 48.3828+-0.9384 ? 49.8805+-0.5786 ? might be 1.0310x slower v8-raytrace-with-try-catch 61.4597+-0.6558 ? 61.6141+-0.2387 ? varargs-call 12.8796+-0.1907 ? 13.2360+-0.5688 ? might be 1.0277x slower varargs-construct-inline 21.6068+-0.3911 ? 21.6527+-0.2677 ? varargs-construct 20.3935+-0.7583 20.2423+-0.8480 varargs-inline 8.7748+-0.2039 8.6721+-0.1455 might be 1.0118x faster varargs-strict-mode 9.6595+-0.1381 ^ 9.4254+-0.0583 ^ definitely 1.0248x faster varargs 9.7220+-0.0996 9.4913+-0.1587 might be 1.0243x faster weird-inlining-const-prop 2.1073+-0.0763 ? 2.2252+-0.0799 ? might be 1.0560x slower <geometric> 7.9193+-0.0195 ? 7.9220+-0.0189 ? might be 1.0003x slower TipOfTree SimplerCopy AsmBench: bigfib.cpp 453.2217+-5.3773 448.6992+-5.3043 might be 1.0101x faster cray.c 394.3928+-5.5141 391.6582+-2.3295 dry.c 423.3073+-8.5466 422.8090+-8.1942 FloatMM.c 683.0602+-3.1328 ? 686.6721+-3.4707 ? gcc-loops.cpp 3435.7447+-34.5825 ? 3438.7936+-31.1996 ? n-body.c 827.1580+-8.5109 ? 832.0322+-19.1100 ? Quicksort.c 405.5120+-3.8331 ? 412.1637+-15.0812 ? might be 1.0164x slower stepanov_container.cpp 3494.1758+-34.8502 3493.9626+-24.0400 Towers.c 235.9206+-6.1953 235.1775+-3.3175 <geometric> 715.3542+-1.5091 ? 715.8755+-3.1959 ? might be 1.0007x slower TipOfTree SimplerCopy CompressionBench: huffman 60.7457+-1.1442 ? 61.0661+-0.9277 ? arithmetic-simple 273.6670+-2.2331 ? 274.6016+-2.9498 ? arithmetic-precise 241.7605+-1.4816 ? 242.7927+-3.3814 ? arithmetic-complex-precise 244.5236+-1.9916 243.0312+-1.1280 arithmetic-precise-order-0 282.1301+-3.7254 281.2226+-1.8495 arithmetic-precise-order-1 297.8790+-2.2046 297.4447+-1.9831 arithmetic-precise-order-2 342.2154+-1.0000 ? 344.4773+-3.5422 ? arithmetic-simple-order-1 319.5737+-1.6391 ? 321.7959+-5.8819 ? arithmetic-simple-order-2 373.2523+-6.1462 ? 374.5044+-7.6024 ? lz-string 308.4091+-2.6052 ? 309.3480+-4.0112 ? <geometric> 252.1573+-0.9075 ? 252.7075+-1.0807 ? might be 1.0022x slower TipOfTree SimplerCopy Geomean of preferred means: <scaled-result> 49.7423+-0.1133 49.6864+-0.1342 might be 1.0011x faster Comment on attachment 261839 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=261839&action=review r=me > Source/JavaScriptCore/heap/CopiedSpace.cpp:-236 > - m_loanedBlocksCondition.wait(m_loanedBlocksLock); Do we still need m_loadedBlocksCondition? Can't we get rid of it now? (In reply to comment #3) > Comment on attachment 261839 [details] > the patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=261839&action=review > > r=me > > > Source/JavaScriptCore/heap/CopiedSpace.cpp:-236 > > - m_loanedBlocksCondition.wait(m_loanedBlocksLock); > > Do we still need m_loadedBlocksCondition? Can't we get rid of it now? Good catch, I think I can remove it. Landed in http://trac.webkit.org/changeset/190185 Comment on attachment 261839 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=261839&action=review >>> Source/JavaScriptCore/heap/CopiedSpace.cpp:-236 >>> - m_loanedBlocksCondition.wait(m_loanedBlocksLock); >> >> Do we still need m_loadedBlocksCondition? Can't we get rid of it now? > > Good catch, I think I can remove it. Likewise, do we still need the m_loanedBlocksLock and m_numberOfLoanedBlocks counter in release builds? The value appears to only ever checked by this RELEASE_ASSERT (unprotected by the lock) or by other ASSERTs with the lock. Does it provide some form of synchronization or is it now only a debug counter? |