WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
149509
Parallel copy phase synchronization should be simplified
https://bugs.webkit.org/show_bug.cgi?id=149509
Summary
Parallel copy phase synchronization should be simplified
Filip Pizlo
Reported
2015-09-23 13:01:29 PDT
Currently, we don't wait for the copy phase to finish after we have already finished it and the copied space is unable to handle any more copy tasks joining. This means that we have weird hacks to ensure that things don't go to badly when a copy thread starts copying after we already finished copying. It also meant two separate mechanisms for waiting for copying threads to finish - one mechanism in the Heap phase logic and another in the CopiedSpace::doneCopying() method. We can get rid of a lot of the weirdness by just having a sound shutdown sequence: 1) Threads concur on when there is no more work. We already have this; once Heap::getNextBlocksToCopy() returns no work in any thread, it will also return no work in any other thread that asks for work. 2) Main thread waits for the threads to not be copying anymore. 3) Do whatever we need to do after copying finishes. Currently, we do (3) before (2) and so we have weird problems.
Attachments
the patch
(8.51 KB, patch)
2015-09-23 13:08 PDT
,
Filip Pizlo
mark.lam
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2015-09-23 13:08:01 PDT
Created
attachment 261839
[details]
the patch
Filip Pizlo
Comment 2
2015-09-23 13:35:13 PDT
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
Mark Lam
Comment 3
2015-09-23 13:42:40 PDT
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?
Filip Pizlo
Comment 4
2015-09-23 13:47:55 PDT
(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.
Filip Pizlo
Comment 5
2015-09-23 14:00:47 PDT
Landed in
http://trac.webkit.org/changeset/190185
Joseph Pecoraro
Comment 6
2015-10-06 15:41:43 PDT
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?
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug