Summary: | PutById inline caches should have a store barrier when it triggers a structure transition | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Mark Lam <mark.lam> | ||||
Component: | JavaScriptCore | Assignee: | Mark Lam <mark.lam> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | buildbot, fpizlo, ggaren, mark.lam, mhahnenb, mmirman, msaboff, oliver, rniwa, webkit-bug-importer | ||||
Priority: | P2 | Keywords: | InRadar | ||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Attachments: |
|
Description
Mark Lam
2014-11-05 14:45:08 PST
Created attachment 241063 [details]
the patch.
Ready for review. Still running benchmarks and tests.
Comment on attachment 241063 [details] the patch. View in context: https://bugs.webkit.org/attachment.cgi?id=241063&action=review r=me > Source/JavaScriptCore/jit/Repatch.cpp:1141 > + callSlowWriteBarrier = stubJit.call(); Let's call this "callFlushWriteBarrierBuffer" to match the callee. JSC tests are happy. The layout tests (with a debug build) shows no new failures. The benchmarks are happy. There is one "definitely slower" in dilatable in v8-spider. Re-running v8-spider shows that it's within noise. The raw data is below: === Start of Run 2 (re-running v8-spider) === base new crypto 82.9814+-1.1706 ? 82.9865+-1.9617 ? deltablue 127.8655+-1.2272 127.3657+-2.7327 earley-boyer 70.5808+-0.8139 70.3942+-1.4073 raytrace 46.7735+-1.6568 ? 47.0367+-0.9740 ? regexp 108.3636+-0.9357 108.1378+-0.5088 richards 130.0345+-5.6110 ? 132.4417+-5.4411 ? might be 1.0185x slower splay 48.7175+-1.1901 48.3646+-1.2289 <arithmetic> 87.9024+-0.9051 ? 88.1039+-1.0148 ? might be 1.0023x slower <geometric> * 81.5724+-0.6382 ? 81.6678+-0.9624 ? might be 1.0012x slower <harmonic> 75.3657+-0.5478 ? 75.3885+-0.9423 ? might be 1.0003x slower === End of Run 2 (re-running v8-spider) === === Start of Run 1 === Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on albion (MacPro5,1). VMs tested: "base" at /Volumes/Data/ws6/OpenSource/WebKitBuild/Release/jsc (r175632) "new" at /Volumes/Data/ws6/OpenSource/WebKitBuild/Release/jsc (r175632) Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. base new SunSpider: 3d-cube 7.7108+-0.1829 7.5006+-0.1659 might be 1.0280x faster 3d-morph 9.5581+-0.1406 ? 9.6665+-0.1937 ? might be 1.0113x slower 3d-raytrace 9.7131+-0.1978 9.6351+-0.4369 access-binary-trees 3.0621+-0.1240 3.0015+-0.3039 might be 1.0202x faster access-fannkuch 9.4900+-0.1609 9.4758+-0.0681 access-nbody 4.6472+-0.3154 4.6429+-0.2522 access-nsieve 5.9235+-0.1050 ? 5.9310+-0.1517 ? bitops-3bit-bits-in-byte 2.0347+-0.0711 2.0317+-0.1609 bitops-bits-in-byte 6.4235+-0.2354 ? 6.4437+-0.2159 ? bitops-bitwise-and 3.3364+-0.1918 ? 3.3737+-0.0470 ? might be 1.0112x slower bitops-nsieve-bits 5.9090+-0.3244 5.8727+-0.2070 controlflow-recursive 3.1896+-0.1701 ? 3.2841+-0.1725 ? might be 1.0296x slower crypto-aes 6.1117+-0.1570 ? 6.3442+-0.3134 ? might be 1.0380x slower crypto-md5 3.6940+-0.0940 ? 3.8061+-0.0614 ? might be 1.0303x slower crypto-sha1 3.7019+-0.0604 ? 3.7733+-0.1457 ? might be 1.0193x slower date-format-tofte 13.2891+-0.7913 13.2830+-0.5808 date-format-xparb 7.8760+-0.2403 7.8245+-0.3473 math-cordic 4.7478+-0.1088 ? 4.8157+-0.1486 ? might be 1.0143x slower math-partial-sums 10.3230+-0.2227 10.0965+-0.2670 might be 1.0224x faster math-spectral-norm 3.1989+-0.1462 ? 3.2260+-0.1810 ? regexp-dna 11.2968+-0.2096 11.2368+-0.0572 string-base64 6.6453+-0.3552 6.4608+-0.1264 might be 1.0286x faster string-fasta 9.9590+-0.2252 ? 10.0327+-0.1735 ? string-tagcloud 15.8279+-0.3010 15.3745+-0.5085 might be 1.0295x faster string-unpack-code 31.2228+-0.4660 ? 31.6108+-0.3905 ? might be 1.0124x slower string-validate-input 7.2657+-0.2663 7.1518+-0.1342 might be 1.0159x faster <arithmetic> * 7.9291+-0.0535 7.9191+-0.0777 might be 1.0013x faster <geometric> 6.5583+-0.0473 ? 6.5609+-0.0828 ? might be 1.0004x slower <harmonic> 5.5509+-0.0481 ? 5.5674+-0.0887 ? might be 1.0030x slower base new LongSpider: 3d-cube 1333.1201+-16.2128 1327.6330+-16.2675 3d-morph 2145.1569+-3.5508 2145.0031+-1.9527 3d-raytrace 1226.9623+-19.1280 ? 1228.5384+-14.4676 ? access-binary-trees 1546.0508+-7.3893 ? 1548.2012+-12.7128 ? access-fannkuch 513.0499+-26.7984 507.5983+-22.6308 might be 1.0107x faster access-nbody 1154.4113+-3.4854 1153.5932+-1.1335 access-nsieve 1480.6443+-16.6350 1472.9544+-10.1167 bitops-3bit-bits-in-byte 57.1558+-0.7462 ? 57.3834+-0.5120 ? bitops-bits-in-byte 365.1354+-13.2954 ? 367.3586+-11.8971 ? bitops-nsieve-bits 1118.6241+-4.1163 ? 1121.8655+-5.2633 ? controlflow-recursive 825.5416+-2.1905 ? 826.1882+-1.4969 ? crypto-aes 1040.0266+-6.4344 1037.3589+-8.1221 crypto-md5 952.9652+-3.1638 ? 953.8689+-3.2149 ? crypto-sha1 1121.0267+-36.7007 ? 1129.9862+-58.7791 ? date-format-tofte 1154.3032+-41.3040 ? 1154.9214+-52.2247 ? date-format-xparb 1087.3959+-15.1382 ? 1089.0872+-4.5136 ? math-cordic 920.3326+-157.4465 917.9818+-157.4189 math-partial-sums 1181.1353+-1.8307 1178.5022+-3.9437 math-spectral-norm 1234.9307+-1.2758 ? 1236.9917+-1.7591 ? string-base64 530.5659+-1.0382 ? 533.8666+-5.6673 ? string-fasta 670.6835+-5.0418 667.3395+-2.6730 string-tagcloud 344.9683+-1.9122 ? 345.2249+-1.9733 ? <arithmetic> 1000.1903+-7.1116 1000.0658+-7.7640 might be 1.0001x faster <geometric> * 838.8638+-5.9653 ? 838.9701+-7.3926 ? might be 1.0001x slower <harmonic> 520.9641+-4.5969 ? 521.8720+-2.0253 ? might be 1.0017x slower base new V8Spider: crypto 82.9459+-0.3310 ? 83.5803+-1.4642 ? deltablue 126.7830+-1.2151 ! 128.4934+-0.3695 ! definitely 1.0135x slower earley-boyer 70.1245+-1.4350 ? 70.4117+-0.3805 ? raytrace 44.9864+-0.7254 ? 46.2694+-1.5432 ? might be 1.0285x slower regexp 107.9320+-0.4868 ? 108.4534+-1.3948 ? richards 132.0274+-4.0623 ? 132.0474+-7.8449 ? splay 48.9060+-1.6830 48.2582+-0.6638 might be 1.0134x faster <arithmetic> 87.6722+-0.7843 ? 88.2163+-1.3624 ? might be 1.0062x slower <geometric> * 81.1184+-0.7864 ? 81.6358+-0.8281 ? might be 1.0064x slower <harmonic> 74.6839+-0.9425 ? 75.1929+-0.5670 ? might be 1.0068x slower base new Octane: encrypt 0.36326+-0.00670 ? 0.36582+-0.00781 ? decrypt 6.48350+-0.03091 ? 6.48652+-0.02435 ? deltablue x2 0.30582+-0.00844 0.30327+-0.00607 earley 1.14569+-0.02516 1.13579+-0.00729 boyer 9.93012+-0.13189 9.92490+-0.10217 navier-stokes x2 7.35404+-0.00886 ? 7.36314+-0.01208 ? raytrace x2 1.87490+-0.02138 ? 1.88491+-0.01975 ? richards x2 0.18983+-0.00575 ? 0.19080+-0.00413 ? splay x2 0.62018+-0.00628 0.61443+-0.00511 regexp x2 52.51603+-0.69161 ? 52.54830+-0.80600 ? pdfjs x2 83.77453+-1.98307 82.82946+-0.94982 might be 1.0114x faster mandreel x2 86.33503+-0.13971 86.12846+-0.67166 gbemu x2 76.61980+-1.57337 ? 76.75806+-1.72390 ? closure 0.86088+-0.00237 0.86023+-0.00251 jquery 10.96513+-0.05567 10.94628+-0.05167 box2d x2 22.70948+-0.26967 ? 22.73304+-0.22717 ? zlib x2 736.26316+-77.97752 734.75708+-68.37104 typescript x2 1224.65100+-7.67484 1217.42725+-12.64926 <arithmetic> 153.87254+-5.69793 153.22653+-4.47518 might be 1.0042x faster <geometric> * 11.08606+-0.11681 11.06689+-0.07780 might be 1.0017x faster <harmonic> 1.11193+-0.01066 1.11136+-0.00725 might be 1.0005x faster base new Kraken: ai-astar 539.880+-3.149 537.118+-1.885 audio-beat-detection 180.490+-5.716 ? 183.268+-1.605 ? might be 1.0154x slower audio-dft 241.478+-2.475 ? 241.720+-1.792 ? audio-fft 123.017+-0.717 122.651+-0.527 audio-oscillator 362.620+-1.835 362.474+-0.917 imaging-darkroom 280.069+-0.616 279.753+-2.756 imaging-desaturate 109.042+-0.337 ? 109.241+-0.420 ? imaging-gaussian-blur 184.462+-13.349 180.711+-0.922 might be 1.0208x faster json-parse-financial 78.243+-0.470 77.881+-1.106 json-stringify-tinderbox 94.128+-1.179 93.839+-0.599 stanford-crypto-aes 94.453+-0.732 ? 95.148+-1.934 ? stanford-crypto-ccm 93.784+-3.086 89.885+-14.335 might be 1.0434x faster stanford-crypto-pbkdf2 264.546+-1.924 264.298+-6.595 stanford-crypto-sha256-iterative 82.042+-1.834 81.528+-0.177 <arithmetic> * 194.875+-0.638 194.251+-0.882 might be 1.0032x faster <geometric> 161.711+-0.522 160.963+-2.059 might be 1.0046x faster <harmonic> 138.310+-0.490 137.399+-2.985 might be 1.0066x faster base new JSRegress: abs-boolean 4.1631+-0.0503 ? 4.2610+-0.1700 ? might be 1.0235x slower adapt-to-double-divide 20.6345+-0.7366 ? 20.7902+-0.6884 ? aliased-arguments-getbyval 1.2665+-0.1243 ? 1.2970+-0.0754 ? might be 1.0241x slower allocate-big-object 3.5328+-0.4861 3.4908+-0.4345 might be 1.0120x faster arity-mismatch-inlining 1.1868+-0.0633 ? 1.1946+-0.1699 ? array-access-polymorphic-structure 10.4805+-0.4065 ? 10.6491+-0.2718 ? might be 1.0161x slower array-nonarray-polymorhpic-access 56.6180+-4.4577 ? 58.0985+-0.3116 ? might be 1.0261x slower array-prototype-every 117.3654+-4.0685 ? 118.3048+-3.1044 ? array-prototype-forEach 118.5209+-3.2443 117.8113+-2.7713 array-prototype-map 148.6096+-5.3217 148.2692+-4.6532 array-prototype-some 118.0407+-2.3265 ? 118.2228+-4.3050 ? array-splice-contiguous 65.9985+-0.7964 ? 66.6783+-0.8985 ? might be 1.0103x slower array-with-double-add 6.3335+-0.1077 6.3065+-0.1015 array-with-double-increment 4.6702+-0.1515 ? 4.7452+-0.1015 ? might be 1.0161x slower array-with-double-mul-add 8.1648+-0.1545 8.0247+-0.1691 might be 1.0175x faster array-with-double-sum 4.8958+-0.0982 4.8737+-0.0814 array-with-int32-add-sub 11.0680+-0.1699 11.0289+-0.2229 array-with-int32-or-double-sum 5.0012+-0.1042 4.9988+-0.1470 ArrayBuffer-DataView-alloc-large-long-lived 52.0885+-0.3478 51.8484+-1.5168 ArrayBuffer-DataView-alloc-long-lived 21.8959+-2.3721 21.8540+-1.5512 ArrayBuffer-Int32Array-byteOffset 5.2354+-0.2909 5.2337+-0.1261 ArrayBuffer-Int8Array-alloc-large-long-lived 55.6279+-0.8499 ? 56.4603+-2.0620 ? might be 1.0150x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 36.3349+-2.6896 35.4420+-1.9772 might be 1.0252x faster ArrayBuffer-Int8Array-alloc-long-lived 20.4155+-1.2538 ? 21.5081+-1.6693 ? might be 1.0535x slower ArrayBuffer-Int8Array-alloc 17.4146+-1.2194 17.2297+-2.2057 might be 1.0107x faster asmjs_bool_bug 10.1797+-0.1791 10.0053+-0.1330 might be 1.0174x faster assign-custom-setter-polymorphic 5.0992+-0.6320 4.9418+-0.0803 might be 1.0319x faster assign-custom-setter 6.4642+-0.3341 ? 6.5393+-0.1661 ? might be 1.0116x slower basic-set 15.3381+-0.7281 ? 15.5065+-0.5026 ? might be 1.0110x slower big-int-mul 6.5469+-0.0392 ? 6.6272+-0.1480 ? might be 1.0123x slower boolean-test 4.8189+-0.1848 ? 4.8285+-0.0898 ? branch-fold 5.2289+-0.2453 ? 5.2465+-0.0253 ? by-val-generic 12.7009+-0.3408 ? 12.7783+-0.5839 ? call-spread-apply 19.9489+-0.5357 ? 20.1910+-0.6531 ? might be 1.0121x slower call-spread-call 8.8018+-0.1914 8.7730+-0.3792 captured-assignments 0.7390+-0.1029 ? 0.7760+-0.1232 ? might be 1.0500x slower cast-int-to-double 9.3575+-0.2910 9.2399+-0.1938 might be 1.0127x faster cell-argument 11.3303+-0.7320 ? 11.7093+-0.6414 ? might be 1.0335x slower cfg-simplify 4.0828+-0.1267 ? 4.1403+-0.1484 ? might be 1.0141x slower chain-getter-access 14.7283+-0.2450 14.6265+-0.3232 cmpeq-obj-to-obj-other 13.9526+-0.4796 13.6591+-0.8101 might be 1.0215x faster constant-test 8.6625+-0.0820 ? 8.6691+-0.2282 ? DataView-custom-properties 59.1028+-1.2333 ? 60.4602+-1.7960 ? might be 1.0230x slower delay-tear-off-arguments-strictmode 3.7916+-0.1042 3.7628+-0.1528 destructuring-arguments 8.9420+-0.4272 8.8617+-0.1091 destructuring-swap 8.8248+-0.1216 8.7610+-0.1743 direct-arguments-getbyval 1.3688+-0.2073 1.3180+-0.1252 might be 1.0386x faster div-boolean-double 6.2582+-0.0839 ? 6.3101+-0.0781 ? div-boolean 11.1657+-0.0529 ? 11.2402+-0.1437 ? double-get-by-val-out-of-bounds 6.8661+-0.1790 ? 6.9277+-0.0943 ? double-pollution-getbyval 11.0887+-0.1948 11.0363+-0.2185 double-pollution-putbyoffset 6.2321+-0.2793 ? 6.2729+-0.1514 ? double-to-int32-typed-array-no-inline 3.1509+-0.2242 ? 3.1854+-0.0859 ? might be 1.0109x slower double-to-int32-typed-array 2.8615+-0.0567 2.7711+-0.1842 might be 1.0326x faster double-to-uint32-typed-array-no-inline 3.2595+-0.0976 3.2131+-0.2519 might be 1.0144x faster double-to-uint32-typed-array 2.8711+-0.1575 ? 2.9172+-0.1010 ? might be 1.0161x slower elidable-new-object-dag 60.1780+-2.0402 ? 60.9244+-1.7257 ? might be 1.0124x slower elidable-new-object-roflcopter 226.7963+-1.7466 ? 227.8820+-2.5128 ? elidable-new-object-then-call 57.4380+-5.5320 ? 60.5917+-3.8055 ? might be 1.0549x slower elidable-new-object-tree 69.4826+-2.1378 68.9191+-2.1999 empty-string-plus-int 8.3273+-0.1327 8.1942+-0.1416 might be 1.0162x faster emscripten-cube2hash 52.9150+-1.4881 ? 53.2257+-1.6131 ? external-arguments-getbyval 2.1085+-0.1231 2.0749+-0.1793 might be 1.0162x faster external-arguments-putbyval 3.2739+-0.1604 3.1666+-0.0733 might be 1.0339x faster fixed-typed-array-storage-var-index 1.7460+-0.1647 ? 1.7579+-0.1397 ? fixed-typed-array-storage 1.2939+-0.0876 ? 1.3383+-0.0317 ? might be 1.0342x slower Float32Array-matrix-mult 6.6221+-0.5241 ? 6.7838+-0.6493 ? might be 1.0244x slower Float32Array-to-Float64Array-set 91.2040+-4.0987 91.1055+-2.1155 Float64Array-alloc-long-lived 98.6553+-1.2867 98.3096+-0.2197 Float64Array-to-Int16Array-set 105.1567+-0.4697 105.0001+-0.4713 fold-double-to-int 20.0325+-0.2346 ? 20.0461+-0.3318 ? fold-get-by-id-to-multi-get-by-offset-rare-int 27.3409+-2.1126 26.2881+-0.5610 might be 1.0400x faster fold-get-by-id-to-multi-get-by-offset 25.3150+-1.5848 ? 26.0165+-2.6594 ? might be 1.0277x slower fold-multi-get-by-offset-to-get-by-offset 18.2576+-0.5806 ? 18.9356+-0.1033 ? might be 1.0371x slower fold-multi-get-by-offset-to-poly-get-by-offset 18.3865+-0.4149 18.1356+-0.2688 might be 1.0138x faster fold-multi-put-by-offset-to-poly-put-by-offset 18.7703+-1.9159 ? 18.9954+-0.7164 ? might be 1.0120x slower fold-multi-put-by-offset-to-put-by-offset 16.7549+-0.2813 ? 17.7465+-1.9128 ? might be 1.0592x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 22.3734+-0.1977 ? 22.5104+-0.5958 ? fold-put-by-id-to-multi-put-by-offset 27.8679+-2.3672 27.2734+-1.1381 might be 1.0218x faster fold-put-structure 17.0443+-0.4927 ? 17.3036+-0.1999 ? might be 1.0152x slower for-of-iterate-array-entries 8.7953+-0.5223 8.7378+-0.2148 for-of-iterate-array-keys 4.2797+-0.2565 ? 4.3210+-0.2754 ? for-of-iterate-array-values 3.9532+-0.2383 3.7375+-0.1509 might be 1.0577x faster fround 25.5994+-1.1030 ? 25.7698+-0.1932 ? ftl-library-inlining-dataview 105.8339+-3.5403 104.9280+-0.1371 ftl-library-inlining 101.5806+-2.0905 100.4156+-0.1489 might be 1.0116x faster function-dot-apply 2.5223+-0.0603 2.4702+-0.1383 might be 1.0211x faster function-test 5.2675+-0.2565 5.2198+-0.4260 function-with-eval 172.4597+-2.4075 ? 172.7962+-2.7905 ? gcse-poly-get-less-obvious 28.4269+-0.1477 ? 28.4977+-0.3496 ? gcse-poly-get 28.3622+-0.2106 ? 28.3862+-0.2359 ? gcse 7.2984+-0.2400 7.2861+-0.1180 get-by-id-bimorphic-check-structure-elimination-simple 3.7209+-0.1688 3.7073+-0.0645 get-by-id-bimorphic-check-structure-elimination 9.3388+-0.1887 ? 9.3574+-0.3235 ? get-by-id-chain-from-try-block 17.8676+-0.3029 17.5131+-0.1020 might be 1.0202x faster get-by-id-check-structure-elimination 8.4736+-0.3158 ? 8.6105+-0.0834 ? might be 1.0162x slower get-by-id-proto-or-self 26.0175+-1.7655 25.9824+-1.5391 get-by-id-quadmorphic-check-structure-elimination-simple 4.4435+-0.0328 4.4376+-0.0513 get-by-id-self-or-proto 26.9262+-3.1036 ? 27.6690+-2.9892 ? might be 1.0276x slower get-by-val-out-of-bounds 6.7737+-0.1688 ? 6.8733+-0.2203 ? might be 1.0147x slower get_callee_monomorphic 5.8738+-0.2542 5.7171+-0.5147 might be 1.0274x faster get_callee_polymorphic 4.9135+-0.1261 4.7496+-0.1139 might be 1.0345x faster getter-no-activation 6.5065+-0.0993 ? 6.5676+-0.1071 ? getter-richards 192.1076+-18.8797 ? 194.4346+-13.9679 ? might be 1.0121x slower getter 7.5003+-0.1755 7.3662+-0.1626 might be 1.0182x faster global-var-const-infer-fire-from-opt 1.5093+-0.2696 1.3338+-0.1184 might be 1.1316x faster global-var-const-infer 1.3847+-0.2097 1.2709+-0.1918 might be 1.0895x faster HashMap-put-get-iterate-keys 41.2615+-0.2282 40.9263+-0.4442 HashMap-put-get-iterate 40.8093+-1.0773 40.6593+-1.0959 HashMap-string-put-get-iterate 38.6953+-1.6488 38.5407+-1.4537 hoist-make-rope 16.1783+-3.4032 ? 17.4655+-0.8126 ? might be 1.0796x slower hoist-poly-check-structure-effectful-loop 7.2843+-0.2379 ? 7.4351+-0.1023 ? might be 1.0207x slower hoist-poly-check-structure 5.4272+-0.1085 ? 5.4758+-0.2227 ? imul-double-only 11.6577+-0.6777 ? 11.6974+-0.5539 ? imul-int-only 14.0948+-1.0739 ? 14.2753+-0.9849 ? might be 1.0128x slower imul-mixed 10.9638+-0.3048 ? 11.0515+-0.4007 ? in-four-cases 27.1639+-0.5055 ? 27.2751+-0.4101 ? in-one-case-false 14.1995+-0.1855 ? 14.2211+-0.2223 ? in-one-case-true 14.3170+-0.1602 14.1969+-0.1894 in-two-cases 14.8217+-0.1888 14.6805+-0.1373 indexed-properties-in-objects 4.2988+-0.1370 ? 4.3268+-0.1315 ? infer-closure-const-then-mov-no-inline 5.0044+-0.0459 ? 5.0240+-0.0846 ? infer-closure-const-then-mov 27.9688+-0.1908 ? 28.1130+-0.3754 ? infer-closure-const-then-put-to-scope-no-inline 17.1475+-0.3301 ? 17.2368+-0.1381 ? infer-closure-const-then-put-to-scope 32.1221+-0.3930 31.8705+-0.2382 infer-closure-const-then-reenter-no-inline 73.8111+-0.1612 ? 73.9678+-0.2286 ? infer-closure-const-then-reenter 32.0594+-0.4520 31.7745+-0.2844 infer-constant-global-property 5.3455+-0.0681 5.3213+-0.0945 infer-constant-property 3.7393+-0.1187 ? 3.7405+-0.1575 ? infer-one-time-closure-ten-vars 16.1230+-0.7073 16.0197+-0.2510 infer-one-time-closure-two-vars 16.3003+-0.3845 16.1303+-0.5267 might be 1.0105x faster infer-one-time-closure 15.8395+-0.6472 ? 16.0261+-0.2898 ? might be 1.0118x slower infer-one-time-deep-closure 28.1194+-0.2524 28.0402+-0.1714 inline-arguments-access 2.4158+-0.1835 2.4148+-0.0645 inline-arguments-aliased-access 2.7497+-0.2118 2.6597+-0.0782 might be 1.0338x faster inline-arguments-local-escape 18.7795+-0.3268 18.5490+-0.3420 might be 1.0124x faster inline-get-scoped-var 6.3769+-0.1493 ? 6.4465+-0.1665 ? might be 1.0109x slower inlined-put-by-id-transition 14.5955+-0.7530 14.3987+-0.1975 might be 1.0137x faster int-or-other-abs-then-get-by-val 7.8982+-0.0925 ? 7.9332+-0.2898 ? int-or-other-abs-zero-then-get-by-val 30.4277+-0.3157 30.3200+-0.0426 int-or-other-add-then-get-by-val 6.5722+-0.2378 ? 6.7928+-0.0943 ? might be 1.0336x slower int-or-other-add 8.8845+-0.2070 ? 8.9659+-0.1314 ? int-or-other-div-then-get-by-val 5.9057+-0.0968 5.6932+-0.1777 might be 1.0373x faster int-or-other-max-then-get-by-val 7.6295+-0.2556 7.4570+-0.1027 might be 1.0231x faster int-or-other-min-then-get-by-val 6.0103+-0.0488 ? 6.0257+-0.1094 ? int-or-other-mod-then-get-by-val 5.8036+-0.0492 ? 5.8546+-0.0975 ? int-or-other-mul-then-get-by-val 5.6374+-0.1695 ? 5.7545+-0.1807 ? might be 1.0208x slower int-or-other-neg-then-get-by-val 7.1462+-0.1779 7.0687+-0.0844 might be 1.0110x faster int-or-other-neg-zero-then-get-by-val 30.1871+-0.3581 ? 30.3138+-0.3928 ? int-or-other-sub-then-get-by-val 6.8007+-0.2228 6.7415+-0.1076 int-or-other-sub 5.8382+-0.1543 ? 5.9107+-0.0930 ? might be 1.0124x slower int-overflow-local 6.5865+-0.1894 6.5865+-0.1479 Int16Array-alloc-long-lived 69.3333+-0.9877 ? 69.5580+-0.2875 ? Int16Array-bubble-sort-with-byteLength 44.9703+-0.3376 ? 45.1652+-0.4600 ? Int16Array-bubble-sort 43.9740+-0.4705 43.8124+-0.1480 Int16Array-load-int-mul 2.2486+-0.0850 2.2251+-0.0940 might be 1.0106x faster Int16Array-to-Int32Array-set 85.0925+-1.5504 ? 86.6466+-2.7631 ? might be 1.0183x slower Int32Array-alloc-large 38.8806+-0.8456 38.7410+-1.2514 Int32Array-alloc-long-lived 77.2256+-0.7552 ? 77.3455+-0.6883 ? Int32Array-alloc 4.4130+-0.1975 ? 4.5422+-0.0444 ? might be 1.0293x slower Int32Array-Int8Array-view-alloc 9.9979+-0.3843 ? 10.0218+-0.3360 ? int52-spill 9.8630+-0.2216 9.8511+-0.4173 Int8Array-alloc-long-lived 63.3047+-0.9542 62.9261+-0.8190 Int8Array-load-with-byteLength 5.3712+-0.0536 ? 5.3895+-0.0353 ? Int8Array-load 5.4045+-0.1029 ? 5.4268+-0.1568 ? integer-divide 16.4041+-0.0440 16.3264+-0.1931 integer-modulo 3.1782+-0.1391 3.1506+-0.1569 large-int-captured 9.9332+-0.2951 ? 9.9991+-0.1260 ? large-int-neg 23.4200+-0.3708 ? 23.4615+-0.0999 ? large-int 21.0140+-0.4971 20.9979+-0.4106 logical-not 6.9606+-0.3751 6.8919+-0.2255 lots-of-fields 15.8227+-0.3158 15.6618+-0.2877 might be 1.0103x faster make-indexed-storage 4.6394+-0.1902 4.3648+-0.5294 might be 1.0629x faster make-rope-cse 6.2187+-0.4656 6.2034+-0.2740 marsaglia-larger-ints 64.3711+-0.7698 63.7964+-0.8763 marsaglia-osr-entry 32.3292+-0.7241 31.6858+-0.4001 might be 1.0203x faster max-boolean 3.6928+-0.0665 ? 3.7140+-0.0690 ? method-on-number 26.4035+-0.5871 ? 26.9631+-1.4138 ? might be 1.0212x slower min-boolean 3.7292+-0.1063 3.6640+-0.1526 might be 1.0178x faster minus-boolean-double 4.7460+-0.0945 ? 4.7672+-0.0839 ? minus-boolean 3.6267+-0.0682 ? 3.6631+-0.1046 ? might be 1.0100x slower misc-strict-eq 62.7381+-0.6039 ? 64.5027+-8.4910 ? might be 1.0281x slower mod-boolean-double 13.3830+-0.1178 13.3262+-0.1702 mod-boolean 10.1968+-0.1210 10.0786+-0.3492 might be 1.0117x faster mul-boolean-double 5.5607+-0.0539 5.5407+-0.0959 mul-boolean 3.9907+-0.0433 ? 3.9991+-0.0942 ? neg-boolean 4.8756+-0.1079 4.8442+-0.0816 negative-zero-divide 0.5137+-0.0824 ? 0.5978+-0.0985 ? might be 1.1637x slower negative-zero-modulo 0.5793+-0.0445 0.5203+-0.0911 might be 1.1133x faster negative-zero-negate 0.5425+-0.1009 ? 0.5475+-0.0986 ? nested-function-parsing 35.3429+-0.4282 ? 35.5314+-0.5264 ? new-array-buffer-dead 4.1840+-0.1201 4.0891+-0.0788 might be 1.0232x faster new-array-buffer-push 10.6068+-0.3360 ? 10.7335+-0.5192 ? might be 1.0120x slower new-array-dead 18.0568+-0.8132 17.8026+-2.0187 might be 1.0143x faster new-array-push 7.6938+-0.4593 7.6136+-0.4226 might be 1.0105x faster number-test 4.7355+-0.0973 4.7263+-0.1792 object-closure-call 9.0123+-0.1554 ? 9.0856+-0.2060 ? object-test 5.0338+-0.1843 ? 5.2270+-0.2014 ? might be 1.0384x slower obvious-sink-pathology-taken 193.1308+-4.3881 ? 193.4605+-3.5493 ? obvious-sink-pathology 182.8864+-1.6314 ? 183.3647+-1.3596 ? obviously-elidable-new-object 54.4272+-4.3139 ? 55.7643+-0.9572 ? might be 1.0246x slower plus-boolean-arith 3.7715+-0.0699 3.7708+-0.0856 plus-boolean-double 4.7588+-0.1548 ? 4.8088+-0.1525 ? might be 1.0105x slower plus-boolean 3.6003+-0.0970 3.5986+-0.1636 poly-chain-access-different-prototypes-simple 4.3901+-0.1139 4.3684+-0.1098 poly-chain-access-different-prototypes 3.7127+-0.1669 3.6774+-0.1273 poly-chain-access-simpler 4.4097+-0.0524 4.4069+-0.1152 poly-chain-access 3.2458+-0.7854 ? 3.2871+-0.6239 ? might be 1.0127x slower poly-stricteq 78.9216+-0.2204 78.8512+-0.2042 polymorphic-array-call 2.6255+-0.1611 ? 2.8098+-0.2170 ? might be 1.0702x slower polymorphic-get-by-id 4.7592+-0.1520 4.7288+-0.1615 polymorphic-put-by-id 65.9108+-40.8098 51.2645+-9.1029 might be 1.2857x faster polymorphic-structure 25.4593+-2.0687 25.2181+-2.5523 polyvariant-monomorphic-get-by-id 13.1194+-0.1963 ? 13.1890+-0.2291 ? proto-getter-access 14.8884+-0.5178 14.6929+-0.2292 might be 1.0133x faster put-by-id-replace-and-transition 12.3292+-0.3191 12.3202+-0.2364 put-by-id-slightly-polymorphic 3.9644+-0.0733 ? 4.0188+-0.1173 ? might be 1.0137x slower put-by-id 20.1829+-0.5304 ? 20.2830+-0.3572 ? put-by-val-direct 0.8912+-0.1572 ? 0.9322+-0.1469 ? might be 1.0460x slower put-by-val-large-index-blank-indexing-type 9.1901+-0.1787 ? 9.3301+-0.2704 ? might be 1.0152x slower put-by-val-machine-int 3.7016+-0.0620 3.6334+-0.1871 might be 1.0188x faster rare-osr-exit-on-local 20.6352+-0.3933 ? 20.7323+-0.2305 ? register-pressure-from-osr 30.5410+-0.3514 ? 30.6889+-0.5393 ? setter 7.3904+-0.2401 7.3760+-0.0759 simple-activation-demo 37.3148+-0.3246 ? 37.3370+-0.4877 ? simple-getter-access 20.2988+-0.2373 ? 20.3937+-0.2283 ? simple-poly-call-nested 24.3596+-2.1478 ? 25.5200+-0.6094 ? might be 1.0476x slower simple-poly-call 1.9127+-0.0841 1.7471+-0.1449 might be 1.0948x faster sin-boolean 29.1750+-4.3924 28.2089+-2.8591 might be 1.0342x faster sinkable-new-object-dag 105.6507+-2.0809 105.3959+-1.6423 sinkable-new-object-taken 79.8982+-5.1309 ? 80.5720+-5.7387 ? sinkable-new-object 59.8780+-3.3559 59.4673+-1.9124 slow-array-profile-convergence 4.3970+-0.1738 4.3038+-0.2912 might be 1.0217x faster slow-convergence 5.1273+-0.2973 ? 5.1501+-0.2223 ? sparse-conditional 1.6600+-0.1304 ? 1.7200+-0.1091 ? might be 1.0361x slower splice-to-remove 25.9040+-6.3450 23.9104+-0.9035 might be 1.0834x faster string-char-code-at 22.5710+-0.3281 ? 22.5760+-0.1379 ? string-concat-object 2.8878+-0.0542 ? 2.8912+-0.1062 ? string-concat-pair-object 3.0504+-0.3916 2.8508+-0.0940 might be 1.0700x faster string-concat-pair-simple 17.4365+-0.2055 17.2180+-0.1933 might be 1.0127x faster string-concat-simple 17.7892+-0.9581 17.7352+-0.5841 string-cons-repeat 11.6409+-0.2639 11.5594+-0.3281 string-cons-tower 10.9717+-0.7389 10.6776+-0.3984 might be 1.0276x faster string-equality 25.3356+-0.2002 25.2435+-0.2721 string-get-by-val-big-char 11.1638+-0.6235 10.9599+-0.2861 might be 1.0186x faster string-get-by-val-out-of-bounds-insane 6.2275+-0.2855 ? 6.3068+-0.1624 ? might be 1.0127x slower string-get-by-val-out-of-bounds 7.7307+-0.0646 ? 7.7767+-0.2443 ? string-get-by-val 5.4383+-0.1003 ? 5.4775+-0.1048 ? string-hash 3.1227+-0.1067 3.1019+-0.0705 string-long-ident-equality 20.7353+-0.3528 20.5071+-0.3715 might be 1.0111x faster string-repeat-arith 46.6816+-1.1185 ? 46.8887+-1.1672 ? string-sub 92.6799+-2.8343 91.2147+-0.9082 might be 1.0161x faster string-test 4.8079+-0.1593 4.7448+-0.1098 might be 1.0133x faster string-var-equality 49.8838+-0.5495 ? 49.9105+-0.2640 ? structure-hoist-over-transitions 4.0237+-0.1497 3.7920+-0.2644 might be 1.0611x faster substring-concat-weird 60.2033+-0.3329 60.1250+-0.6760 substring-concat 63.6879+-0.4284 ? 63.7352+-0.3766 ? substring 71.2977+-1.1155 70.8245+-0.1884 switch-char-constant 3.7321+-0.1386 ? 3.8049+-0.0881 ? might be 1.0195x slower switch-char 9.0539+-0.1118 ? 9.0677+-0.0960 ? switch-constant 16.0558+-0.4754 15.6205+-1.0968 might be 1.0279x faster switch-string-basic-big-var 24.9419+-2.1798 24.3000+-2.6618 might be 1.0264x faster switch-string-basic-big 26.2802+-6.0119 24.8378+-1.5962 might be 1.0581x faster switch-string-basic-var 31.1710+-1.2060 30.5059+-0.5550 might be 1.0218x faster switch-string-basic 27.9785+-0.5688 27.9263+-0.4390 switch-string-big-length-tower-var 29.0103+-0.2376 28.8912+-0.2907 switch-string-length-tower-var 22.6331+-0.2243 ? 22.6807+-0.1489 ? switch-string-length-tower 17.0455+-0.2459 17.0167+-0.3014 switch-string-short 17.0472+-0.2904 ? 17.1395+-0.0973 ? switch 17.0483+-5.6390 ? 18.3518+-5.9007 ? might be 1.0765x slower tear-off-arguments-simple 2.6840+-0.1897 ? 2.6915+-0.1327 ? tear-off-arguments 4.1147+-0.1977 4.0338+-0.1784 might be 1.0200x faster temporal-structure 19.8411+-0.3220 19.7670+-0.1565 to-int32-boolean 23.6723+-0.2690 ? 23.6812+-0.2819 ? undefined-test 4.8489+-0.2051 ? 4.9797+-0.0860 ? might be 1.0270x slower unprofiled-licm 31.8737+-0.7408 31.2333+-1.1014 might be 1.0205x faster weird-inlining-const-prop 2.8970+-0.3439 2.7829+-0.1086 might be 1.0410x faster <arithmetic> 24.2193+-0.1807 24.1929+-0.0571 might be 1.0011x faster <geometric> * 11.9491+-0.0637 11.9300+-0.0327 might be 1.0016x faster <harmonic> 6.1166+-0.1025 6.1098+-0.0191 might be 1.0011x faster base new AsmBench: bigfib.cpp 765.3113+-9.5552 763.2983+-6.2206 cray.c 775.7889+-2.5842 775.7218+-2.9207 dry.c 742.1899+-16.4512 ? 751.5627+-1.8093 ? might be 1.0126x slower FloatMM.c 1100.5737+-2.8897 1098.7407+-1.8540 gcc-loops.cpp 6741.5075+-18.4717 ? 6747.2728+-25.2418 ? n-body.c 1913.2250+-2.9021 ? 1914.6421+-3.2386 ? Quicksort.c 669.5978+-1.0605 ? 670.1346+-4.7238 ? stepanov_container.cpp 5561.4227+-36.6834 ? 5561.8893+-15.2593 ? Towers.c 456.7777+-2.2341 456.5948+-2.3970 <arithmetic> 2080.7105+-6.2736 ? 2082.2063+-2.9414 ? might be 1.0007x slower <geometric> * 1300.4707+-5.2685 ? 1301.9607+-1.9934 ? might be 1.0011x slower <harmonic> 958.9394+-4.7436 ? 960.2415+-1.7953 ? might be 1.0014x slower base new CompressionBench: huffman 766.5085+-18.8498 765.0837+-31.6104 arithmetic-simple 658.4100+-3.8763 ? 661.7753+-9.5518 ? arithmetic-precise 487.0505+-9.7649 483.1703+-0.9230 arithmetic-complex-precise 485.2621+-5.7781 481.6537+-2.2042 arithmetic-precise-order-0 705.6872+-14.6751 696.1768+-11.3209 might be 1.0137x faster arithmetic-precise-order-1 534.6540+-6.9562 ? 537.1047+-6.1721 ? arithmetic-precise-order-2 611.8352+-15.5463 609.1827+-2.3624 arithmetic-simple-order-1 675.4501+-2.2608 674.1208+-3.6378 arithmetic-simple-order-2 761.1940+-3.9704 759.6733+-3.8439 lz-string 491.4716+-5.3958 489.9752+-7.7746 <arithmetic> 617.7523+-5.8621 615.7917+-3.5233 might be 1.0032x faster <geometric> * 608.4656+-5.7111 606.4797+-3.0508 might be 1.0033x faster <harmonic> 599.1991+-5.6306 597.1748+-2.6749 might be 1.0034x faster base new All benchmarks: <arithmetic> 156.4079+-0.4644 156.3048+-0.6576 might be 1.0007x faster <geometric> 20.1840+-0.0685 20.1571+-0.0564 might be 1.0013x faster <harmonic> 5.1155+-0.0447 5.1123+-0.0188 might be 1.0006x faster base new Geomean of preferred means: <scaled-result> 101.2226+-0.3062 101.1790+-0.2300 might be 1.0004x faster === End of Run 1 === (In reply to comment #3) > ... in dilatable in v8-spider. ... I meant "deltablue". Thanks for the review. I've renamed the var as suggested. Landed in r175653: <http://trac.webkit.org/r175653>. |