Bug 149586

Summary: GC copy phase spans too many files
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, benjamin, commit-queue, ggaren, mark.lam, mhahnenb, msaboff, nrotem, oliver, ossy, saam, sam
Priority: P2    
Version: Other   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 149432    
Attachments:
Description Flags
the patch
none
the patch kling: review+

Filip Pizlo
Reported 2015-09-27 10:46:55 PDT
Current the GC copy phase has some code in HeapInlines.h that gets included into every file in WebKit, some code in Heap.cpp, some code in CopyVisitor.cpp, and some in CopyVisitorInlines.h. Also, CopyVisitor has this peculiar idiom where you always use it by first instantiating it, then calling an init method, then doing things, then calling a tear-down method, and then calling some malloc method, and then destructing the CopyVisitor. That's too complicated. Part of the problem is that we have a fairly clever sharding work distribution algorithm that uses Heap as the place where we hold shared state. We don't really have to do that. Because we now use a lambda-based parallelism API (ParallelHelperPool), we could just have the state on the stack, and have all of the functionality in one place.
Attachments
the patch (22.25 KB, patch)
2015-09-27 10:53 PDT, Filip Pizlo
no flags
the patch (21.00 KB, patch)
2015-09-28 23:53 PDT, Filip Pizlo
kling: review+
Filip Pizlo
Comment 1 2015-09-27 10:53:18 PDT
Created attachment 261989 [details] the patch Not yet ready for review since I need to run more tests.
WebKit Commit Bot
Comment 2 2015-09-27 10:56:26 PDT
Attachment 261989 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/Heap.cpp:641: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:645: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/CopyVisitor.h:40: The parameter name "heap" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 3 in 10 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 3 2015-09-28 23:40:38 PDT
The last version of the patch slows down Octane/splay. I'll investigate... 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 (r190302) "ParallelVectorIterator" at /Volumes/Data/quartary/OpenSource/WebKitBuild/Release/jsc (r190302) 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 ParallelVectorIterator SunSpider: 3d-cube 4.7198+-0.3629 4.4973+-0.0583 might be 1.0495x faster 3d-morph 5.3687+-0.3406 5.2551+-0.2312 might be 1.0216x faster 3d-raytrace 5.4230+-0.2569 5.1507+-0.1708 might be 1.0529x faster access-binary-trees 2.1505+-0.0483 ? 2.1868+-0.1030 ? might be 1.0169x slower access-fannkuch 5.4629+-0.0694 ? 5.4673+-0.0533 ? access-nbody 2.6101+-0.2702 2.5481+-0.1092 might be 1.0243x faster access-nsieve 3.0956+-0.1562 3.0051+-0.0381 might be 1.0301x faster bitops-3bit-bits-in-byte 1.1445+-0.0382 ? 1.2137+-0.0976 ? might be 1.0605x slower bitops-bits-in-byte 3.2238+-0.0844 3.2224+-0.0849 bitops-bitwise-and 2.0033+-0.0710 ? 2.1066+-0.2302 ? might be 1.0516x slower bitops-nsieve-bits 2.9574+-0.0439 ? 2.9666+-0.1764 ? controlflow-recursive 2.3386+-0.0750 ? 2.4635+-0.2343 ? might be 1.0534x slower crypto-aes 3.8857+-0.1144 ? 4.0352+-0.2337 ? might be 1.0385x slower crypto-md5 2.5060+-0.0917 ? 2.5598+-0.1586 ? might be 1.0214x slower crypto-sha1 2.4192+-0.1554 ? 2.5396+-0.3143 ? might be 1.0498x slower date-format-tofte 6.5307+-0.1700 ? 6.7145+-0.2908 ? might be 1.0281x slower date-format-xparb 4.8283+-0.2585 4.6191+-0.1358 might be 1.0453x faster math-cordic 2.8214+-0.1112 2.7889+-0.1126 might be 1.0117x faster math-partial-sums 4.7613+-0.1672 4.6622+-0.0444 might be 1.0213x faster math-spectral-norm 1.9011+-0.0435 ? 1.9155+-0.0357 ? regexp-dna 5.9851+-0.1017 5.9785+-0.0597 string-base64 4.3509+-0.0973 ? 4.5108+-0.2447 ? might be 1.0368x slower string-fasta 5.8706+-0.0838 ? 5.8842+-0.3663 ? string-tagcloud 7.9868+-0.1685 7.9612+-0.1245 string-unpack-code 18.5650+-0.9484 ? 18.8600+-0.7487 ? might be 1.0159x slower string-validate-input 4.5596+-0.1195 4.4879+-0.0511 might be 1.0160x faster <arithmetic> 4.5181+-0.0335 ? 4.5231+-0.0661 ? might be 1.0011x slower TipOfTree ParallelVectorIterator LongSpider: 3d-cube 806.5286+-10.9772 800.6581+-7.9082 3d-morph 1488.3861+-8.4161 1486.2430+-4.5600 3d-raytrace 593.6773+-4.5456 ? 596.5057+-6.3147 ? access-binary-trees 788.3520+-4.1456 ? 791.7157+-4.7713 ? access-fannkuch 273.2931+-3.8264 ? 273.9457+-3.5773 ? access-nbody 507.1519+-3.9987 507.0606+-2.5119 access-nsieve 361.1972+-9.5092 ? 361.5741+-8.9620 ? bitops-3bit-bits-in-byte 35.1540+-1.3661 34.1175+-0.6946 might be 1.0304x faster bitops-bits-in-byte 75.4170+-1.8178 74.7498+-2.4062 bitops-nsieve-bits 402.8913+-7.0871 402.6664+-4.2827 controlflow-recursive 424.9516+-3.5355 424.2087+-2.7112 crypto-aes 558.5502+-12.2380 557.5879+-3.6967 crypto-md5 431.8592+-3.1391 ? 432.3088+-2.3650 ? crypto-sha1 624.1000+-10.7727 615.5404+-2.8211 might be 1.0139x faster date-format-tofte 501.8983+-9.4399 495.6991+-2.4300 might be 1.0125x faster date-format-xparb 659.6085+-12.7646 656.1720+-5.6042 hash-map 148.3479+-1.6938 147.7510+-1.2404 math-cordic 475.0909+-1.0715 474.5952+-1.5610 math-partial-sums 456.0489+-4.0120 ? 456.6125+-3.1241 ? math-spectral-norm 548.1241+-2.7451 ? 548.1714+-4.4251 ? string-base64 357.0710+-3.8468 ? 357.1678+-4.1928 ? string-fasta 365.1264+-2.9431 ? 365.6739+-2.8872 ? string-tagcloud 177.1620+-2.9066 176.5926+-3.8678 <geometric> 382.9365+-0.9874 381.7101+-1.3184 might be 1.0032x faster TipOfTree ParallelVectorIterator V8Spider: crypto 48.3882+-0.8375 ? 48.4755+-0.9997 ? deltablue 76.9487+-1.1511 ? 79.1720+-3.4619 ? might be 1.0289x slower earley-boyer 41.9492+-1.4348 ? 42.2403+-1.0588 ? raytrace 31.9180+-0.5899 30.3493+-1.6250 might be 1.0517x faster regexp 62.8758+-2.0589 62.4668+-1.1517 richards 54.0979+-0.8149 ? 56.0048+-2.4996 ? might be 1.0352x slower splay 35.9219+-1.2276 35.9107+-0.6539 <geometric> 48.2420+-0.5888 ? 48.3300+-0.6411 ? might be 1.0018x slower TipOfTree ParallelVectorIterator Octane: encrypt 0.16391+-0.00251 0.16341+-0.00199 decrypt 2.90447+-0.01149 2.90354+-0.01478 deltablue x2 0.14223+-0.00544 ? 0.14566+-0.01236 ? might be 1.0241x slower earley 0.30285+-0.00538 0.30252+-0.00506 boyer 4.31675+-0.06716 4.31633+-0.03843 navier-stokes x2 4.81196+-0.01963 ? 4.82167+-0.01869 ? raytrace x2 0.85262+-0.00451 ? 0.85832+-0.00534 ? richards x2 0.08824+-0.00081 0.08802+-0.00068 splay x2 0.33032+-0.00191 ! 0.34865+-0.00428 ! definitely 1.0555x slower regexp x2 24.07513+-0.22880 23.88162+-0.12267 pdfjs x2 36.95176+-0.46881 ? 37.58974+-0.52199 ? might be 1.0173x slower mandreel x2 42.32431+-0.34138 ? 42.62847+-0.37430 ? gbemu x2 31.41305+-0.25535 ? 33.14016+-3.38958 ? might be 1.0550x slower closure 0.57352+-0.00448 ? 0.57630+-0.00403 ? jquery 7.23065+-0.04616 ? 7.25613+-0.07282 ? box2d x2 9.13888+-0.08414 9.05755+-0.06801 zlib x2 383.49586+-6.18816 ? 386.36110+-4.91962 ? typescript x2 659.80699+-9.13697 ? 676.34664+-9.46067 ? might be 1.0251x slower <geometric> 5.30716+-0.01964 ? 5.36851+-0.06267 ? might be 1.0116x slower TipOfTree ParallelVectorIterator Kraken: ai-astar 127.952+-3.161 127.569+-2.103 audio-beat-detection 49.759+-0.161 ? 50.196+-0.564 ? audio-dft 96.581+-1.775 ? 96.905+-2.104 ? audio-fft 36.030+-2.434 34.911+-0.131 might be 1.0320x faster audio-oscillator 56.216+-0.795 55.926+-0.668 imaging-darkroom 60.720+-1.773 60.051+-0.969 might be 1.0111x faster imaging-desaturate 47.834+-0.177 ? 48.658+-2.248 ? might be 1.0172x slower imaging-gaussian-blur 87.420+-4.314 84.698+-0.267 might be 1.0321x faster json-parse-financial 39.951+-0.940 39.531+-0.815 might be 1.0106x faster json-stringify-tinderbox 22.896+-0.506 22.050+-0.490 might be 1.0384x faster stanford-crypto-aes 41.904+-3.078 40.575+-1.016 might be 1.0327x faster stanford-crypto-ccm 36.384+-0.916 ? 36.593+-0.820 ? stanford-crypto-pbkdf2 94.205+-0.779 ? 94.322+-1.702 ? stanford-crypto-sha256-iterative 36.736+-1.131 36.162+-0.882 might be 1.0159x faster <arithmetic> 59.613+-0.475 59.153+-0.397 might be 1.0078x faster TipOfTree ParallelVectorIterator JSRegress: abc-forward-loop-equal 29.6770+-0.7162 29.4969+-0.6214 abc-postfix-backward-loop 29.8435+-0.8621 29.4561+-0.4044 might be 1.0132x faster abc-simple-backward-loop 29.0502+-0.4882 28.9692+-0.4055 abc-simple-forward-loop 29.4918+-0.8450 28.8855+-0.4949 might be 1.0210x faster abc-skippy-loop 21.0804+-0.3147 ? 21.1904+-0.5192 ? abs-boolean 2.4701+-0.0704 2.4453+-0.0214 might be 1.0102x faster adapt-to-double-divide 16.5219+-0.2640 16.3653+-0.3598 aliased-arguments-getbyval 1.2864+-0.1142 1.1804+-0.0439 might be 1.0899x faster allocate-big-object 2.5823+-0.0736 2.4933+-0.1815 might be 1.0357x faster arguments-named-and-reflective 10.8886+-0.4118 10.8502+-0.8668 arguments-out-of-bounds 9.7872+-0.8404 9.1480+-0.3854 might be 1.0699x faster arguments-strict-mode 9.8865+-0.4604 9.6050+-0.7045 might be 1.0293x faster arguments 8.3978+-0.1832 8.3838+-0.2936 arity-mismatch-inlining 0.8483+-0.0317 ? 0.8514+-0.0148 ? array-access-polymorphic-structure 7.1277+-0.2311 7.0051+-0.1500 might be 1.0175x faster array-nonarray-polymorhpic-access 23.5317+-0.2949 23.2759+-0.4260 might be 1.0110x faster array-prototype-every 76.5602+-1.9625 74.3754+-1.1216 might be 1.0294x faster array-prototype-forEach 73.8797+-1.1221 73.3880+-1.0849 array-prototype-map 84.4649+-5.8481 81.8962+-3.2133 might be 1.0314x faster array-prototype-reduce 72.2394+-1.6381 70.4252+-0.9117 might be 1.0258x faster array-prototype-reduceRight 72.2816+-2.0628 70.2383+-0.8014 might be 1.0291x faster array-prototype-some 74.5935+-0.9776 ? 75.8073+-1.4885 ? might be 1.0163x slower array-splice-contiguous 19.9602+-0.7089 ? 21.7476+-1.7305 ? might be 1.0895x slower array-with-double-add 3.4406+-0.0702 3.3806+-0.0753 might be 1.0178x faster array-with-double-increment 3.0778+-0.0572 ? 3.1352+-0.1672 ? might be 1.0186x slower array-with-double-mul-add 4.3679+-0.4207 4.3239+-0.2821 might be 1.0102x faster array-with-double-sum 3.2352+-0.0837 ? 3.2458+-0.1447 ? array-with-int32-add-sub 5.6926+-0.1260 ? 5.7109+-0.2785 ? array-with-int32-or-double-sum 3.2786+-0.0803 3.2245+-0.0167 might be 1.0168x faster ArrayBuffer-DataView-alloc-large-long-lived 25.8411+-1.1773 ? 26.2293+-1.5782 ? might be 1.0150x slower ArrayBuffer-DataView-alloc-long-lived 11.7835+-0.2069 ? 11.9142+-0.4903 ? might be 1.0111x slower ArrayBuffer-Int32Array-byteOffset 3.5314+-0.0934 3.4839+-0.0423 might be 1.0136x faster ArrayBuffer-Int8Array-alloc-large-long-lived 26.3897+-1.0839 26.1191+-0.8353 might be 1.0104x faster ArrayBuffer-Int8Array-alloc-long-lived-buffer 19.3875+-0.4117 ? 19.5706+-0.7506 ? ArrayBuffer-Int8Array-alloc-long-lived 11.1662+-0.3716 ? 11.4241+-0.6068 ? might be 1.0231x slower ArrayBuffer-Int8Array-alloc 9.3915+-0.1825 ? 9.6046+-0.4490 ? might be 1.0227x slower arrowfunction-call 11.0184+-0.2956 10.8916+-0.1434 might be 1.0116x faster asmjs_bool_bug 7.4454+-0.1004 ? 7.4710+-0.1434 ? assign-custom-setter-polymorphic 2.4972+-0.0503 ? 2.5307+-0.0817 ? might be 1.0134x slower assign-custom-setter 3.4521+-0.0681 ? 3.4799+-0.0731 ? basic-set 7.1288+-0.2272 ? 7.2008+-0.2775 ? might be 1.0101x slower big-int-mul 3.5892+-0.1656 3.5240+-0.1795 might be 1.0185x faster boolean-test 3.0974+-0.1035 ? 3.1780+-0.2850 ? might be 1.0260x slower branch-fold 3.6129+-0.0702 ? 3.6708+-0.1759 ? might be 1.0160x slower branch-on-string-as-boolean 16.8345+-0.6243 ? 16.9973+-0.5976 ? by-val-generic 2.5074+-0.2997 2.4803+-0.1628 might be 1.0109x faster call-spread-apply 27.4395+-1.6954 ? 27.6671+-0.6994 ? call-spread-call 21.2433+-0.9638 ? 21.5852+-0.5724 ? might be 1.0161x slower captured-assignments 0.4233+-0.0286 ? 0.4251+-0.0296 ? cast-int-to-double 5.0602+-0.0672 ? 5.0606+-0.0561 ? cell-argument 5.9829+-0.2760 ? 6.0107+-0.5199 ? cfg-simplify 2.8534+-0.0777 ? 2.8678+-0.0565 ? chain-getter-access 8.2721+-0.1988 ? 8.3705+-0.2343 ? might be 1.0119x slower cmpeq-obj-to-obj-other 12.6757+-0.9236 ? 13.7775+-0.9394 ? might be 1.0869x slower constant-test 4.9523+-0.3058 4.8662+-0.0626 might be 1.0177x faster create-lots-of-functions 9.7955+-0.5147 9.6869+-0.4708 might be 1.0112x faster cse-new-array-buffer 2.2826+-0.1175 ? 2.2896+-0.1332 ? cse-new-array 2.3422+-0.0907 2.3362+-0.1107 DataView-custom-properties 31.6114+-1.5687 30.9164+-0.7174 might be 1.0225x faster delay-tear-off-arguments-strictmode 12.6078+-0.3017 12.5170+-0.4205 deltablue-varargs 174.3766+-3.5076 174.2301+-10.1673 destructuring-arguments 164.7410+-1.4091 ^ 160.4176+-0.7298 ^ definitely 1.0270x faster destructuring-parameters-overridden-by-function 0.4701+-0.0289 ? 0.5084+-0.0713 ? might be 1.0815x slower destructuring-swap 4.7796+-0.1328 ? 4.7808+-0.0599 ? direct-arguments-getbyval 1.2084+-0.0595 1.1816+-0.0867 might be 1.0226x faster div-boolean-double 5.2433+-0.1205 ? 5.2883+-0.1269 ? div-boolean 8.1613+-0.2435 8.0975+-0.0431 double-get-by-val-out-of-bounds 4.4399+-0.0810 ? 4.4649+-0.0369 ? double-pollution-getbyval 8.7924+-0.3001 ? 8.8292+-0.3646 ? double-pollution-putbyoffset 3.9293+-0.4153 3.5732+-0.0651 might be 1.0996x faster double-real-use 24.3079+-1.4268 ? 25.5923+-2.5703 ? might be 1.0528x slower double-to-int32-typed-array-no-inline 2.1471+-0.0544 ? 2.2559+-0.1414 ? might be 1.0507x slower double-to-int32-typed-array 2.0924+-0.0183 ? 2.1481+-0.1496 ? might be 1.0266x slower double-to-uint32-typed-array-no-inline 2.3039+-0.0497 2.2379+-0.0435 might be 1.0295x faster double-to-uint32-typed-array 2.1039+-0.0355 2.0942+-0.0331 elidable-new-object-dag 34.3477+-1.0919 33.5826+-0.7355 might be 1.0228x faster elidable-new-object-roflcopter 33.4452+-1.1616 32.1285+-1.6350 might be 1.0410x faster elidable-new-object-then-call 31.7069+-0.6927 ? 31.7254+-0.6728 ? elidable-new-object-tree 37.1338+-0.7748 ? 37.4034+-0.5054 ? empty-string-plus-int 4.7148+-0.0995 4.6979+-0.0802 emscripten-cube2hash 28.0883+-0.9972 26.8709+-1.2746 might be 1.0453x faster exit-length-on-plain-object 15.3962+-0.3820 ? 15.4000+-0.6944 ? external-arguments-getbyval 1.2035+-0.1038 ? 1.3633+-0.2590 ? might be 1.1328x slower external-arguments-putbyval 2.1987+-0.1281 2.0954+-0.0688 might be 1.0493x faster fixed-typed-array-storage-var-index 1.2307+-0.0409 ? 1.3546+-0.2997 ? might be 1.1007x slower fixed-typed-array-storage 0.9903+-0.1437 0.9811+-0.1574 Float32Array-matrix-mult 4.0787+-0.1666 ? 4.1012+-0.1819 ? Float32Array-to-Float64Array-set 46.6777+-0.9884 ? 47.0780+-0.5295 ? Float64Array-alloc-long-lived 59.3318+-1.7185 59.1440+-1.8451 Float64Array-to-Int16Array-set 56.3639+-0.7206 ? 57.8730+-2.2894 ? might be 1.0268x slower fold-double-to-int 12.1485+-0.2297 ? 12.1792+-0.1018 ? fold-get-by-id-to-multi-get-by-offset-rare-int 11.2668+-1.2814 10.7415+-1.0988 might be 1.0489x faster fold-get-by-id-to-multi-get-by-offset 10.4859+-0.8394 9.5759+-0.3636 might be 1.0950x faster fold-multi-get-by-offset-to-get-by-offset 9.2978+-0.7358 8.2230+-1.2851 might be 1.1307x faster fold-multi-get-by-offset-to-poly-get-by-offset 8.2277+-1.1763 ? 9.3454+-1.0889 ? might be 1.1359x slower fold-multi-put-by-offset-to-poly-put-by-offset 9.5171+-1.4215 ? 9.7660+-0.9283 ? might be 1.0261x slower fold-multi-put-by-offset-to-put-by-offset 10.8831+-1.4569 ? 11.0658+-1.7935 ? might be 1.0168x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 9.2083+-0.2837 9.1522+-0.2898 fold-put-by-id-to-multi-put-by-offset 10.6126+-0.7352 ? 11.3849+-0.7043 ? might be 1.0728x slower fold-put-by-val-with-string-to-multi-put-by-offset 11.7564+-0.5140 11.2516+-0.9656 might be 1.0449x faster fold-put-by-val-with-symbol-to-multi-put-by-offset 11.0328+-1.4508 ? 11.5962+-1.7949 ? might be 1.0511x slower fold-put-structure 7.7807+-0.9301 ? 8.1231+-0.9151 ? might be 1.0440x slower for-of-iterate-array-entries 10.7488+-0.2276 10.6910+-0.2495 for-of-iterate-array-keys 3.4860+-0.1427 3.4175+-0.1811 might be 1.0201x faster for-of-iterate-array-values 3.3741+-0.2295 ? 3.3807+-0.1580 ? fround 17.4179+-0.5303 ? 17.5969+-0.7738 ? might be 1.0103x slower ftl-library-inlining-dataview 56.8091+-1.0227 ? 57.2077+-1.3081 ? ftl-library-inlining 96.8898+-0.6429 ? 97.2562+-1.2549 ? function-call 11.0019+-0.8980 10.9349+-0.6033 function-dot-apply 2.1870+-0.2914 2.1302+-0.1772 might be 1.0267x faster function-test 2.7544+-0.0731 ? 2.7723+-0.0878 ? function-with-eval 92.9128+-0.8352 ? 93.1299+-1.0733 ? gcse-poly-get-less-obvious 20.4478+-0.2368 ? 20.6124+-0.5163 ? gcse-poly-get 22.4891+-0.3689 ? 22.6455+-0.6326 ? gcse 3.4142+-0.1312 ? 3.4217+-0.0569 ? get-by-id-bimorphic-check-structure-elimination-simple 2.6511+-0.1016 2.6334+-0.1101 get-by-id-bimorphic-check-structure-elimination 4.7292+-0.0710 4.6743+-0.0236 might be 1.0118x faster get-by-id-chain-from-try-block 2.4201+-0.0701 ? 2.5405+-0.2013 ? might be 1.0498x slower get-by-id-check-structure-elimination 3.9374+-0.0653 3.8959+-0.0880 might be 1.0106x faster get-by-id-proto-or-self 15.1851+-0.5198 ? 15.7605+-0.8221 ? might be 1.0379x slower get-by-id-quadmorphic-check-structure-elimination-simple 2.9361+-0.0715 2.8616+-0.0474 might be 1.0260x faster get-by-id-self-or-proto 15.2713+-0.3762 ? 15.8104+-0.9283 ? might be 1.0353x slower get-by-val-out-of-bounds 4.3072+-0.0741 ? 4.3229+-0.0975 ? get-by-val-with-string-bimorphic-check-structure-elimination-simple 2.7436+-0.1100 2.7276+-0.0847 get-by-val-with-string-bimorphic-check-structure-elimination 5.9237+-0.2391 ? 5.9936+-0.2462 ? might be 1.0118x slower get-by-val-with-string-chain-from-try-block 2.4171+-0.0455 ? 2.4606+-0.1043 ? might be 1.0180x slower get-by-val-with-string-check-structure-elimination 5.2216+-0.2045 5.1315+-0.1039 might be 1.0176x faster get-by-val-with-string-proto-or-self 15.6932+-0.6184 15.4091+-0.5114 might be 1.0184x faster get-by-val-with-string-quadmorphic-check-structure-elimination-simple 3.1074+-0.0975 3.0829+-0.0893 get-by-val-with-string-self-or-proto 15.2571+-0.2186 ? 15.5173+-0.3712 ? might be 1.0171x slower get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 2.9511+-0.0983 2.9343+-0.0655 get-by-val-with-symbol-bimorphic-check-structure-elimination 12.3140+-0.0812 ? 12.3884+-0.2537 ? get-by-val-with-symbol-chain-from-try-block 2.3986+-0.0296 ? 2.4385+-0.0719 ? might be 1.0166x slower get-by-val-with-symbol-check-structure-elimination 11.0212+-0.1042 10.9775+-0.0785 get-by-val-with-symbol-proto-or-self 15.8233+-0.7195 15.5793+-0.5583 might be 1.0157x faster get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 3.9875+-0.1452 3.9099+-0.0781 might be 1.0198x faster get-by-val-with-symbol-self-or-proto 16.2772+-0.9066 ? 16.3554+-1.2275 ? get_callee_monomorphic 2.3077+-0.0714 ? 2.3846+-0.3107 ? might be 1.0333x slower get_callee_polymorphic 3.6186+-0.4392 3.3800+-0.0898 might be 1.0706x faster getter-no-activation 4.7125+-0.1866 ? 4.8066+-0.2054 ? might be 1.0200x slower getter-prototype 8.0119+-0.0895 7.9814+-0.2099 getter-richards-try-catch 1004.8022+-19.6664 978.9166+-14.5859 might be 1.0264x faster getter-richards 113.0417+-7.5249 110.6151+-3.9557 might be 1.0219x faster getter 5.2949+-0.5255 ? 5.4763+-0.5872 ? might be 1.0343x slower global-object-access-with-mutating-structure 5.6864+-0.2938 5.5027+-0.2135 might be 1.0334x faster global-var-const-infer-fire-from-opt 0.8319+-0.0933 ? 0.8619+-0.0964 ? might be 1.0361x slower global-var-const-infer 0.7117+-0.0699 0.6870+-0.0489 might be 1.0359x faster hard-overflow-check-equal 27.9329+-0.6513 ? 28.2484+-0.8833 ? might be 1.0113x slower hard-overflow-check 27.3933+-0.8720 26.3164+-0.8791 might be 1.0409x faster HashMap-put-get-iterate-keys 26.9686+-1.8430 25.5536+-2.8207 might be 1.0554x faster HashMap-put-get-iterate 28.1602+-0.6819 ? 29.2721+-1.3300 ? might be 1.0395x slower HashMap-string-put-get-iterate 24.0840+-1.0760 ? 25.3236+-1.7875 ? might be 1.0515x slower hoist-make-rope 8.6285+-0.4054 8.5981+-0.4463 hoist-poly-check-structure-effectful-loop 3.5981+-0.1305 ? 3.8786+-0.3253 ? might be 1.0779x slower hoist-poly-check-structure 3.0853+-0.0436 ? 3.2411+-0.1919 ? might be 1.0505x slower imul-double-only 7.6740+-0.4026 ? 7.7243+-0.3599 ? imul-int-only 8.4802+-1.0744 8.2806+-0.9237 might be 1.0241x faster imul-mixed 7.1970+-0.4605 7.1761+-0.6919 in-four-cases 17.0289+-0.5030 ? 17.1070+-0.2652 ? in-one-case-false 9.5100+-0.5981 9.3691+-0.2533 might be 1.0150x faster in-one-case-true 9.4107+-0.3569 ? 9.6008+-0.4339 ? might be 1.0202x slower in-two-cases 10.1095+-0.4431 10.0510+-0.3440 indexed-properties-in-objects 2.7348+-0.0433 ? 2.8201+-0.0960 ? might be 1.0312x slower infer-closure-const-then-mov-no-inline 3.8145+-0.5175 ? 3.8334+-0.5874 ? infer-closure-const-then-mov 18.4396+-0.5674 ? 18.7829+-0.3901 ? might be 1.0186x slower infer-closure-const-then-put-to-scope-no-inline 10.9309+-0.1441 10.8907+-0.1758 infer-closure-const-then-put-to-scope 22.8817+-0.5774 ? 23.0935+-0.3905 ? infer-closure-const-then-reenter-no-inline 47.3127+-0.6095 ? 47.7298+-0.4000 ? infer-closure-const-then-reenter 23.4400+-1.5639 22.8026+-0.8222 might be 1.0280x faster infer-constant-global-property 3.4227+-0.0683 3.3811+-0.0458 might be 1.0123x faster infer-constant-property 2.6168+-0.0299 ? 2.6426+-0.0677 ? infer-one-time-closure-ten-vars 7.8292+-0.4415 7.7040+-0.2297 might be 1.0163x faster infer-one-time-closure-two-vars 7.4386+-0.6323 ? 7.4827+-0.3301 ? infer-one-time-closure 7.2569+-0.1427 ? 7.3122+-0.2519 ? infer-one-time-deep-closure 11.1136+-0.5784 11.0881+-0.6143 inline-arguments-access 3.4675+-0.0939 ? 3.6915+-0.2641 ? might be 1.0646x slower inline-arguments-aliased-access 3.7949+-0.1664 3.6841+-0.1122 might be 1.0301x faster inline-arguments-local-escape 3.7462+-0.2082 3.6034+-0.3012 might be 1.0396x faster inline-get-scoped-var 4.4468+-0.1021 ? 4.5379+-0.2102 ? might be 1.0205x slower inlined-put-by-id-transition 9.2277+-0.5035 8.9526+-0.3671 might be 1.0307x faster inlined-put-by-val-with-string-transition 42.1857+-1.2557 ? 42.7688+-1.3706 ? might be 1.0138x slower inlined-put-by-val-with-symbol-transition 44.4078+-3.3003 43.3343+-1.6856 might be 1.0248x faster int-or-other-abs-then-get-by-val 4.5595+-0.2664 4.4706+-0.1160 might be 1.0199x faster int-or-other-abs-zero-then-get-by-val 15.3921+-0.3038 ? 15.8472+-0.5329 ? might be 1.0296x slower int-or-other-add-then-get-by-val 4.0172+-0.0187 ? 4.0480+-0.0926 ? int-or-other-add 4.8963+-0.0479 ? 4.9362+-0.1123 ? int-or-other-div-then-get-by-val 3.7567+-0.0578 ? 3.7798+-0.0848 ? int-or-other-max-then-get-by-val 3.9105+-0.1643 ? 4.0031+-0.2356 ? might be 1.0237x slower int-or-other-min-then-get-by-val 3.7319+-0.0371 ? 3.9442+-0.2236 ? might be 1.0569x slower int-or-other-mod-then-get-by-val 3.4665+-0.0394 3.4118+-0.0423 might be 1.0160x faster int-or-other-mul-then-get-by-val 3.6628+-0.2355 3.5913+-0.0687 might be 1.0199x faster int-or-other-neg-then-get-by-val 3.9674+-0.0712 ? 4.0123+-0.0783 ? might be 1.0113x slower int-or-other-neg-zero-then-get-by-val 15.2318+-0.2796 ? 15.6262+-0.5351 ? might be 1.0259x slower int-or-other-sub-then-get-by-val 4.1803+-0.2702 4.0664+-0.1616 might be 1.0280x faster int-or-other-sub 3.4561+-0.0830 ? 3.4676+-0.0962 ? int-overflow-local 4.1094+-0.1042 ? 4.1394+-0.0855 ? Int16Array-alloc-long-lived 42.8222+-1.0441 42.3891+-1.2822 might be 1.0102x faster Int16Array-bubble-sort-with-byteLength 17.1483+-0.5543 17.1142+-0.5054 Int16Array-bubble-sort 16.6215+-0.3203 ? 17.0758+-0.3792 ? might be 1.0273x slower Int16Array-load-int-mul 1.4260+-0.0385 ? 1.4661+-0.0772 ? might be 1.0282x slower Int16Array-to-Int32Array-set 44.3347+-0.7585 ? 45.0978+-2.2138 ? might be 1.0172x slower Int32Array-alloc-large 11.9339+-0.4855 ? 12.1517+-1.0080 ? might be 1.0183x slower Int32Array-alloc-long-lived 48.5370+-1.1996 48.1074+-1.2698 Int32Array-alloc 2.8971+-0.5147 2.8558+-0.1982 might be 1.0145x faster Int32Array-Int8Array-view-alloc 5.8100+-0.0570 ? 5.8604+-0.3055 ? int52-spill 4.6993+-0.2533 ? 4.9553+-0.5697 ? might be 1.0545x slower Int8Array-alloc-long-lived 39.3871+-2.0717 38.0007+-0.5861 might be 1.0365x faster Int8Array-load-with-byteLength 3.3352+-0.0155 ? 3.3764+-0.0502 ? might be 1.0124x slower Int8Array-load 3.4974+-0.2933 3.3928+-0.0592 might be 1.0308x faster integer-divide 10.4599+-0.1940 ? 10.8890+-1.3211 ? might be 1.0410x slower integer-modulo 1.5858+-0.1044 ? 1.6018+-0.0314 ? might be 1.0101x slower is-boolean-fold-tricky 3.8574+-0.1665 3.7771+-0.0474 might be 1.0213x faster is-boolean-fold 2.7332+-0.2260 2.6324+-0.0550 might be 1.0383x faster is-function-fold-tricky-internal-function 9.6073+-0.2732 9.3526+-0.1450 might be 1.0272x faster is-function-fold-tricky 4.0649+-0.0585 ? 4.1437+-0.1400 ? might be 1.0194x slower is-function-fold 2.6742+-0.0500 2.6601+-0.0645 is-number-fold-tricky 3.9841+-0.2819 3.9727+-0.1071 is-number-fold 2.6272+-0.0214 ? 2.6305+-0.0405 ? is-object-or-null-fold-functions 2.6556+-0.0606 ? 2.7143+-0.0504 ? might be 1.0221x slower is-object-or-null-fold-less-tricky 4.1639+-0.2697 4.0422+-0.1090 might be 1.0301x faster is-object-or-null-fold-tricky 4.8451+-0.0970 ? 4.9031+-0.2310 ? might be 1.0120x slower is-object-or-null-fold 2.6584+-0.0250 ? 2.7042+-0.0726 ? might be 1.0172x slower is-object-or-null-trickier-function 4.1253+-0.1271 ? 4.1557+-0.2725 ? is-object-or-null-trickier-internal-function 9.7689+-0.2194 ? 9.8943+-0.3791 ? might be 1.0128x slower is-object-or-null-tricky-function 4.0228+-0.0454 ? 4.0255+-0.0678 ? is-object-or-null-tricky-internal-function 7.3601+-0.0425 ? 7.4750+-0.1840 ? might be 1.0156x slower is-string-fold-tricky 4.0060+-0.0894 3.9669+-0.0950 is-string-fold 2.6727+-0.1490 ? 2.6865+-0.0801 ? is-undefined-fold-tricky 3.4399+-0.1369 3.2958+-0.0402 might be 1.0437x faster is-undefined-fold 2.6394+-0.0246 ? 2.6979+-0.0720 ? might be 1.0222x slower JSONP-negative-0 0.2457+-0.0040 ? 0.2545+-0.0184 ? might be 1.0361x slower large-int-captured 4.0660+-0.1125 ? 4.0811+-0.1012 ? large-int-neg 14.2176+-0.4421 ? 14.2315+-0.3477 ? large-int 13.4577+-0.3351 13.1978+-0.4118 might be 1.0197x faster load-varargs-elimination 20.3990+-0.7054 20.2183+-0.2766 logical-not-weird-types 3.1539+-0.2277 3.1475+-0.2718 logical-not 4.2455+-0.1013 ? 4.3793+-0.1858 ? might be 1.0315x slower lots-of-fields 9.2709+-0.1913 ? 9.6934+-0.5642 ? might be 1.0456x slower make-indexed-storage 2.7335+-0.0949 2.6902+-0.3176 might be 1.0161x faster make-rope-cse 3.7055+-0.3128 3.6099+-0.0691 might be 1.0265x faster marsaglia-larger-ints 32.6343+-1.8756 32.4033+-1.2181 marsaglia-osr-entry 21.7427+-0.9894 ? 21.8319+-1.0145 ? math-with-out-of-bounds-array-values 21.8448+-0.8821 21.6093+-0.4812 might be 1.0109x faster max-boolean 2.6380+-0.0385 2.6307+-0.0422 method-on-number 15.6768+-0.2380 15.3625+-0.1640 might be 1.0205x faster min-boolean 2.6856+-0.1192 ? 2.7666+-0.1329 ? might be 1.0302x slower minus-boolean-double 3.1154+-0.0982 3.0609+-0.0258 might be 1.0178x faster minus-boolean 2.3399+-0.0343 2.3380+-0.0679 misc-strict-eq 28.9134+-0.9028 28.6462+-0.7979 mod-boolean-double 10.9830+-0.1200 ? 11.0098+-0.1241 ? mod-boolean 8.4160+-0.2968 8.2483+-0.0656 might be 1.0203x faster mul-boolean-double 3.5726+-0.0384 ? 3.6059+-0.1000 ? mul-boolean 2.8511+-0.0810 2.7853+-0.0341 might be 1.0236x faster neg-boolean 3.0852+-0.0806 ? 3.1302+-0.0981 ? might be 1.0146x slower negative-zero-divide 0.3400+-0.0219 ? 0.3576+-0.0353 ? might be 1.0518x slower negative-zero-modulo 0.3420+-0.0131 0.3394+-0.0149 negative-zero-negate 0.3174+-0.0054 ? 0.3443+-0.0299 ? might be 1.0848x slower nested-function-parsing 44.5689+-0.2881 ? 44.6025+-1.0757 ? new-array-buffer-dead 86.9551+-0.5985 ? 87.9126+-1.0495 ? might be 1.0110x slower new-array-buffer-push 6.0558+-0.1208 ? 6.1197+-0.3972 ? might be 1.0105x slower new-array-dead 16.0193+-0.6076 14.8572+-0.6364 might be 1.0782x faster new-array-push 3.4784+-0.2079 ? 3.5104+-0.2230 ? no-inline-constructor 31.4183+-0.2544 ? 32.1433+-0.8846 ? might be 1.0231x slower number-test 3.0160+-0.0578 ? 3.1002+-0.2561 ? might be 1.0279x slower object-closure-call 4.9472+-0.2748 4.8197+-0.0473 might be 1.0264x faster object-get-own-property-symbols-on-large-array 4.0938+-0.1991 ? 4.1530+-0.3105 ? might be 1.0144x slower object-test 2.7143+-0.0573 ? 2.7381+-0.0879 ? obvious-sink-pathology-taken 97.5793+-1.0778 97.3818+-0.7431 obvious-sink-pathology 93.2603+-0.5603 92.1355+-1.2641 might be 1.0122x faster obviously-elidable-new-object 28.0208+-0.4412 ? 28.2259+-0.4939 ? plus-boolean-arith 2.4407+-0.1074 ? 2.4535+-0.1050 ? plus-boolean-double 3.1010+-0.0526 ? 3.1159+-0.0203 ? plus-boolean 2.5040+-0.0393 ? 2.5258+-0.0837 ? poly-chain-access-different-prototypes-simple 2.5908+-0.0481 2.5719+-0.0559 poly-chain-access-different-prototypes 2.5342+-0.0598 ? 2.5768+-0.0817 ? might be 1.0168x slower poly-chain-access-simpler 2.5961+-0.0582 ? 2.6466+-0.0968 ? might be 1.0194x slower poly-chain-access 2.4767+-0.0321 ? 2.5084+-0.0467 ? might be 1.0128x slower poly-stricteq 49.3317+-0.6505 49.2115+-0.6802 polymorphic-array-call 1.2897+-0.1324 1.2595+-0.0585 might be 1.0240x faster polymorphic-get-by-id 2.8389+-0.0309 2.8055+-0.0338 might be 1.0119x faster polymorphic-put-by-id 27.7979+-0.8278 ? 28.9282+-1.3970 ? might be 1.0407x slower polymorphic-put-by-val-with-string 29.1529+-1.3317 ? 29.4073+-1.2137 ? polymorphic-put-by-val-with-symbol 29.5353+-1.2086 ? 30.4859+-1.8198 ? might be 1.0322x slower polymorphic-structure 12.4118+-0.1201 ? 12.8125+-0.9792 ? might be 1.0323x slower polyvariant-monomorphic-get-by-id 7.3883+-1.1816 7.0173+-1.0364 might be 1.0529x faster proto-getter-access 8.6376+-0.6961 8.3865+-0.2581 might be 1.0299x faster prototype-access-with-mutating-prototype 5.5536+-0.2589 5.5229+-0.2885 put-by-id-replace-and-transition 8.3089+-1.0534 ? 8.4595+-0.7194 ? might be 1.0181x slower put-by-id-slightly-polymorphic 2.7794+-0.2549 2.7279+-0.1127 might be 1.0189x faster put-by-id 9.8139+-0.4846 9.6297+-0.3283 might be 1.0191x faster put-by-val-direct 0.3523+-0.0243 ? 0.3901+-0.1184 ? might be 1.1073x slower put-by-val-large-index-blank-indexing-type 5.2549+-0.2090 ? 5.4855+-0.3573 ? might be 1.0439x slower put-by-val-machine-int 2.4643+-0.1222 ? 2.6445+-0.3289 ? might be 1.0731x slower put-by-val-with-string-replace-and-transition 10.0909+-0.2394 ? 10.1880+-0.3616 ? put-by-val-with-string-slightly-polymorphic 3.0334+-0.1066 ? 3.0686+-0.1899 ? might be 1.0116x slower put-by-val-with-string 10.3218+-0.4999 ? 10.4972+-0.4983 ? might be 1.0170x slower put-by-val-with-symbol-replace-and-transition 11.5505+-0.2809 ? 11.8688+-0.5962 ? might be 1.0276x slower put-by-val-with-symbol-slightly-polymorphic 3.2356+-0.0616 ? 3.3199+-0.2729 ? might be 1.0261x slower put-by-val-with-symbol 10.2814+-0.4428 ? 10.3164+-0.3856 ? rare-osr-exit-on-local 13.4415+-0.0910 ? 13.4814+-0.1624 ? raytrace-with-empty-try-catch 5.3946+-0.3841 5.2033+-0.1937 might be 1.0368x faster raytrace-with-try-catch 9.5641+-0.1392 ? 9.8623+-0.3271 ? might be 1.0312x slower register-pressure-from-osr 16.4407+-0.3720 ? 16.7373+-0.7062 ? might be 1.0180x slower repeat-multi-get-by-offset 21.8018+-0.4516 ? 21.8478+-0.5516 ? richards-empty-try-catch 71.6671+-1.3105 ? 71.8797+-0.9423 ? richards-try-catch 240.5911+-4.0544 239.8602+-1.4102 setter-prototype 7.7629+-0.2271 7.7384+-0.2739 setter 5.8600+-0.4555 5.4999+-0.4255 might be 1.0655x faster simple-activation-demo 24.2722+-0.5836 ? 24.3283+-0.7621 ? simple-getter-access 10.6872+-0.2813 10.5184+-0.2677 might be 1.0160x faster simple-poly-call-nested 8.7399+-0.4254 8.3803+-0.3762 might be 1.0429x faster simple-poly-call 1.3357+-0.1195 1.2462+-0.0341 might be 1.0718x faster sin-boolean 19.6247+-1.9533 ? 20.5963+-1.6036 ? might be 1.0495x slower singleton-scope 64.8293+-1.3862 64.0579+-0.5945 might be 1.0120x faster sink-function 10.7642+-0.5270 ^ 9.7822+-0.4075 ^ definitely 1.1004x faster sink-huge-activation 16.3645+-0.6742 ? 16.5791+-1.0191 ? might be 1.0131x slower sinkable-new-object-dag 53.2177+-0.7142 ? 54.9324+-1.6513 ? might be 1.0322x slower sinkable-new-object-taken 44.1754+-1.1355 ? 44.2919+-0.8080 ? sinkable-new-object 30.2204+-1.1504 30.1243+-0.7862 slow-array-profile-convergence 2.6412+-0.2142 2.4782+-0.1150 might be 1.0658x faster slow-convergence 2.4249+-0.3062 2.3341+-0.0566 might be 1.0389x faster slow-ternaries 17.3737+-0.3820 ? 17.4223+-0.7844 ? sorting-benchmark 17.2174+-0.4645 ? 17.3118+-1.1968 ? sparse-conditional 1.1561+-0.0315 ? 1.1880+-0.0737 ? might be 1.0276x slower splice-to-remove 12.6351+-1.2448 12.3420+-0.6045 might be 1.0238x faster string-char-code-at 13.0364+-0.1796 ? 13.2134+-0.1866 ? might be 1.0136x slower string-concat-object 2.2462+-0.1707 2.1144+-0.0976 might be 1.0624x faster string-concat-pair-object 2.1083+-0.0596 2.0428+-0.0799 might be 1.0320x faster string-concat-pair-simple 9.0213+-0.2967 ? 9.4517+-0.6198 ? might be 1.0477x slower string-concat-simple 9.1240+-0.3749 ? 9.3624+-0.6665 ? might be 1.0261x slower string-cons-repeat 6.5746+-0.2303 6.5534+-0.5195 string-cons-tower 6.4961+-0.0943 ? 6.7939+-0.2833 ? might be 1.0459x slower string-equality 15.0994+-0.2956 14.9392+-0.3086 might be 1.0107x faster string-get-by-val-big-char 6.7433+-0.6510 6.5887+-0.1945 might be 1.0235x faster string-get-by-val-out-of-bounds-insane 3.1051+-0.2297 ? 3.2043+-0.2856 ? might be 1.0320x slower string-get-by-val-out-of-bounds 3.9191+-0.1328 3.9134+-0.0688 string-get-by-val 2.7541+-0.0295 ? 2.7720+-0.0253 ? string-hash 1.8431+-0.0363 ? 1.8436+-0.0523 ? string-long-ident-equality 13.0469+-0.3256 ? 13.1634+-0.4427 ? string-out-of-bounds 10.1843+-0.1470 10.1148+-0.3264 string-repeat-arith 27.3773+-0.6802 27.1851+-1.1514 string-sub 55.6023+-0.9198 ? 55.8103+-0.5386 ? string-test 2.9307+-0.2078 2.9067+-0.1454 string-var-equality 26.9177+-1.1870 26.5417+-0.5691 might be 1.0142x faster structure-hoist-over-transitions 2.3397+-0.0760 2.2908+-0.0882 might be 1.0213x faster substring-concat-weird 35.3231+-1.2600 34.6815+-0.4950 might be 1.0185x faster substring-concat 38.8700+-0.7205 ? 39.8767+-1.0532 ? might be 1.0259x slower substring 44.9980+-1.4145 ? 45.2886+-1.1949 ? switch-char-constant 2.6686+-0.0374 ? 2.6808+-0.0428 ? switch-char 5.5224+-0.3622 ? 6.0460+-1.0145 ? might be 1.0948x slower switch-constant 8.2701+-0.9718 7.5202+-0.7092 might be 1.0997x faster switch-string-basic-big-var 14.4404+-0.3636 14.3031+-0.3766 switch-string-basic-big 14.8748+-0.1993 14.8220+-0.1424 switch-string-basic-var 13.4073+-0.2109 13.1989+-0.3181 might be 1.0158x faster switch-string-basic 12.4755+-0.2809 ? 13.1125+-0.8782 ? might be 1.0511x slower switch-string-big-length-tower-var 17.8474+-0.3683 ? 18.1482+-0.4978 ? might be 1.0169x slower switch-string-length-tower-var 13.5779+-0.4865 13.2005+-0.3800 might be 1.0286x faster switch-string-length-tower 11.7563+-0.7424 11.6149+-0.8558 might be 1.0122x faster switch-string-short 11.3710+-0.1319 ? 11.4155+-0.4367 ? switch 11.2035+-0.7201 10.9507+-0.4702 might be 1.0231x faster tear-off-arguments-simple 3.0854+-0.1353 3.0314+-0.0965 might be 1.0178x faster tear-off-arguments 4.2083+-0.1619 ? 4.4774+-1.2493 ? might be 1.0640x slower temporal-structure 12.1154+-0.5187 11.9754+-0.4179 might be 1.0117x faster to-int32-boolean 12.6476+-0.2737 12.3763+-0.1256 might be 1.0219x faster try-catch-get-by-val-cloned-arguments 9.5428+-0.3446 9.2576+-0.3506 might be 1.0308x faster try-catch-get-by-val-direct-arguments 2.1165+-0.1402 ? 2.1273+-0.3604 ? try-catch-get-by-val-scoped-arguments 4.7640+-0.1703 ? 4.9064+-0.5234 ? might be 1.0299x slower typed-array-get-set-by-val-profiling 26.8555+-0.8235 ? 27.0438+-0.9424 ? undefined-property-access 217.3007+-3.5391 215.7565+-0.4759 undefined-test 2.9516+-0.0506 ? 2.9690+-0.0766 ? unprofiled-licm 9.6862+-0.8713 9.6771+-0.3205 v8-raytrace-with-empty-try-catch 24.0251+-0.8599 ? 24.1824+-0.5494 ? v8-raytrace-with-try-catch 61.9902+-1.2281 60.8697+-1.2398 might be 1.0184x faster varargs-call 13.1579+-0.4265 12.9939+-0.2224 might be 1.0126x faster varargs-construct-inline 22.0255+-0.4269 21.7186+-0.4674 might be 1.0141x faster varargs-construct 20.9310+-0.6121 20.8031+-1.0267 varargs-inline 8.6428+-0.0874 ? 8.8281+-0.1710 ? might be 1.0214x slower varargs-strict-mode 10.0477+-0.2875 9.9021+-0.0542 might be 1.0147x faster varargs 9.8313+-0.1873 9.7568+-0.1145 weird-inlining-const-prop 2.1732+-0.0983 ? 2.3579+-0.2472 ? might be 1.0850x slower <geometric> 8.0380+-0.0198 ? 8.0449+-0.0189 ? might be 1.0009x slower TipOfTree ParallelVectorIterator AsmBench: bigfib.cpp 449.9829+-9.3862 447.4383+-6.5769 cray.c 391.1788+-0.9719 ? 392.3573+-3.9766 ? dry.c 425.5672+-2.2263 422.7777+-5.6461 FloatMM.c 682.1969+-4.8086 681.9141+-4.0784 gcc-loops.cpp 3415.7914+-15.4003 ? 3542.5110+-289.8301 ? might be 1.0371x slower n-body.c 822.2723+-2.8582 ? 825.1013+-5.5596 ? Quicksort.c 400.1668+-3.6393 ? 405.6935+-5.8324 ? might be 1.0138x slower stepanov_container.cpp 3515.0561+-35.7537 3511.6133+-49.5142 Towers.c 234.5948+-5.0463 231.9956+-0.6542 might be 1.0112x faster <geometric> 712.5263+-2.2075 ? 714.8510+-7.4813 ? might be 1.0033x slower TipOfTree ParallelVectorIterator CompressionBench: huffman 59.1395+-0.9240 ? 59.2012+-1.2806 ? arithmetic-simple 271.2191+-3.3708 ? 271.6396+-3.8963 ? arithmetic-precise 242.5250+-1.7289 240.9445+-1.1679 arithmetic-complex-precise 242.5132+-1.4665 242.3458+-2.4149 arithmetic-precise-order-0 281.9789+-3.4864 279.9594+-1.5527 arithmetic-precise-order-1 298.8577+-1.0877 ? 300.7672+-10.2189 ? arithmetic-precise-order-2 343.8937+-3.9892 ? 345.4187+-3.5366 ? arithmetic-simple-order-1 321.0414+-3.7064 317.5757+-1.5001 might be 1.0109x faster arithmetic-simple-order-2 371.5095+-5.9257 368.1855+-0.7561 lz-string 308.1920+-2.9452 ? 308.9833+-4.8797 ? <geometric> 251.2977+-0.5382 250.8272+-1.2069 might be 1.0019x faster TipOfTree ParallelVectorIterator Geomean of preferred means: <scaled-result> 49.8280+-0.0854 ? 49.8628+-0.2417 ? might be 1.0007x slower
Filip Pizlo
Comment 4 2015-09-28 23:52:09 PDT
Duh, the problem is that I removed the call to recycleEvacuatedBlock().
Filip Pizlo
Comment 5 2015-09-28 23:53:10 PDT
Created attachment 262043 [details] the patch With performance/memory fixes. This version restores the call to recycleEvacuatedBlock().
WebKit Commit Bot
Comment 6 2015-09-28 23:55:32 PDT
Attachment 262043 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/Heap.cpp:641: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:645: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 2 in 10 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 7 2015-09-29 08:54:06 PDT
Performance looks OK now: 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 (r190302) "ParallelVectorIterator" at /Volumes/Data/quartary/OpenSource/WebKitBuild/Release/jsc (r190302) 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 ParallelVectorIterator SunSpider: 3d-cube 4.4760+-0.1011 ? 4.5503+-0.1280 ? might be 1.0166x slower 3d-morph 5.2051+-0.1151 ? 5.2645+-0.1730 ? might be 1.0114x slower 3d-raytrace 5.4387+-0.7276 5.1344+-0.0425 might be 1.0593x faster access-binary-trees 2.1580+-0.1263 2.1196+-0.0804 might be 1.0181x faster access-fannkuch 5.5060+-0.0549 5.4628+-0.0489 access-nbody 2.4975+-0.0342 2.4721+-0.0226 might be 1.0103x faster access-nsieve 3.0690+-0.1363 3.0399+-0.0980 bitops-3bit-bits-in-byte 1.1452+-0.0150 ? 1.1590+-0.0248 ? might be 1.0121x slower bitops-bits-in-byte 3.2238+-0.0402 3.1960+-0.0292 bitops-bitwise-and 2.0126+-0.0587 1.9724+-0.0240 might be 1.0204x faster bitops-nsieve-bits 2.9532+-0.0482 ? 3.0289+-0.1853 ? might be 1.0256x slower controlflow-recursive 2.3255+-0.0283 ? 2.3405+-0.0747 ? crypto-aes 3.8658+-0.0404 ? 3.9212+-0.1958 ? might be 1.0143x slower crypto-md5 2.4762+-0.0683 2.4743+-0.0361 crypto-sha1 2.4375+-0.1146 2.3984+-0.1364 might be 1.0163x faster date-format-tofte 6.6451+-0.0606 ? 6.9538+-0.6022 ? might be 1.0465x slower date-format-xparb 4.5715+-0.0765 4.5397+-0.0984 math-cordic 2.7650+-0.0320 ? 2.7802+-0.0505 ? math-partial-sums 4.8819+-0.5450 4.7296+-0.1249 might be 1.0322x faster math-spectral-norm 1.9132+-0.0304 1.9097+-0.0310 regexp-dna 6.0192+-0.1430 5.9832+-0.1069 string-base64 4.3147+-0.0650 ? 4.4003+-0.1752 ? might be 1.0198x slower string-fasta 5.8130+-0.0444 ? 5.8391+-0.1349 ? string-tagcloud 7.9428+-0.0656 ? 8.1255+-0.2620 ? might be 1.0230x slower string-unpack-code 17.9911+-0.3018 ? 18.0786+-0.4590 ? string-validate-input 4.5458+-0.0302 ? 4.7008+-0.2212 ? might be 1.0341x slower <arithmetic> 4.4690+-0.0393 ? 4.4836+-0.0265 ? might be 1.0033x slower TipOfTree ParallelVectorIterator LongSpider: 3d-cube 798.8271+-5.1104 ? 803.5287+-6.3206 ? 3d-morph 1506.4283+-29.4142 1495.5259+-11.5887 3d-raytrace 599.0761+-7.7710 598.4250+-7.8796 access-binary-trees 793.5181+-8.9766 788.1069+-5.8970 access-fannkuch 277.2193+-8.9864 275.4223+-3.5293 access-nbody 508.8670+-7.7075 506.9766+-2.4202 access-nsieve 361.8585+-6.7853 ? 373.0757+-9.6836 ? might be 1.0310x slower bitops-3bit-bits-in-byte 33.5029+-0.2938 ? 34.2511+-1.2225 ? might be 1.0223x slower bitops-bits-in-byte 73.8964+-0.6802 ? 74.3853+-1.1433 ? bitops-nsieve-bits 404.2176+-8.4078 402.2663+-5.8251 controlflow-recursive 428.3780+-4.4866 426.1742+-2.6473 crypto-aes 558.3344+-6.0687 ? 560.8743+-12.3034 ? crypto-md5 432.1639+-4.5533 ? 441.8394+-23.4057 ? might be 1.0224x slower crypto-sha1 639.3575+-17.1097 ? 642.6121+-7.8061 ? date-format-tofte 501.2223+-5.1957 ? 502.2789+-18.7141 ? date-format-xparb 668.5439+-10.6333 ? 725.5767+-59.9340 ? might be 1.0853x slower hash-map 150.1240+-2.4418 ? 150.8898+-2.7840 ? math-cordic 478.6348+-4.9698 476.2370+-2.9685 math-partial-sums 457.1077+-4.6655 ? 458.5506+-5.6254 ? math-spectral-norm 548.8940+-1.9265 ? 551.8439+-6.9814 ? string-base64 358.7466+-5.0325 353.1794+-2.8580 might be 1.0158x faster string-fasta 366.1895+-5.3917 ? 367.6398+-8.4016 ? string-tagcloud 177.7227+-3.5085 ? 179.8787+-2.4627 ? might be 1.0121x slower <geometric> 383.7846+-0.9294 ! 386.2831+-1.4708 ! definitely 1.0065x slower TipOfTree ParallelVectorIterator V8Spider: crypto 47.4623+-1.3045 47.0640+-1.5126 deltablue 77.4427+-2.4629 ? 78.5190+-2.9625 ? might be 1.0139x slower earley-boyer 41.3913+-0.6641 40.9458+-0.8638 might be 1.0109x faster raytrace 31.0310+-1.3919 ? 31.5144+-0.4037 ? might be 1.0156x slower regexp 60.4610+-0.3144 ? 61.8942+-2.9957 ? might be 1.0237x slower richards 54.9540+-2.3860 ? 55.7616+-6.7552 ? might be 1.0147x slower splay 35.3907+-0.7883 ? 35.5698+-1.9180 ? <geometric> 47.6010+-0.6628 ? 47.9159+-0.8198 ? might be 1.0066x slower TipOfTree ParallelVectorIterator Octane: encrypt 0.16423+-0.00231 ? 0.16487+-0.00316 ? decrypt 2.92221+-0.02064 ? 2.93800+-0.02892 ? deltablue x2 0.13891+-0.00388 ? 0.14167+-0.00289 ? might be 1.0199x slower earley 0.30365+-0.00786 0.30313+-0.00460 boyer 4.41469+-0.06999 4.33658+-0.12231 might be 1.0180x faster navier-stokes x2 4.84928+-0.02590 4.83957+-0.02466 raytrace x2 0.85928+-0.00761 ? 0.86164+-0.00734 ? richards x2 0.08910+-0.00107 0.08835+-0.00068 splay x2 0.33515+-0.00598 0.33258+-0.00484 regexp x2 24.09492+-0.15174 23.99685+-0.27603 pdfjs x2 37.19903+-0.39897 36.97696+-0.49196 mandreel x2 43.12332+-1.29720 42.56409+-0.34918 might be 1.0131x faster gbemu x2 31.98209+-1.66746 31.47769+-1.78718 might be 1.0160x faster closure 0.57345+-0.00368 ? 0.57482+-0.00511 ? jquery 7.24384+-0.05257 ? 7.29155+-0.12094 ? box2d x2 9.18229+-0.14855 9.09036+-0.10005 might be 1.0101x faster zlib x2 386.07243+-6.75619 379.10514+-13.25442 might be 1.0184x faster typescript x2 665.86011+-15.97762 663.07286+-22.11981 <geometric> 5.34144+-0.03373 5.31713+-0.02370 might be 1.0046x faster TipOfTree ParallelVectorIterator Kraken: ai-astar 127.322+-0.887 126.497+-1.089 audio-beat-detection 49.981+-0.648 ? 50.102+-0.716 ? audio-dft 97.563+-2.305 97.221+-3.051 audio-fft 34.892+-0.283 ? 35.433+-1.046 ? might be 1.0155x slower audio-oscillator 56.858+-2.899 56.239+-1.918 might be 1.0110x faster imaging-darkroom 59.989+-0.340 ? 60.627+-1.670 ? might be 1.0106x slower imaging-desaturate 47.920+-0.531 47.595+-0.198 imaging-gaussian-blur 85.319+-0.775 ? 86.006+-1.130 ? json-parse-financial 39.151+-0.286 39.001+-0.752 json-stringify-tinderbox 21.598+-0.275 ? 21.740+-0.451 ? stanford-crypto-aes 41.438+-2.584 40.750+-1.356 might be 1.0169x faster stanford-crypto-ccm 34.218+-0.659 ? 35.349+-0.746 ? might be 1.0330x slower stanford-crypto-pbkdf2 94.013+-0.409 93.409+-0.316 stanford-crypto-sha256-iterative 35.968+-0.660 ? 36.285+-0.580 ? <arithmetic> 59.017+-0.463 ? 59.018+-0.319 ? might be 1.0000x slower TipOfTree ParallelVectorIterator JSRegress: abc-forward-loop-equal 29.1121+-0.5965 ? 29.1455+-0.4696 ? abc-postfix-backward-loop 29.3722+-0.5073 28.8387+-0.1417 might be 1.0185x faster abc-simple-backward-loop 28.6260+-0.3652 ? 29.3899+-1.0110 ? might be 1.0267x slower abc-simple-forward-loop 28.9833+-0.2718 28.9671+-0.6357 abc-skippy-loop 20.9405+-0.6247 ? 21.0560+-0.6178 ? abs-boolean 2.4223+-0.0268 ? 2.4348+-0.0307 ? adapt-to-double-divide 16.3673+-0.4261 ? 16.4058+-1.0262 ? aliased-arguments-getbyval 1.2047+-0.0473 ? 1.2391+-0.0615 ? might be 1.0286x slower allocate-big-object 2.5626+-0.0742 2.5096+-0.1418 might be 1.0211x faster arguments-named-and-reflective 10.8996+-1.1279 10.3493+-0.2441 might be 1.0532x faster arguments-out-of-bounds 9.1663+-0.1361 9.1600+-0.1646 arguments-strict-mode 9.3867+-0.4921 ? 9.7508+-0.6504 ? might be 1.0388x slower arguments 8.2552+-0.1409 ? 8.3955+-0.1770 ? might be 1.0170x slower arity-mismatch-inlining 0.8302+-0.0216 ? 0.8476+-0.0174 ? might be 1.0209x slower array-access-polymorphic-structure 7.0699+-0.1042 ? 7.3020+-0.7181 ? might be 1.0328x slower array-nonarray-polymorhpic-access 22.8116+-0.2054 ? 23.2497+-0.8786 ? might be 1.0192x slower array-prototype-every 75.7182+-3.1570 74.6999+-0.9136 might be 1.0136x faster array-prototype-forEach 73.5049+-0.5588 72.8525+-0.4795 array-prototype-map 82.2889+-0.7749 80.9135+-2.3317 might be 1.0170x faster array-prototype-reduce 71.6960+-1.5202 70.0963+-0.6532 might be 1.0228x faster array-prototype-reduceRight 71.9127+-3.8101 ? 72.1363+-3.3234 ? array-prototype-some 73.8372+-0.4430 ? 74.1003+-0.4074 ? array-splice-contiguous 19.5972+-0.4254 ? 19.6080+-0.5108 ? array-with-double-add 3.4896+-0.1196 3.4303+-0.0663 might be 1.0173x faster array-with-double-increment 3.0737+-0.0186 3.0408+-0.0268 might be 1.0108x faster array-with-double-mul-add 4.2914+-0.1765 4.1804+-0.0614 might be 1.0266x faster array-with-double-sum 3.2666+-0.1683 3.1569+-0.0088 might be 1.0348x faster array-with-int32-add-sub 5.9488+-0.6883 5.6540+-0.1033 might be 1.0521x faster array-with-int32-or-double-sum 3.2627+-0.0467 ? 3.3152+-0.1150 ? might be 1.0161x slower ArrayBuffer-DataView-alloc-large-long-lived 25.3457+-0.1960 ? 25.7479+-0.7329 ? might be 1.0159x slower ArrayBuffer-DataView-alloc-long-lived 11.7183+-0.3364 ? 11.7446+-0.4392 ? ArrayBuffer-Int32Array-byteOffset 3.5743+-0.1404 3.5199+-0.0349 might be 1.0154x faster ArrayBuffer-Int8Array-alloc-large-long-lived 25.6548+-0.2841 ? 26.2605+-0.7358 ? might be 1.0236x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 19.9502+-1.5047 19.1771+-0.1552 might be 1.0403x faster ArrayBuffer-Int8Array-alloc-long-lived 11.0955+-0.2835 ? 11.1167+-0.4836 ? ArrayBuffer-Int8Array-alloc 9.2408+-0.0711 ? 9.4263+-0.2532 ? might be 1.0201x slower arrowfunction-call 10.8542+-0.1503 10.8432+-0.3217 asmjs_bool_bug 7.4485+-0.0629 7.3970+-0.0559 assign-custom-setter-polymorphic 2.4996+-0.0410 2.4769+-0.0370 assign-custom-setter 3.3970+-0.0279 ? 3.5472+-0.1427 ? might be 1.0442x slower basic-set 7.2848+-0.3268 7.2317+-0.2186 big-int-mul 3.5149+-0.1919 3.4525+-0.0550 might be 1.0181x faster boolean-test 3.0523+-0.0201 ? 3.0629+-0.0597 ? branch-fold 3.6014+-0.0336 3.5923+-0.0233 branch-on-string-as-boolean 16.4125+-0.2349 16.2785+-0.2122 by-val-generic 2.5175+-0.1216 ? 2.5593+-0.2735 ? might be 1.0166x slower call-spread-apply 26.6446+-0.3987 ? 26.6971+-0.3647 ? call-spread-call 21.2158+-0.6265 20.8985+-0.5462 might be 1.0152x faster captured-assignments 0.4297+-0.0369 0.4250+-0.0223 might be 1.0109x faster cast-int-to-double 5.1125+-0.0397 ? 5.1139+-0.0588 ? cell-argument 6.0601+-0.2094 6.0045+-0.0708 cfg-simplify 2.8971+-0.0668 2.8680+-0.0301 might be 1.0102x faster chain-getter-access 8.3442+-0.1948 ? 8.4343+-0.3932 ? might be 1.0108x slower cmpeq-obj-to-obj-other 12.2571+-0.9320 ? 12.5652+-0.8972 ? might be 1.0251x slower constant-test 4.8120+-0.0636 ? 4.8298+-0.0500 ? create-lots-of-functions 9.9379+-0.8040 9.1459+-0.4150 might be 1.0866x faster cse-new-array-buffer 2.3007+-0.0375 ? 2.3100+-0.0865 ? cse-new-array 2.3294+-0.0855 ? 2.4193+-0.1601 ? might be 1.0386x slower DataView-custom-properties 30.2248+-0.1755 ? 30.6316+-0.5658 ? might be 1.0135x slower delay-tear-off-arguments-strictmode 12.4605+-0.0908 12.2671+-0.3434 might be 1.0158x faster deltablue-varargs 172.8281+-5.3036 ? 176.7958+-3.6378 ? might be 1.0230x slower destructuring-arguments 165.3172+-1.8582 ^ 161.9852+-1.2179 ^ definitely 1.0206x faster destructuring-parameters-overridden-by-function 0.4636+-0.0255 ? 0.4868+-0.0587 ? might be 1.0502x slower destructuring-swap 4.7871+-0.0537 ? 4.8150+-0.0842 ? direct-arguments-getbyval 1.1851+-0.0458 ? 1.2514+-0.0764 ? might be 1.0560x slower div-boolean-double 5.2794+-0.1279 ? 5.3027+-0.1285 ? div-boolean 8.1384+-0.1794 8.0715+-0.0317 double-get-by-val-out-of-bounds 4.6966+-0.5737 4.4523+-0.0915 might be 1.0549x faster double-pollution-getbyval 8.6701+-0.0701 ? 8.7029+-0.1724 ? double-pollution-putbyoffset 3.5848+-0.0842 ? 3.6646+-0.1031 ? might be 1.0223x slower double-real-use 23.5763+-0.4887 ? 23.9912+-1.4961 ? might be 1.0176x slower double-to-int32-typed-array-no-inline 2.2020+-0.0310 ? 2.2128+-0.0415 ? double-to-int32-typed-array 2.0776+-0.0421 ? 2.1418+-0.1169 ? might be 1.0309x slower double-to-uint32-typed-array-no-inline 2.2651+-0.0761 ? 2.3134+-0.1048 ? might be 1.0213x slower double-to-uint32-typed-array 2.2333+-0.2385 2.1851+-0.1203 might be 1.0221x faster elidable-new-object-dag 33.4408+-0.5322 33.2882+-0.3470 elidable-new-object-roflcopter 32.1123+-1.2389 ? 33.0120+-0.6379 ? might be 1.0280x slower elidable-new-object-then-call 32.1181+-0.6399 31.6716+-0.8482 might be 1.0141x faster elidable-new-object-tree 37.8586+-1.6753 36.5401+-0.4071 might be 1.0361x faster empty-string-plus-int 4.7100+-0.1724 ? 5.5265+-0.6847 ? might be 1.1733x slower emscripten-cube2hash 27.0485+-1.6696 ? 28.1802+-1.2500 ? might be 1.0418x slower exit-length-on-plain-object 15.6039+-0.5570 14.9476+-0.2954 might be 1.0439x faster external-arguments-getbyval 1.3576+-0.1639 1.2963+-0.0773 might be 1.0473x faster external-arguments-putbyval 2.1631+-0.1196 2.1323+-0.0178 might be 1.0144x faster fixed-typed-array-storage-var-index 1.2236+-0.0094 ? 1.3030+-0.1568 ? might be 1.0649x slower fixed-typed-array-storage 0.9484+-0.0524 0.9037+-0.0092 might be 1.0494x faster Float32Array-matrix-mult 3.9625+-0.0531 ? 3.9934+-0.0560 ? Float32Array-to-Float64Array-set 47.5383+-3.7964 45.9960+-0.2876 might be 1.0335x faster Float64Array-alloc-long-lived 58.2018+-1.6090 ? 59.3402+-2.6478 ? might be 1.0196x slower Float64Array-to-Int16Array-set 55.6957+-1.5913 55.3457+-0.7925 fold-double-to-int 12.4749+-1.5414 11.9400+-0.2132 might be 1.0448x faster fold-get-by-id-to-multi-get-by-offset-rare-int 10.2129+-0.7225 ? 10.7928+-1.0028 ? might be 1.0568x slower fold-get-by-id-to-multi-get-by-offset 10.9081+-1.2445 10.0770+-0.7065 might be 1.0825x faster fold-multi-get-by-offset-to-get-by-offset 9.4059+-0.4723 ? 9.6368+-1.1170 ? might be 1.0245x slower fold-multi-get-by-offset-to-poly-get-by-offset 8.2180+-1.0274 ? 8.3362+-1.1683 ? might be 1.0144x slower fold-multi-put-by-offset-to-poly-put-by-offset 9.5136+-0.5687 9.2336+-1.7312 might be 1.0303x faster fold-multi-put-by-offset-to-put-by-offset 10.3065+-0.6875 10.1905+-0.4979 might be 1.0114x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 9.1424+-0.1023 9.1179+-0.2423 fold-put-by-id-to-multi-put-by-offset 11.3881+-1.1523 ? 11.9783+-0.9853 ? might be 1.0518x slower fold-put-by-val-with-string-to-multi-put-by-offset 11.9833+-1.7229 11.1740+-1.1187 might be 1.0724x faster fold-put-by-val-with-symbol-to-multi-put-by-offset 10.6434+-1.5013 10.6233+-1.2405 fold-put-structure 8.2535+-0.1997 7.6973+-0.9533 might be 1.0723x faster for-of-iterate-array-entries 10.9053+-0.3246 10.6725+-0.0796 might be 1.0218x faster for-of-iterate-array-keys 3.4251+-0.1287 ? 3.4566+-0.0758 ? for-of-iterate-array-values 3.3857+-0.0983 3.3755+-0.1251 fround 17.2327+-0.1801 ? 17.4142+-0.9514 ? might be 1.0105x slower ftl-library-inlining-dataview 55.9349+-0.7179 ? 56.0762+-0.8952 ? ftl-library-inlining 97.3609+-1.7316 97.1164+-2.0733 function-call 10.7308+-0.1899 ? 10.8166+-0.4631 ? function-dot-apply 2.1641+-0.2495 2.0436+-0.0291 might be 1.0590x faster function-test 2.7477+-0.0624 ? 2.7927+-0.1224 ? might be 1.0164x slower function-with-eval 97.0897+-0.6721 ! 99.2897+-1.1061 ! definitely 1.0227x slower gcse-poly-get-less-obvious 20.7380+-1.2587 19.9685+-0.2858 might be 1.0385x faster gcse-poly-get 21.8378+-0.2322 ? 22.9421+-1.1203 ? might be 1.0506x slower gcse 3.4908+-0.2148 3.4118+-0.0770 might be 1.0231x faster get-by-id-bimorphic-check-structure-elimination-simple 2.5835+-0.0211 ? 2.6098+-0.0408 ? might be 1.0102x slower get-by-id-bimorphic-check-structure-elimination 4.6686+-0.0344 ? 4.7674+-0.0879 ? might be 1.0212x slower get-by-id-chain-from-try-block 2.4127+-0.0695 ? 2.4134+-0.0484 ? get-by-id-check-structure-elimination 3.9170+-0.0545 3.8957+-0.0329 get-by-id-proto-or-self 15.5020+-0.9044 ? 15.5521+-0.7342 ? get-by-id-quadmorphic-check-structure-elimination-simple 2.8836+-0.0265 2.8647+-0.0364 get-by-id-self-or-proto 15.0330+-0.4155 ? 15.5348+-0.8611 ? might be 1.0334x slower get-by-val-out-of-bounds 4.3211+-0.0515 ? 4.3563+-0.0484 ? get-by-val-with-string-bimorphic-check-structure-elimination-simple 2.7186+-0.0544 ? 2.7768+-0.1135 ? might be 1.0214x slower get-by-val-with-string-bimorphic-check-structure-elimination 5.8315+-0.0494 ? 5.9183+-0.1920 ? might be 1.0149x slower get-by-val-with-string-chain-from-try-block 2.3723+-0.0129 ! 2.5110+-0.1250 ! definitely 1.0585x slower get-by-val-with-string-check-structure-elimination 5.0906+-0.0422 ? 5.1766+-0.1880 ? might be 1.0169x slower get-by-val-with-string-proto-or-self 15.5871+-0.8635 14.9418+-0.2238 might be 1.0432x faster get-by-val-with-string-quadmorphic-check-structure-elimination-simple 3.0837+-0.0597 ? 3.0986+-0.0654 ? get-by-val-with-string-self-or-proto 15.9916+-1.1109 15.5327+-0.4303 might be 1.0295x faster get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 2.9184+-0.0403 ? 2.9277+-0.0831 ? get-by-val-with-symbol-bimorphic-check-structure-elimination 12.4183+-0.1692 12.2113+-0.0710 might be 1.0170x faster get-by-val-with-symbol-chain-from-try-block 2.3992+-0.0450 2.3866+-0.0264 get-by-val-with-symbol-check-structure-elimination 10.9339+-0.0379 ? 10.9662+-0.0624 ? get-by-val-with-symbol-proto-or-self 15.4903+-0.7557 15.2866+-0.5816 might be 1.0133x faster get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 3.9407+-0.0226 3.9239+-0.0743 get-by-val-with-symbol-self-or-proto 15.8197+-0.6311 ? 15.9622+-0.7394 ? get_callee_monomorphic 2.4690+-0.1326 ? 2.5161+-0.2868 ? might be 1.0191x slower get_callee_polymorphic 3.4029+-0.0853 3.3582+-0.0859 might be 1.0133x faster getter-no-activation 4.7528+-0.1306 4.6845+-0.0176 might be 1.0146x faster getter-prototype 7.8770+-0.1242 ? 7.8785+-0.1236 ? getter-richards-try-catch 1003.8516+-14.8322 ? 1006.2893+-22.8049 ? getter-richards 116.3187+-5.9325 115.3047+-4.2551 getter 5.4393+-0.5208 5.4095+-0.7102 global-object-access-with-mutating-structure 5.6101+-0.1158 5.6000+-0.1132 global-var-const-infer-fire-from-opt 0.8994+-0.1189 0.8647+-0.0668 might be 1.0401x faster global-var-const-infer 0.6861+-0.0571 ? 0.6868+-0.1051 ? hard-overflow-check-equal 27.5022+-0.5646 ? 27.7935+-1.4991 ? might be 1.0106x slower hard-overflow-check 26.5630+-0.9052 ? 27.2798+-1.3911 ? might be 1.0270x slower HashMap-put-get-iterate-keys 24.3657+-1.4198 ? 25.6622+-2.1858 ? might be 1.0532x slower HashMap-put-get-iterate 26.9809+-1.0037 ? 27.2630+-0.7071 ? might be 1.0105x slower HashMap-string-put-get-iterate 23.7254+-0.8529 ? 24.7883+-1.0751 ? might be 1.0448x slower hoist-make-rope 8.0553+-0.6604 ? 8.5497+-1.1249 ? might be 1.0614x slower hoist-poly-check-structure-effectful-loop 3.6301+-0.0172 ? 3.7735+-0.3572 ? might be 1.0395x slower hoist-poly-check-structure 3.1493+-0.2147 3.1149+-0.0684 might be 1.0111x faster imul-double-only 7.7979+-0.1538 7.3724+-0.4511 might be 1.0577x faster imul-int-only 8.3660+-0.7346 8.0697+-0.7495 might be 1.0367x faster imul-mixed 6.7442+-0.2941 ? 6.9148+-0.4655 ? might be 1.0253x slower in-four-cases 16.8946+-0.4379 ? 16.9442+-0.4645 ? in-one-case-false 9.6648+-0.4894 ? 9.6676+-0.4500 ? in-one-case-true 9.4445+-0.4164 9.2825+-0.2234 might be 1.0174x faster in-two-cases 9.7161+-0.3722 9.5063+-0.0488 might be 1.0221x faster indexed-properties-in-objects 2.8331+-0.2249 2.7437+-0.0161 might be 1.0326x faster infer-closure-const-then-mov-no-inline 3.6027+-0.0348 ? 3.6102+-0.0383 ? infer-closure-const-then-mov 18.2684+-0.5430 18.1890+-0.6500 infer-closure-const-then-put-to-scope-no-inline 11.0326+-0.6526 10.8909+-0.3358 might be 1.0130x faster infer-closure-const-then-put-to-scope 22.8913+-0.9619 ? 22.9354+-1.2509 ? infer-closure-const-then-reenter-no-inline 49.0533+-2.7693 46.9982+-0.2951 might be 1.0437x faster infer-closure-const-then-reenter 22.3295+-0.6142 ? 22.5478+-0.6013 ? infer-constant-global-property 3.5012+-0.2478 3.4132+-0.0496 might be 1.0258x faster infer-constant-property 2.6516+-0.0906 2.6398+-0.0516 infer-one-time-closure-ten-vars 7.8410+-0.3470 7.6407+-0.1149 might be 1.0262x faster infer-one-time-closure-two-vars 7.3453+-0.1911 7.2380+-0.1800 might be 1.0148x faster infer-one-time-closure 7.3534+-0.1950 7.2211+-0.1631 might be 1.0183x faster infer-one-time-deep-closure 10.5110+-0.2370 ? 10.7154+-0.1690 ? might be 1.0194x slower inline-arguments-access 3.6664+-0.0869 3.5341+-0.0723 might be 1.0374x faster inline-arguments-aliased-access 3.5893+-0.0529 ? 3.7872+-0.2433 ? might be 1.0552x slower inline-arguments-local-escape 3.7092+-0.2217 3.6522+-0.1772 might be 1.0156x faster inline-get-scoped-var 4.5711+-0.1255 4.4637+-0.0453 might be 1.0241x faster inlined-put-by-id-transition 9.0726+-0.3906 9.0156+-0.4615 inlined-put-by-val-with-string-transition 41.7287+-1.0218 ? 43.4899+-2.8786 ? might be 1.0422x slower inlined-put-by-val-with-symbol-transition 42.0261+-1.9817 41.1012+-0.7465 might be 1.0225x faster int-or-other-abs-then-get-by-val 4.4624+-0.0525 ? 4.5027+-0.0190 ? int-or-other-abs-zero-then-get-by-val 15.1442+-0.3203 ? 15.3780+-0.2351 ? might be 1.0154x slower int-or-other-add-then-get-by-val 4.1184+-0.1721 4.0650+-0.0735 might be 1.0131x faster int-or-other-add 4.9571+-0.0460 ? 4.9936+-0.2106 ? int-or-other-div-then-get-by-val 3.7128+-0.0636 3.6816+-0.0515 int-or-other-max-then-get-by-val 3.9004+-0.0494 3.8568+-0.0505 might be 1.0113x faster int-or-other-min-then-get-by-val 3.7497+-0.0498 3.7379+-0.0303 int-or-other-mod-then-get-by-val 3.4990+-0.0658 ? 3.6640+-0.4436 ? might be 1.0472x slower int-or-other-mul-then-get-by-val 3.7610+-0.2777 3.6003+-0.0477 might be 1.0446x faster int-or-other-neg-then-get-by-val 4.0717+-0.1709 ? 4.0924+-0.3322 ? int-or-other-neg-zero-then-get-by-val 15.3349+-0.6612 ? 15.4238+-0.7499 ? int-or-other-sub-then-get-by-val 4.0158+-0.0960 4.0063+-0.0589 int-or-other-sub 3.4261+-0.0396 ? 3.4426+-0.0984 ? int-overflow-local 4.0902+-0.0439 4.0877+-0.0645 Int16Array-alloc-long-lived 43.1358+-0.9222 43.0531+-1.7731 Int16Array-bubble-sort-with-byteLength 16.9632+-0.2633 ? 17.4961+-1.2364 ? might be 1.0314x slower Int16Array-bubble-sort 16.5819+-0.2792 ? 16.9068+-0.6025 ? might be 1.0196x slower Int16Array-load-int-mul 1.4284+-0.0065 1.4238+-0.0135 Int16Array-to-Int32Array-set 43.9258+-1.7384 43.6491+-1.4121 Int32Array-alloc-large 11.6555+-0.3134 11.5811+-0.3945 Int32Array-alloc-long-lived 48.1889+-0.9801 47.7393+-1.4367 Int32Array-alloc 2.8681+-0.0937 ? 2.9786+-0.1563 ? might be 1.0385x slower Int32Array-Int8Array-view-alloc 5.8605+-0.0965 5.8452+-0.0997 int52-spill 4.5774+-0.1524 ? 4.6252+-0.2510 ? might be 1.0104x slower Int8Array-alloc-long-lived 38.1917+-1.1019 ? 38.4717+-0.8402 ? Int8Array-load-with-byteLength 3.3606+-0.0437 ? 3.4159+-0.1025 ? might be 1.0164x slower Int8Array-load 3.3596+-0.0517 ? 3.4083+-0.0763 ? might be 1.0145x slower integer-divide 10.3008+-0.0760 ? 10.3247+-0.1489 ? integer-modulo 1.7251+-0.2893 1.6343+-0.1036 might be 1.0555x faster is-boolean-fold-tricky 3.8044+-0.1069 3.7895+-0.0789 is-boolean-fold 2.6698+-0.0600 ? 2.6986+-0.0803 ? might be 1.0108x slower is-function-fold-tricky-internal-function 9.4686+-0.0522 ? 9.5271+-0.1066 ? is-function-fold-tricky 4.3418+-0.6433 4.0280+-0.0680 might be 1.0779x faster is-function-fold 2.6777+-0.0405 2.6639+-0.0503 is-number-fold-tricky 4.1464+-0.4107 4.0104+-0.1481 might be 1.0339x faster is-number-fold 2.6746+-0.0876 2.6521+-0.0213 is-object-or-null-fold-functions 2.7348+-0.0736 2.6825+-0.0249 might be 1.0195x faster is-object-or-null-fold-less-tricky 4.0337+-0.1464 4.0137+-0.0942 is-object-or-null-fold-tricky 4.7740+-0.0537 4.7253+-0.0439 might be 1.0103x faster is-object-or-null-fold 2.6865+-0.0302 ? 2.6943+-0.0558 ? is-object-or-null-trickier-function 4.0513+-0.0495 4.0040+-0.0356 might be 1.0118x faster is-object-or-null-trickier-internal-function 9.7108+-0.1497 ? 9.7270+-0.1587 ? is-object-or-null-tricky-function 4.0153+-0.0833 3.9944+-0.0939 is-object-or-null-tricky-internal-function 7.3594+-0.0415 7.3578+-0.0486 is-string-fold-tricky 3.9643+-0.0816 ? 3.9811+-0.0921 ? is-string-fold 2.6381+-0.0185 ? 2.7160+-0.1709 ? might be 1.0295x slower is-undefined-fold-tricky 3.3368+-0.0213 ? 3.4235+-0.1758 ? might be 1.0260x slower is-undefined-fold 2.6476+-0.0234 ? 2.6660+-0.0718 ? JSONP-negative-0 0.2511+-0.0084 ? 0.2523+-0.0193 ? large-int-captured 4.0184+-0.0823 ? 4.0720+-0.0545 ? might be 1.0133x slower large-int-neg 13.9774+-0.4073 13.9306+-0.5992 large-int 12.7616+-0.4113 ? 13.5119+-1.3120 ? might be 1.0588x slower load-varargs-elimination 19.8640+-0.2821 ? 20.6838+-0.7239 ? might be 1.0413x slower logical-not-weird-types 2.9961+-0.0399 ? 2.9987+-0.0291 ? logical-not 4.2502+-0.0693 4.2212+-0.0465 lots-of-fields 9.2935+-0.2502 ? 9.4337+-0.2857 ? might be 1.0151x slower make-indexed-storage 2.7396+-0.1582 ? 2.7481+-0.1312 ? make-rope-cse 3.6148+-0.0536 ? 3.6708+-0.1546 ? might be 1.0155x slower marsaglia-larger-ints 31.7422+-1.0254 31.5574+-0.3920 marsaglia-osr-entry 21.0744+-0.5361 20.8016+-0.2617 might be 1.0131x faster math-with-out-of-bounds-array-values 21.7229+-1.4554 21.6044+-1.0768 max-boolean 2.6173+-0.0421 2.6029+-0.0673 method-on-number 15.3292+-0.2632 ? 15.3542+-0.2254 ? min-boolean 2.6292+-0.0275 2.6101+-0.0656 minus-boolean-double 3.0944+-0.0618 3.0908+-0.0320 minus-boolean 2.3405+-0.0459 2.3139+-0.0184 might be 1.0115x faster misc-strict-eq 28.2450+-1.0709 ? 28.5756+-1.2139 ? might be 1.0117x slower mod-boolean-double 11.0805+-0.3549 10.9470+-0.0495 might be 1.0122x faster mod-boolean 8.2726+-0.0847 ? 8.2924+-0.0918 ? mul-boolean-double 3.6063+-0.0354 ? 3.6085+-0.0731 ? mul-boolean 2.7904+-0.0204 ? 2.8168+-0.0330 ? neg-boolean 3.0726+-0.0086 ? 3.1037+-0.0772 ? might be 1.0101x slower negative-zero-divide 0.3340+-0.0022 ? 0.3485+-0.0286 ? might be 1.0433x slower negative-zero-modulo 0.3621+-0.0648 0.3390+-0.0142 might be 1.0681x faster negative-zero-negate 0.4069+-0.2081 0.3236+-0.0058 might be 1.2574x faster nested-function-parsing 45.1926+-0.7766 ? 45.6406+-1.6269 ? new-array-buffer-dead 86.6356+-0.4919 ? 86.9308+-0.9623 ? new-array-buffer-push 6.0083+-0.0370 6.0029+-0.2238 new-array-dead 14.8462+-1.5262 ? 14.9300+-1.0844 ? new-array-push 3.4109+-0.0906 ? 3.4545+-0.1124 ? might be 1.0128x slower no-inline-constructor 31.1731+-0.2070 ? 31.7261+-0.5414 ? might be 1.0177x slower number-test 3.0663+-0.0548 3.0213+-0.0518 might be 1.0149x faster object-closure-call 4.8797+-0.0794 4.8364+-0.0334 object-get-own-property-symbols-on-large-array 4.1746+-0.2175 ? 4.3607+-0.3634 ? might be 1.0446x slower object-test 2.7277+-0.0132 2.7016+-0.0338 obvious-sink-pathology-taken 97.6988+-2.0089 97.6124+-1.4182 obvious-sink-pathology 92.7352+-1.3241 92.5547+-0.6536 obviously-elidable-new-object 27.9913+-0.4251 ? 28.6787+-0.6965 ? might be 1.0246x slower plus-boolean-arith 2.4656+-0.1383 2.4016+-0.0233 might be 1.0266x faster plus-boolean-double 3.1330+-0.0664 3.1131+-0.0859 plus-boolean 2.5026+-0.0427 2.4983+-0.0525 poly-chain-access-different-prototypes-simple 2.5435+-0.0265 ? 2.6134+-0.0440 ? might be 1.0275x slower poly-chain-access-different-prototypes 2.5402+-0.0209 ? 2.5710+-0.0292 ? might be 1.0121x slower poly-chain-access-simpler 2.5693+-0.0159 ? 2.6270+-0.0662 ? might be 1.0225x slower poly-chain-access 2.4784+-0.0329 ? 2.5301+-0.0702 ? might be 1.0209x slower poly-stricteq 48.8127+-0.3009 ? 49.1757+-0.9144 ? polymorphic-array-call 1.3324+-0.0555 ? 1.3343+-0.1835 ? polymorphic-get-by-id 2.8764+-0.0620 2.8357+-0.0192 might be 1.0144x faster polymorphic-put-by-id 27.4346+-0.6317 26.7222+-0.3400 might be 1.0267x faster polymorphic-put-by-val-with-string 28.9216+-1.1163 28.8349+-0.9711 polymorphic-put-by-val-with-symbol 29.3331+-1.5205 28.3643+-0.3558 might be 1.0342x faster polymorphic-structure 12.3028+-0.1576 12.2429+-0.1719 polyvariant-monomorphic-get-by-id 6.7134+-0.9402 6.5030+-0.8394 might be 1.0324x faster proto-getter-access 8.3820+-0.1863 ? 8.3924+-0.3178 ? prototype-access-with-mutating-prototype 5.4463+-0.2123 ? 5.6363+-0.2297 ? might be 1.0349x slower put-by-id-replace-and-transition 7.8863+-0.3081 7.8338+-0.4660 put-by-id-slightly-polymorphic 2.6911+-0.0088 2.6854+-0.0188 put-by-id 9.4120+-0.1544 ? 9.4896+-0.3098 ? put-by-val-direct 0.3540+-0.0206 ? 0.3547+-0.0203 ? put-by-val-large-index-blank-indexing-type 5.2478+-0.1932 ? 5.4642+-0.1633 ? might be 1.0412x slower put-by-val-machine-int 2.5067+-0.0881 ? 2.5949+-0.3009 ? might be 1.0352x slower put-by-val-with-string-replace-and-transition 9.9909+-0.3400 9.8702+-0.0445 might be 1.0122x faster put-by-val-with-string-slightly-polymorphic 2.9320+-0.0581 ? 2.9841+-0.0686 ? might be 1.0178x slower put-by-val-with-string 10.0031+-0.2774 9.9614+-0.2143 put-by-val-with-symbol-replace-and-transition 11.6682+-0.5119 ? 11.6835+-0.3869 ? put-by-val-with-symbol-slightly-polymorphic 3.1926+-0.0589 3.1387+-0.0984 might be 1.0172x faster put-by-val-with-symbol 9.8921+-0.0685 ? 10.0697+-0.3361 ? might be 1.0179x slower rare-osr-exit-on-local 13.3027+-0.0699 13.2896+-0.0924 raytrace-with-empty-try-catch 5.2686+-0.4243 5.0702+-0.0605 might be 1.0391x faster raytrace-with-try-catch 9.6886+-0.2680 ? 9.7048+-0.1519 ? register-pressure-from-osr 16.1607+-0.1224 ? 16.4074+-0.1858 ? might be 1.0153x slower repeat-multi-get-by-offset 21.1818+-0.1380 ? 21.4956+-0.4828 ? might be 1.0148x slower richards-empty-try-catch 71.9101+-1.6521 71.5377+-1.6662 richards-try-catch 241.5111+-5.1729 ? 243.2578+-5.0892 ? setter-prototype 7.6279+-0.1360 ? 7.6721+-0.0928 ? setter 5.4072+-0.4494 ? 5.4295+-0.4336 ? simple-activation-demo 23.6376+-0.2631 ? 23.7525+-0.4889 ? simple-getter-access 10.5458+-0.2731 ? 10.7325+-0.2074 ? might be 1.0177x slower simple-poly-call-nested 8.7629+-0.5479 8.5541+-0.5201 might be 1.0244x faster simple-poly-call 1.3005+-0.0546 1.2673+-0.0229 might be 1.0263x faster sin-boolean 21.3939+-0.5481 19.6918+-1.5215 might be 1.0864x faster singleton-scope 62.8305+-0.4561 ? 63.2624+-1.4098 ? sink-function 10.0673+-0.6817 9.7631+-0.7376 might be 1.0312x faster sink-huge-activation 16.0059+-0.6491 ? 16.4120+-0.3517 ? might be 1.0254x slower sinkable-new-object-dag 53.2526+-0.9570 ? 53.6776+-0.8207 ? sinkable-new-object-taken 43.4637+-2.2779 43.0030+-1.0998 might be 1.0107x faster sinkable-new-object 29.7319+-0.4265 ? 29.8645+-0.9156 ? slow-array-profile-convergence 2.4724+-0.0913 ? 2.4727+-0.0403 ? slow-convergence 2.3357+-0.0395 ? 2.5086+-0.2432 ? might be 1.0740x slower slow-ternaries 17.3373+-0.7472 16.8895+-0.1804 might be 1.0265x faster sorting-benchmark 16.9160+-1.1910 16.8585+-0.5659 sparse-conditional 1.1297+-0.0265 ? 1.1570+-0.0270 ? might be 1.0242x slower splice-to-remove 14.4522+-1.3204 ^ 11.8686+-0.1010 ^ definitely 1.2177x faster string-char-code-at 13.1022+-0.2396 12.9436+-0.1156 might be 1.0122x faster string-concat-object 2.1628+-0.0292 ? 2.1946+-0.0814 ? might be 1.0147x slower string-concat-pair-object 2.1302+-0.0325 2.0908+-0.0578 might be 1.0189x faster string-concat-pair-simple 9.0516+-0.2534 ? 9.5371+-0.7135 ? might be 1.0536x slower string-concat-simple 9.2077+-0.3967 ? 9.3782+-0.4752 ? might be 1.0185x slower string-cons-repeat 6.3434+-0.1325 6.2967+-0.0446 string-cons-tower 6.5045+-0.2455 ? 6.6711+-0.3746 ? might be 1.0256x slower string-equality 14.9669+-0.6641 ? 14.9797+-0.5307 ? string-get-by-val-big-char 6.6260+-0.4533 6.4640+-0.0507 might be 1.0251x faster string-get-by-val-out-of-bounds-insane 2.9989+-0.0166 ? 3.0672+-0.1003 ? might be 1.0228x slower string-get-by-val-out-of-bounds 3.9314+-0.0672 3.8737+-0.0306 might be 1.0149x faster string-get-by-val 2.8581+-0.1227 2.7907+-0.0318 might be 1.0242x faster string-hash 1.8155+-0.0182 ? 1.8518+-0.0370 ? might be 1.0200x slower string-long-ident-equality 12.7831+-0.1130 ? 12.9298+-0.1882 ? might be 1.0115x slower string-out-of-bounds 10.1140+-0.3049 10.0350+-0.3149 string-repeat-arith 26.5645+-0.5564 ? 27.1384+-1.3064 ? might be 1.0216x slower string-sub 54.9455+-0.8494 ? 56.4158+-0.7074 ? might be 1.0268x slower string-test 2.8958+-0.2087 2.8886+-0.0801 string-var-equality 25.9427+-0.5661 ? 25.9983+-0.4391 ? structure-hoist-over-transitions 2.3418+-0.0749 ? 2.3429+-0.0463 ? substring-concat-weird 35.5424+-0.7252 35.5164+-0.3529 substring-concat 40.5896+-1.3102 ? 40.5914+-2.4632 ? substring 44.0460+-0.3503 ? 45.1400+-1.1958 ? might be 1.0248x slower switch-char-constant 2.7066+-0.0433 2.6617+-0.0206 might be 1.0169x faster switch-char 5.6145+-0.8081 ? 6.3776+-1.0541 ? might be 1.1359x slower switch-constant 8.0564+-0.7897 7.8280+-0.8773 might be 1.0292x faster switch-string-basic-big-var 14.3335+-0.1259 ^ 13.9696+-0.0769 ^ definitely 1.0261x faster switch-string-basic-big 14.7600+-0.2120 14.5927+-0.1107 might be 1.0115x faster switch-string-basic-var 13.4458+-0.9157 12.9737+-0.0910 might be 1.0364x faster switch-string-basic 12.3363+-0.2838 ? 12.4946+-0.4528 ? might be 1.0128x slower switch-string-big-length-tower-var 17.8181+-0.3911 17.7440+-0.6094 switch-string-length-tower-var 12.8684+-0.1300 ? 13.1723+-0.5755 ? might be 1.0236x slower switch-string-length-tower 11.2435+-0.2429 ? 11.2757+-0.1891 ? switch-string-short 11.2231+-0.1287 11.2068+-0.1112 switch 10.4695+-0.4600 ? 10.6816+-0.3367 ? might be 1.0203x slower tear-off-arguments-simple 3.0341+-0.0668 ? 3.0400+-0.0887 ? tear-off-arguments 4.0707+-0.1244 4.0384+-0.1883 temporal-structure 11.8155+-0.2400 11.5958+-0.1598 might be 1.0189x faster to-int32-boolean 12.4307+-0.3661 12.3171+-0.2105 try-catch-get-by-val-cloned-arguments 9.5251+-0.4616 9.2840+-0.0926 might be 1.0260x faster try-catch-get-by-val-direct-arguments 2.1624+-0.2055 2.0860+-0.0107 might be 1.0366x faster try-catch-get-by-val-scoped-arguments 4.6680+-0.0589 ? 4.7234+-0.2122 ? might be 1.0119x slower typed-array-get-set-by-val-profiling 26.6460+-0.4162 26.1608+-0.3362 might be 1.0185x faster undefined-property-access 218.3126+-2.7169 217.1899+-2.3551 undefined-test 2.9870+-0.0484 2.9794+-0.0303 unprofiled-licm 9.4313+-0.3685 9.4021+-0.1890 v8-raytrace-with-empty-try-catch 23.8767+-1.0763 23.4472+-0.1819 might be 1.0183x faster v8-raytrace-with-try-catch 61.2155+-1.1874 61.0274+-1.0342 varargs-call 12.9182+-0.2788 ? 13.0686+-0.4183 ? might be 1.0116x slower varargs-construct-inline 21.3981+-0.2423 ? 21.6842+-0.4570 ? might be 1.0134x slower varargs-construct 20.4292+-0.5025 ? 20.9313+-1.0477 ? might be 1.0246x slower varargs-inline 8.7004+-0.0871 ? 8.7317+-0.2245 ? varargs-strict-mode 10.1039+-0.3554 ? 10.3634+-0.9649 ? might be 1.0257x slower varargs 9.8156+-0.1705 9.8063+-0.0793 weird-inlining-const-prop 2.1760+-0.1239 ? 2.2282+-0.2768 ? might be 1.0240x slower <geometric> 7.9828+-0.0187 7.9798+-0.0204 might be 1.0004x faster TipOfTree ParallelVectorIterator AsmBench: bigfib.cpp 448.1843+-5.3940 ? 452.7718+-3.6302 ? might be 1.0102x slower cray.c 397.6614+-8.7933 ? 397.9905+-8.1765 ? dry.c 423.6230+-8.0512 422.7723+-6.2957 FloatMM.c 683.3425+-2.6920 ? 691.5821+-15.4875 ? might be 1.0121x slower gcc-loops.cpp 3433.2930+-16.4402 3421.2750+-13.7682 n-body.c 828.4470+-11.9840 824.6730+-6.1826 Quicksort.c 403.7090+-5.0089 ? 408.7156+-5.5308 ? might be 1.0124x slower stepanov_container.cpp 3520.4555+-18.6736 ? 3589.0770+-132.0583 ? might be 1.0195x slower Towers.c 233.8587+-2.7037 233.2573+-2.0461 <geometric> 714.8409+-3.0608 ? 718.1358+-4.3791 ? might be 1.0046x slower TipOfTree ParallelVectorIterator CompressionBench: huffman 59.9701+-0.6331 59.6248+-0.8616 arithmetic-simple 273.2520+-3.3121 271.1920+-3.6025 arithmetic-precise 244.4824+-3.8363 243.9747+-2.1938 arithmetic-complex-precise 245.6497+-3.6651 242.6950+-1.3713 might be 1.0122x faster arithmetic-precise-order-0 280.7568+-6.5456 278.8388+-2.5852 arithmetic-precise-order-1 298.9087+-2.7398 298.5026+-2.3714 arithmetic-precise-order-2 347.7651+-6.1826 ? 350.9298+-9.2363 ? arithmetic-simple-order-1 323.2661+-3.1287 318.8053+-2.8745 might be 1.0140x faster arithmetic-simple-order-2 374.5296+-10.9722 373.3166+-5.8732 lz-string 307.7385+-2.1383 ? 313.1673+-7.5722 ? might be 1.0176x slower <geometric> 252.8671+-1.2074 252.2074+-1.2487 might be 1.0026x faster TipOfTree ParallelVectorIterator Geomean of preferred means: <scaled-result> 49.6841+-0.2124 ? 49.7672+-0.1204 ? might be 1.0017x slower
Andreas Kling
Comment 8 2015-09-29 09:32:09 PDT
Comment on attachment 262043 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=262043&action=review r=me > Source/JavaScriptCore/heap/CopyVisitor.cpp:43 > + CopiedBlock* block = 0; nullptr > Source/JavaScriptCore/heap/Heap.cpp:658 > + item.cell()->methodTable()->copyBackingStore( > + item.cell(), copyVisitor, item.token()); You could use the methodTable(VM&) overload here. > Source/WTF/wtf/ParallelVectorIterator.h:29 > +#include <wtf/FastMalloc.h> You probably don't need this header here.
Filip Pizlo
Comment 9 2015-09-29 09:33:44 PDT
(In reply to comment #8) > Comment on attachment 262043 [details] > the patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=262043&action=review > > r=me > > > Source/JavaScriptCore/heap/CopyVisitor.cpp:43 > > + CopiedBlock* block = 0; > > nullptr Yup! > > > Source/JavaScriptCore/heap/Heap.cpp:658 > > + item.cell()->methodTable()->copyBackingStore( > > + item.cell(), copyVisitor, item.token()); > > You could use the methodTable(VM&) overload here. Wow, that's kind of a startling omission. Fixed. > > > Source/WTF/wtf/ParallelVectorIterator.h:29 > > +#include <wtf/FastMalloc.h> > > You probably don't need this header here. I use WTF_MAKE_FAST_ALLOCATED in that header, for the ParallelVectorIterator class. :-)
Filip Pizlo
Comment 10 2015-09-29 09:39:59 PDT
Note You need to log in before you can comment on or make changes to this bug.