WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
145404
JIT-generated store barrier code should assume the buffer pointer and capacity to be compile-time constants
https://bugs.webkit.org/show_bug.cgi?id=145404
Summary
JIT-generated store barrier code should assume the buffer pointer and capacit...
Filip Pizlo
Reported
2015-05-26 23:58:20 PDT
Patch forthcoming.
Attachments
the patch
(8.39 KB, patch)
2015-05-27 00:00 PDT
,
Filip Pizlo
kling
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2015-05-27 00:00:58 PDT
Created
attachment 253781
[details]
the patch
Andreas Kling
Comment 2
2015-05-27 00:31:29 PDT
Comment on
attachment 253781
[details]
the patch r=me Could also make WriteBarrierBuffer::m_capacity a const int, to generate a compile error if someone tries to write C++ that modifies it.
Filip Pizlo
Comment 3
2015-05-27 14:18:22 PDT
(In reply to
comment #2
)
> Comment on
attachment 253781
[details]
> the patch > > r=me > > Could also make WriteBarrierBuffer::m_capacity a const int, to generate a > compile error if someone tries to write C++ that modifies it.
Good point. I can also do the same thing for the buffer.
Filip Pizlo
Comment 4
2015-05-27 14:19:11 PDT
Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on dethklok (MacBookPro9,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (
r184897
) "FixedBarrier" at /Volumes/Data/pizlo/primary/OpenSource/WebKitBuild/Release/jsc (
r184897
) Collected 6 samples per benchmark/VM, with 6 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 FixedBarrier SunSpider: 3d-cube 5.4024+-0.1241 ? 5.5126+-0.0735 ? might be 1.0204x slower 3d-morph 5.9512+-0.3734 ? 6.0935+-0.6225 ? might be 1.0239x slower 3d-raytrace 6.9344+-0.2673 ? 7.2219+-0.4662 ? might be 1.0415x slower access-binary-trees 2.4104+-0.1470 2.3813+-0.0747 might be 1.0122x faster access-fannkuch 6.2151+-0.2299 6.1732+-0.0662 access-nbody 2.9501+-0.0586 ? 3.2009+-0.3005 ? might be 1.0850x slower access-nsieve 3.2749+-0.3362 ? 3.3566+-0.1165 ? might be 1.0250x slower bitops-3bit-bits-in-byte 1.6523+-0.0729 1.6294+-0.0556 might be 1.0141x faster bitops-bits-in-byte 4.2828+-0.3483 4.1796+-0.4162 might be 1.0247x faster bitops-bitwise-and 2.1360+-0.0518 ? 2.2149+-0.2311 ? might be 1.0369x slower bitops-nsieve-bits 3.4007+-0.2777 3.3208+-0.1466 might be 1.0241x faster controlflow-recursive 3.1488+-0.2885 3.0404+-0.0756 might be 1.0357x faster crypto-aes 4.5099+-0.1328 ? 4.6355+-0.1779 ? might be 1.0279x slower crypto-md5 3.5406+-0.7582 3.2116+-0.5254 might be 1.1024x faster crypto-sha1 2.7250+-0.3257 ? 2.9030+-0.2307 ? might be 1.0653x slower date-format-tofte 9.5145+-0.1589 9.4725+-0.1860 date-format-xparb 5.8299+-0.1525 ? 5.9432+-0.2178 ? might be 1.0194x slower math-cordic 3.0827+-0.0180 ? 3.0990+-0.0351 ? math-partial-sums 5.3936+-0.1564 ? 5.4813+-0.2075 ? might be 1.0163x slower math-spectral-norm 2.1547+-0.3763 2.0782+-0.1699 might be 1.0368x faster regexp-dna 8.5818+-1.5715 8.0215+-1.2058 might be 1.0698x faster string-base64 5.5967+-0.7010 5.1360+-0.8304 might be 1.0897x faster string-fasta 6.7527+-0.1216 ? 6.7709+-0.1699 ? string-tagcloud 9.7638+-0.8858 ? 9.7898+-0.7451 ? string-unpack-code 20.8037+-1.1409 ? 20.9520+-1.7305 ? string-validate-input 5.7830+-0.1343 ? 5.8644+-0.1788 ? might be 1.0141x slower <arithmetic> 5.4535+-0.0558 5.4494+-0.1862 might be 1.0008x faster TipOfTree FixedBarrier LongSpider: 3d-cube 936.5783+-37.0661 908.2792+-7.5458 might be 1.0312x faster 3d-morph 1544.9091+-3.8416 ? 1547.5833+-5.2910 ? 3d-raytrace 722.4093+-4.2111 718.3165+-9.0189 access-binary-trees 1014.0806+-11.4456 1005.2776+-7.3388 access-fannkuch 335.5954+-6.8674 328.6066+-6.2223 might be 1.0213x faster access-nbody 632.1154+-2.7622 630.1282+-6.6896 access-nsieve 478.6583+-4.9087 478.1301+-4.8642 bitops-3bit-bits-in-byte 45.2465+-2.0266 44.9757+-1.8123 bitops-bits-in-byte 99.9446+-3.3822 97.7538+-1.3825 might be 1.0224x faster bitops-nsieve-bits 425.1096+-2.5226 424.2565+-1.4985 controlflow-recursive 507.3588+-10.5142 497.2771+-12.7581 might be 1.0203x faster crypto-aes 712.6698+-8.7711 705.4842+-4.0554 might be 1.0102x faster crypto-md5 532.9410+-12.1858 ? 535.8918+-14.2203 ? crypto-sha1 605.8564+-3.7777 ? 606.1113+-8.7670 ? date-format-tofte 748.5439+-10.2886 ? 752.7761+-11.9579 ? date-format-xparb 788.3026+-20.0289 ? 821.4357+-28.7019 ? might be 1.0420x slower hash-map 175.5784+-3.5139 ? 178.0267+-5.3810 ? might be 1.0139x slower math-cordic 592.7552+-1.6449 ? 593.9285+-2.6489 ? math-partial-sums 513.2660+-2.8775 ? 516.2983+-9.6993 ? math-spectral-norm 570.3717+-2.1330 ? 570.4884+-1.9779 ? string-base64 384.6547+-11.3967 ? 386.0594+-9.8749 ? string-fasta 431.3802+-2.4398 ? 433.1368+-3.7717 ? string-tagcloud 197.1764+-2.4385 ? 198.0014+-3.3529 ? <geometric> 455.7758+-2.9137 454.9362+-1.5441 might be 1.0018x faster TipOfTree FixedBarrier V8Spider: crypto 56.7791+-2.5706 55.5774+-1.9633 might be 1.0216x faster deltablue 100.7910+-6.7721 99.8774+-5.2158 earley-boyer 49.9281+-2.2998 48.6957+-1.4832 might be 1.0253x faster raytrace 39.0110+-2.5302 ? 41.1357+-1.5358 ? might be 1.0545x slower regexp 84.3722+-1.8077 83.5372+-2.4115 richards 80.9662+-2.5568 ? 81.0214+-1.7867 ? splay 40.0555+-1.6580 38.4480+-2.1082 might be 1.0418x faster <geometric> 60.6924+-0.8833 60.2551+-0.9355 might be 1.0073x faster TipOfTree FixedBarrier Octane: encrypt 0.20658+-0.00135 0.20534+-0.00062 decrypt 3.65424+-0.06659 3.61281+-0.04466 might be 1.0115x faster deltablue x2 0.20210+-0.00763 0.20017+-0.00142 earley 0.39235+-0.00613 ? 0.39587+-0.00277 ? boyer 5.19260+-0.02237 ? 5.22860+-0.06290 ? navier-stokes x2 5.25316+-0.01768 5.24195+-0.02255 raytrace x2 1.27329+-0.07490 ? 1.27557+-0.04826 ? richards x2 0.12419+-0.00109 0.12304+-0.00193 splay x2 0.39807+-0.00237 0.39706+-0.00238 regexp x2 32.13597+-0.16921 ? 32.38226+-0.42561 ? pdfjs x2 42.65301+-0.36489 ? 43.04386+-0.22184 ? mandreel x2 51.09267+-0.45941 50.50409+-0.20375 might be 1.0117x faster gbemu x2 41.99921+-0.55400 ? 42.36462+-0.35399 ? closure 0.56425+-0.00290 ? 0.56621+-0.00188 ? jquery 7.24874+-0.04976 ? 7.39842+-0.16807 ? might be 1.0206x slower box2d x2 12.53385+-0.07663 ? 12.74194+-0.20767 ? might be 1.0166x slower zlib x2 396.91964+-15.79651 393.64728+-14.99151 typescript x2 825.07048+-11.23077 ? 837.41890+-12.40164 ? might be 1.0150x slower <geometric> 6.61192+-0.01954 ? 6.62399+-0.02784 ? might be 1.0018x slower TipOfTree FixedBarrier Kraken: ai-astar 238.565+-1.909 237.667+-1.735 audio-beat-detection 108.813+-2.824 ? 108.919+-2.040 ? audio-dft 121.691+-3.088 ? 122.294+-1.765 ? audio-fft 82.272+-4.592 ? 83.203+-5.254 ? might be 1.0113x slower audio-oscillator 78.972+-1.793 77.646+-1.481 might be 1.0171x faster imaging-darkroom 105.350+-1.183 ? 105.627+-1.473 ? imaging-desaturate 63.647+-0.389 ? 64.600+-1.792 ? might be 1.0150x slower imaging-gaussian-blur 112.625+-1.800 112.320+-3.820 json-parse-financial 46.633+-1.508 ? 48.370+-2.800 ? might be 1.0372x slower json-stringify-tinderbox 30.735+-2.101 28.403+-0.374 might be 1.0821x faster stanford-crypto-aes 58.579+-0.678 ? 59.382+-1.712 ? might be 1.0137x slower stanford-crypto-ccm 47.833+-2.025 47.370+-0.905 stanford-crypto-pbkdf2 112.699+-3.827 ? 113.071+-3.049 ? stanford-crypto-sha256-iterative 43.796+-1.631 ? 44.346+-1.833 ? might be 1.0126x slower <arithmetic> 89.444+-0.182 ? 89.516+-0.305 ? might be 1.0008x slower TipOfTree FixedBarrier JSRegress: abs-boolean 2.7412+-0.1055 ? 2.7741+-0.1477 ? might be 1.0120x slower adapt-to-double-divide 16.6885+-0.1438 ? 16.7544+-0.3750 ? aliased-arguments-getbyval 1.4072+-0.2149 1.2819+-0.0576 might be 1.0978x faster allocate-big-object 3.0782+-0.3724 2.8435+-0.1458 might be 1.0825x faster arguments-named-and-reflective 12.2398+-0.5833 ? 12.3949+-0.2025 ? might be 1.0127x slower arguments-out-of-bounds 14.9612+-0.1184 ? 15.1313+-0.3648 ? might be 1.0114x slower arguments-strict-mode 11.3545+-0.3990 ? 11.6556+-0.9424 ? might be 1.0265x slower arguments 10.2393+-0.1927 ? 10.3315+-1.3154 ? arity-mismatch-inlining 0.8827+-0.0617 ? 0.8854+-0.0489 ? array-access-polymorphic-structure 6.8850+-0.1969 ? 6.9250+-0.1574 ? array-nonarray-polymorhpic-access 32.7154+-0.4734 ? 33.0777+-0.9872 ? might be 1.0111x slower array-prototype-every 91.6207+-2.1094 87.5800+-2.7734 might be 1.0461x faster array-prototype-forEach 86.7904+-2.8339 84.4393+-1.9478 might be 1.0278x faster array-prototype-map 97.3620+-2.1913 93.8601+-2.9070 might be 1.0373x faster array-prototype-some 90.3911+-0.9495 88.2924+-2.6418 might be 1.0238x faster array-splice-contiguous 45.5993+-0.6289 44.1955+-0.7862 might be 1.0318x faster array-with-double-add 4.2021+-0.0558 ? 4.4896+-0.5065 ? might be 1.0684x slower array-with-double-increment 3.3804+-0.1540 ? 3.3988+-0.1794 ? array-with-double-mul-add 5.1809+-0.0323 ? 5.3220+-0.4036 ? might be 1.0272x slower array-with-double-sum 3.3615+-0.0664 ? 3.4839+-0.3561 ? might be 1.0364x slower array-with-int32-add-sub 6.8330+-0.0995 ? 6.9710+-0.1036 ? might be 1.0202x slower array-with-int32-or-double-sum 3.4774+-0.2411 ? 3.5034+-0.1748 ? ArrayBuffer-DataView-alloc-large-long-lived 37.8356+-1.7660 37.5742+-2.2718 ArrayBuffer-DataView-alloc-long-lived 14.8755+-1.4587 ? 14.8970+-1.4208 ? ArrayBuffer-Int32Array-byteOffset 3.8024+-0.0700 ? 3.8521+-0.0740 ? might be 1.0131x slower ArrayBuffer-Int8Array-alloc-large-long-lived 38.6631+-1.4047 ? 38.9495+-0.7546 ? ArrayBuffer-Int8Array-alloc-long-lived-buffer 22.2445+-1.4539 ? 22.3378+-1.4510 ? ArrayBuffer-Int8Array-alloc-long-lived 14.1440+-1.5304 13.4108+-0.3041 might be 1.0547x faster ArrayBuffer-Int8Array-alloc 11.1640+-1.4328 ? 11.4982+-1.6918 ? might be 1.0299x slower asmjs_bool_bug 7.5010+-0.3741 ? 7.7528+-0.0674 ? might be 1.0336x slower assign-custom-setter-polymorphic 3.1090+-0.0492 ! 3.2542+-0.0574 ! definitely 1.0467x slower assign-custom-setter 4.6236+-0.5800 ? 4.7891+-0.5324 ? might be 1.0358x slower basic-set 9.5610+-0.6746 9.5291+-0.3449 big-int-mul 4.1023+-0.0368 ! 4.1951+-0.0500 ! definitely 1.0226x slower boolean-test 3.1570+-0.0587 ? 3.2100+-0.1299 ? might be 1.0168x slower branch-fold 4.1145+-0.1647 ? 4.2259+-0.2950 ? might be 1.0271x slower branch-on-string-as-boolean 19.0611+-0.5175 ? 19.2580+-0.6666 ? might be 1.0103x slower by-val-generic 8.4947+-0.3925 8.3188+-0.3789 might be 1.0211x faster call-spread-apply 32.6043+-2.0658 30.8668+-1.4250 might be 1.0563x faster call-spread-call 25.5046+-0.6534 ? 25.5063+-1.2470 ? captured-assignments 0.5332+-0.0538 0.5195+-0.0098 might be 1.0262x faster cast-int-to-double 5.4158+-0.1290 ? 5.4270+-0.1815 ? cell-argument 8.9210+-0.4673 8.5743+-0.1983 might be 1.0404x faster cfg-simplify 2.8885+-0.0727 ? 3.0663+-0.3063 ? might be 1.0615x slower chain-getter-access 9.2975+-0.2339 ? 9.3322+-0.0975 ? cmpeq-obj-to-obj-other 12.7793+-0.8554 11.2059+-1.2280 might be 1.1404x faster constant-test 5.0089+-0.0248 ? 5.0130+-0.0435 ? create-lots-of-functions 11.7937+-0.5734 11.7856+-0.3468 cse-new-array-buffer 2.5369+-0.0605 ? 2.6380+-0.2677 ? might be 1.0398x slower cse-new-array 2.5723+-0.0229 ? 2.7190+-0.2566 ? might be 1.0570x slower DataView-custom-properties 43.1504+-1.5075 42.5532+-1.0027 might be 1.0140x faster deconstructing-parameters-overridden-by-function 0.6050+-0.0493 ? 0.6164+-0.0286 ? might be 1.0188x slower delay-tear-off-arguments-strictmode 14.3540+-0.1746 ^ 13.9730+-0.1903 ^ definitely 1.0273x faster deltablue-varargs 211.8776+-1.6285 210.6566+-1.0278 destructuring-arguments 17.8342+-0.4990 17.5766+-0.5108 might be 1.0147x faster destructuring-swap 5.1645+-0.1577 5.1328+-0.1387 direct-arguments-getbyval 1.2710+-0.0356 ? 1.2876+-0.0415 ? might be 1.0130x slower div-boolean-double 5.3263+-0.2018 5.2974+-0.0455 div-boolean 7.8723+-0.0551 7.8578+-0.0501 double-get-by-val-out-of-bounds 4.5353+-0.1022 ? 4.5533+-0.0788 ? double-pollution-getbyval 8.9859+-0.1354 8.9790+-0.1123 double-pollution-putbyoffset 4.4802+-0.0671 ? 4.5851+-0.2433 ? might be 1.0234x slower double-to-int32-typed-array-no-inline 2.5062+-0.1648 ? 2.5782+-0.2507 ? might be 1.0287x slower double-to-int32-typed-array 2.0455+-0.1034 ? 2.3210+-0.5895 ? might be 1.1347x slower double-to-uint32-typed-array-no-inline 2.7496+-0.1767 ? 2.8904+-0.2347 ? might be 1.0512x slower double-to-uint32-typed-array 2.1240+-0.1293 ? 2.1488+-0.2315 ? might be 1.0117x slower elidable-new-object-dag 44.3344+-1.8897 43.8529+-1.4594 might be 1.0110x faster elidable-new-object-roflcopter 44.1773+-1.3810 ? 45.0689+-1.9563 ? might be 1.0202x slower elidable-new-object-then-call 39.9130+-1.2831 ? 40.5542+-2.1366 ? might be 1.0161x slower elidable-new-object-tree 46.3351+-2.2033 45.5167+-1.4136 might be 1.0180x faster empty-string-plus-int 5.5422+-0.0887 5.5159+-0.1133 emscripten-cube2hash 38.6178+-1.4911 ? 39.3671+-2.2867 ? might be 1.0194x slower exit-length-on-plain-object 14.8695+-1.0824 ? 15.5258+-1.8005 ? might be 1.0441x slower external-arguments-getbyval 1.3002+-0.0583 1.2700+-0.0521 might be 1.0238x faster external-arguments-putbyval 2.3573+-0.0478 ? 2.4696+-0.1352 ? might be 1.0476x slower fixed-typed-array-storage-var-index 1.2905+-0.0700 ? 1.2983+-0.1464 ? fixed-typed-array-storage 0.8821+-0.0166 ? 0.9154+-0.0384 ? might be 1.0377x slower Float32Array-matrix-mult 4.6103+-0.1375 4.6023+-0.2020 Float32Array-to-Float64Array-set 51.9899+-0.4947 ? 52.6342+-0.6906 ? might be 1.0124x slower Float64Array-alloc-long-lived 86.7315+-1.9771 ? 87.1231+-1.2734 ? Float64Array-to-Int16Array-set 69.9154+-2.5033 ? 71.1528+-1.4221 ? might be 1.0177x slower fold-double-to-int 13.6422+-0.2554 ? 13.7717+-0.1768 ? fold-get-by-id-to-multi-get-by-offset-rare-int 10.7816+-1.4002 9.7987+-0.7250 might be 1.1003x faster fold-get-by-id-to-multi-get-by-offset 10.4770+-0.9606 9.6838+-0.9628 might be 1.0819x faster fold-multi-get-by-offset-to-get-by-offset 9.5840+-1.3350 9.3335+-0.7604 might be 1.0268x faster fold-multi-get-by-offset-to-poly-get-by-offset 9.5160+-1.5736 9.0353+-0.9004 might be 1.0532x faster fold-multi-put-by-offset-to-poly-put-by-offset 9.5094+-1.5596 8.8387+-1.3489 might be 1.0759x faster fold-multi-put-by-offset-to-put-by-offset 7.8097+-1.1152 ? 7.9244+-1.1433 ? might be 1.0147x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 9.8099+-0.6317 9.7943+-0.4070 fold-put-by-id-to-multi-put-by-offset 10.2678+-0.6984 ^ 8.7279+-0.5994 ^ definitely 1.1764x faster fold-put-structure 5.7264+-1.5837 ? 6.8394+-1.4747 ? might be 1.1943x slower for-of-iterate-array-entries 4.7216+-0.2074 ? 4.8263+-0.4993 ? might be 1.0222x slower for-of-iterate-array-keys 3.8674+-0.1909 ? 3.9274+-0.3203 ? might be 1.0155x slower for-of-iterate-array-values 3.7834+-0.2003 3.7670+-0.2360 fround 21.3765+-0.3596 21.2441+-0.3480 ftl-library-inlining-dataview 67.6874+-1.7935 66.4008+-1.7328 might be 1.0194x faster ftl-library-inlining 68.6326+-1.2024 ? 69.2281+-3.1443 ? function-dot-apply 2.3188+-0.2667 ? 2.3252+-0.0964 ? function-test 2.9202+-0.0685 ? 2.9483+-0.0511 ? function-with-eval 104.2918+-5.4161 ? 105.1459+-1.4030 ? gcse-poly-get-less-obvious 18.2732+-0.5200 ? 18.6001+-0.6782 ? might be 1.0179x slower gcse-poly-get 21.3652+-2.4785 21.3308+-1.4683 gcse 4.3741+-0.0579 ? 4.4097+-0.0412 ? get-by-id-bimorphic-check-structure-elimination-simple 2.8712+-0.1335 2.8029+-0.0437 might be 1.0244x faster get-by-id-bimorphic-check-structure-elimination 6.2158+-0.1440 ? 6.3628+-0.1170 ? might be 1.0237x slower get-by-id-chain-from-try-block 7.6300+-1.4021 ? 7.8407+-1.5616 ? might be 1.0276x slower get-by-id-check-structure-elimination 5.3250+-0.4139 ? 5.3316+-0.3724 ? get-by-id-proto-or-self 19.2677+-1.7191 ? 19.5647+-1.6500 ? might be 1.0154x slower get-by-id-quadmorphic-check-structure-elimination-simple 3.0085+-0.0695 2.9483+-0.0250 might be 1.0204x faster get-by-id-self-or-proto 19.5078+-2.3171 19.0832+-1.8838 might be 1.0223x faster get-by-val-out-of-bounds 4.4681+-0.1149 ? 4.6764+-0.4214 ? might be 1.0466x slower get_callee_monomorphic 3.0858+-0.3239 2.7490+-0.0430 might be 1.1225x faster get_callee_polymorphic 3.7288+-0.1464 ? 3.8147+-0.1666 ? might be 1.0230x slower getter-no-activation 5.1538+-0.2593 ? 5.2295+-0.3017 ? might be 1.0147x slower getter-richards 132.1296+-8.1940 130.4102+-4.0453 might be 1.0132x faster getter 6.0013+-1.0181 ? 6.0958+-0.7731 ? might be 1.0158x slower global-var-const-infer-fire-from-opt 1.0085+-0.1314 0.9226+-0.0248 might be 1.0931x faster global-var-const-infer 0.8813+-0.0969 ? 0.9194+-0.0942 ? might be 1.0433x slower HashMap-put-get-iterate-keys 29.4076+-2.0974 ? 31.0793+-3.3367 ? might be 1.0568x slower HashMap-put-get-iterate 31.4677+-1.3630 30.8628+-0.7056 might be 1.0196x faster HashMap-string-put-get-iterate 29.0543+-1.3563 27.2992+-0.5572 might be 1.0643x faster hoist-make-rope 11.8263+-0.6325 ? 12.5579+-0.6901 ? might be 1.0619x slower hoist-poly-check-structure-effectful-loop 5.1230+-0.0356 ? 5.1904+-0.1501 ? might be 1.0132x slower hoist-poly-check-structure 3.8971+-0.4480 3.8070+-0.1672 might be 1.0237x faster imul-double-only 8.2190+-0.7330 ? 8.7119+-0.2030 ? might be 1.0600x slower imul-int-only 10.0969+-0.6670 10.0234+-0.2452 imul-mixed 8.7029+-0.3631 8.3710+-0.4194 might be 1.0397x faster in-four-cases 22.3005+-0.1790 ? 22.4915+-0.2721 ? in-one-case-false 11.0022+-0.0979 ? 11.0373+-0.0699 ? in-one-case-true 11.0186+-0.1056 ? 11.1113+-0.1671 ? in-two-cases 11.6152+-0.0708 11.5530+-0.0517 indexed-properties-in-objects 3.1014+-0.3632 ? 3.1034+-0.3071 ? infer-closure-const-then-mov-no-inline 4.3056+-0.4493 ? 4.7159+-0.5736 ? might be 1.0953x slower infer-closure-const-then-mov 20.0425+-0.3650 ? 20.2830+-0.6701 ? might be 1.0120x slower infer-closure-const-then-put-to-scope-no-inline 13.0978+-1.9496 12.8403+-0.0971 might be 1.0201x faster infer-closure-const-then-put-to-scope 22.7262+-1.6774 22.1598+-1.6790 might be 1.0256x faster infer-closure-const-then-reenter-no-inline 59.0086+-2.2029 56.0964+-1.8139 might be 1.0519x faster infer-closure-const-then-reenter 22.2889+-0.9258 ? 23.2938+-1.6251 ? might be 1.0451x slower infer-constant-global-property 3.6899+-0.3226 3.5933+-0.0640 might be 1.0269x faster infer-constant-property 2.8726+-0.2632 2.8066+-0.1302 might be 1.0235x faster infer-one-time-closure-ten-vars 13.3302+-1.3485 12.6748+-0.2754 might be 1.0517x faster infer-one-time-closure-two-vars 12.4294+-0.7462 12.3888+-0.4125 infer-one-time-closure 12.2891+-0.7945 ? 12.7171+-1.3169 ? might be 1.0348x slower infer-one-time-deep-closure 21.7083+-0.9639 ? 21.7503+-1.4274 ? inline-arguments-access 4.5773+-0.1175 ? 4.6600+-0.1963 ? might be 1.0181x slower inline-arguments-aliased-access 4.7011+-0.2746 ? 4.8165+-0.3542 ? might be 1.0246x slower inline-arguments-local-escape 4.5536+-0.0409 ? 4.6324+-0.1287 ? might be 1.0173x slower inline-get-scoped-var 5.1202+-0.2843 5.0055+-0.2725 might be 1.0229x faster inlined-put-by-id-transition 12.0424+-0.3697 11.4985+-0.3365 might be 1.0473x faster int-or-other-abs-then-get-by-val 5.1250+-0.1881 5.0236+-0.0625 might be 1.0202x faster int-or-other-abs-zero-then-get-by-val 18.0168+-0.1778 ! 18.9449+-0.3866 ! definitely 1.0515x slower int-or-other-add-then-get-by-val 4.5715+-0.2871 4.5294+-0.2097 int-or-other-add 5.3837+-0.0452 ? 5.4700+-0.1374 ? might be 1.0160x slower int-or-other-div-then-get-by-val 4.2753+-0.0612 ? 4.3267+-0.0715 ? might be 1.0120x slower int-or-other-max-then-get-by-val 5.3144+-2.1800 4.4486+-0.1720 might be 1.1946x faster int-or-other-min-then-get-by-val 4.5113+-0.0635 4.4401+-0.1457 might be 1.0160x faster int-or-other-mod-then-get-by-val 4.1241+-0.1483 4.0722+-0.1908 might be 1.0128x faster int-or-other-mul-then-get-by-val 3.9007+-0.0326 ? 4.0756+-0.2603 ? might be 1.0449x slower int-or-other-neg-then-get-by-val 4.8565+-0.1115 ? 4.8820+-0.1223 ? int-or-other-neg-zero-then-get-by-val 17.9166+-0.1960 ! 18.5428+-0.2952 ! definitely 1.0350x slower int-or-other-sub-then-get-by-val 4.4795+-0.1351 ? 4.4894+-0.1898 ? int-or-other-sub 3.6567+-0.0350 3.6163+-0.0222 might be 1.0112x faster int-overflow-local 4.4981+-0.0571 ? 4.6514+-0.1389 ? might be 1.0341x slower Int16Array-alloc-long-lived 51.8038+-1.0719 ? 52.8274+-1.2140 ? might be 1.0198x slower Int16Array-bubble-sort-with-byteLength 19.3246+-0.1913 ? 20.2306+-0.8038 ? might be 1.0469x slower Int16Array-bubble-sort 19.8560+-0.5893 ? 20.9589+-1.6317 ? might be 1.0555x slower Int16Array-load-int-mul 1.5479+-0.0655 ? 1.5968+-0.0583 ? might be 1.0317x slower Int16Array-to-Int32Array-set 54.0542+-1.8035 53.0034+-1.4753 might be 1.0198x faster Int32Array-alloc-large 23.9862+-0.9109 ? 24.0844+-0.6116 ? Int32Array-alloc-long-lived 62.9469+-1.4026 62.3420+-1.1847 Int32Array-alloc 3.3223+-0.0571 ? 3.3919+-0.2475 ? might be 1.0210x slower Int32Array-Int8Array-view-alloc 6.6777+-0.2280 ? 7.1293+-0.8446 ? might be 1.0676x slower int52-spill 5.8411+-0.0652 5.8105+-0.0493 Int8Array-alloc-long-lived 47.8086+-1.1988 ? 49.0047+-1.7158 ? might be 1.0250x slower Int8Array-load-with-byteLength 3.5378+-0.3178 3.4255+-0.0464 might be 1.0328x faster Int8Array-load 3.4445+-0.0953 3.4085+-0.0340 might be 1.0106x faster integer-divide 11.3311+-0.1655 11.0161+-0.1511 might be 1.0286x faster integer-modulo 2.2316+-0.0944 2.1647+-0.0839 might be 1.0309x faster is-boolean-fold-tricky 4.4222+-0.0868 ? 4.6445+-0.3019 ? might be 1.0503x slower is-boolean-fold 2.9244+-0.0505 2.9078+-0.0460 is-function-fold-tricky-internal-function 12.3062+-0.3416 11.8700+-0.1511 might be 1.0368x faster is-function-fold-tricky 4.6486+-0.2451 4.5998+-0.0613 might be 1.0106x faster is-function-fold 3.0758+-0.2735 2.9469+-0.2291 might be 1.0438x faster is-number-fold-tricky 4.7542+-0.5812 4.4430+-0.0577 might be 1.0701x faster is-number-fold 3.0385+-0.2265 ? 3.0622+-0.3921 ? is-object-or-null-fold-functions 3.1607+-0.3696 2.9824+-0.0308 might be 1.0598x faster is-object-or-null-fold-less-tricky 4.5824+-0.0490 ? 4.5854+-0.1569 ? is-object-or-null-fold-tricky 6.7827+-0.2972 6.7516+-0.1916 is-object-or-null-fold 2.9762+-0.0961 2.9322+-0.0358 might be 1.0150x faster is-object-or-null-trickier-function 4.7846+-0.1829 4.6765+-0.1103 might be 1.0231x faster is-object-or-null-trickier-internal-function 12.7692+-0.2349 ? 13.9882+-2.2841 ? might be 1.0955x slower is-object-or-null-tricky-function 4.6179+-0.1151 ? 4.6679+-0.2049 ? might be 1.0108x slower is-object-or-null-tricky-internal-function 9.7803+-0.3091 ^ 9.3197+-0.1233 ^ definitely 1.0494x faster is-string-fold-tricky 4.5310+-0.0955 4.5212+-0.1237 is-string-fold 3.0899+-0.3756 2.9413+-0.1065 might be 1.0505x faster is-undefined-fold-tricky 3.7194+-0.0977 ? 3.7761+-0.1633 ? might be 1.0153x slower is-undefined-fold 3.0532+-0.3007 2.9141+-0.1212 might be 1.0478x faster large-int-captured 4.7412+-0.0973 4.6191+-0.0707 might be 1.0264x faster large-int-neg 16.7010+-1.4664 ? 16.7439+-0.8690 ? large-int 15.4763+-1.3356 15.1743+-0.8317 might be 1.0199x faster load-varargs-elimination 23.2555+-0.8092 ? 23.6084+-1.1965 ? might be 1.0152x slower logical-not 4.7589+-0.1231 4.6376+-0.0378 might be 1.0262x faster lots-of-fields 12.4545+-0.4556 12.4297+-0.2255 make-indexed-storage 3.1235+-0.2052 ? 3.2617+-0.2120 ? might be 1.0442x slower make-rope-cse 11.9009+-1.7680 11.3543+-1.3295 might be 1.0481x faster marsaglia-larger-ints 36.7079+-0.4246 ? 37.3337+-1.2187 ? might be 1.0170x slower marsaglia-osr-entry 23.3733+-0.5291 ? 24.5865+-2.2785 ? might be 1.0519x slower max-boolean 2.5999+-0.0578 2.5656+-0.1087 might be 1.0134x faster method-on-number 17.9552+-1.4654 ? 18.8810+-0.2026 ? might be 1.0516x slower min-boolean 2.5986+-0.0510 2.5638+-0.0893 might be 1.0136x faster minus-boolean-double 3.2006+-0.0497 ? 3.2672+-0.0557 ? might be 1.0208x slower minus-boolean 2.4194+-0.0439 ? 2.5104+-0.2916 ? might be 1.0376x slower misc-strict-eq 40.0911+-1.8104 39.5722+-0.7875 might be 1.0131x faster mod-boolean-double 11.1022+-0.0685 ? 11.2161+-0.6038 ? might be 1.0103x slower mod-boolean 7.9189+-0.1277 7.9011+-0.0901 mul-boolean-double 3.7446+-0.0670 3.7215+-0.0735 mul-boolean 2.9528+-0.0862 2.9071+-0.0460 might be 1.0157x faster neg-boolean 3.2826+-0.2042 3.2179+-0.0880 might be 1.0201x faster negative-zero-divide 0.4023+-0.0129 ? 0.4191+-0.0137 ? might be 1.0418x slower negative-zero-modulo 0.3923+-0.0148 0.3907+-0.0110 negative-zero-negate 0.3865+-0.0475 0.3835+-0.0369 nested-function-parsing 39.8370+-1.6829 38.3002+-0.4765 might be 1.0401x faster new-array-buffer-dead 113.0919+-2.1872 ? 114.0677+-1.2141 ? new-array-buffer-push 7.0294+-0.6423 6.9281+-0.2272 might be 1.0146x faster new-array-dead 19.7086+-1.1271 19.1176+-0.4731 might be 1.0309x faster new-array-push 6.2095+-0.1726 ? 6.4547+-0.2507 ? might be 1.0395x slower no-inline-constructor 40.5874+-0.7100 ? 41.1237+-1.6916 ? might be 1.0132x slower number-test 3.1329+-0.0164 ^ 3.0866+-0.0271 ^ definitely 1.0150x faster object-closure-call 5.6898+-0.0747 5.6792+-0.0498 object-test 2.9757+-0.0710 ? 2.9776+-0.2430 ? obvious-sink-pathology-taken 142.6283+-2.0203 142.4558+-1.6023 obvious-sink-pathology 132.4686+-1.0429 131.5727+-2.3227 obviously-elidable-new-object 35.9925+-1.1432 ? 36.7059+-1.9203 ? might be 1.0198x slower plus-boolean-arith 2.7147+-0.3142 ? 2.7465+-0.3428 ? might be 1.0117x slower plus-boolean-double 3.5469+-0.3822 3.2523+-0.0597 might be 1.0906x faster plus-boolean 2.4403+-0.0212 ! 2.5110+-0.0342 ! definitely 1.0289x slower poly-chain-access-different-prototypes-simple 3.3943+-0.2100 3.3195+-0.0575 might be 1.0225x faster poly-chain-access-different-prototypes 2.6337+-0.0358 ? 2.6910+-0.1319 ? might be 1.0218x slower poly-chain-access-simpler 3.3306+-0.0562 ? 3.4880+-0.2590 ? might be 1.0473x slower poly-chain-access 2.6855+-0.1328 ? 2.6931+-0.0875 ? poly-stricteq 62.2120+-2.1629 61.8183+-0.7837 polymorphic-array-call 1.4707+-0.1357 1.4201+-0.1076 might be 1.0356x faster polymorphic-get-by-id 3.1670+-0.0380 ? 3.1914+-0.0951 ? polymorphic-put-by-id 34.1596+-2.1733 33.4633+-3.5272 might be 1.0208x faster polymorphic-structure 14.9954+-0.2986 14.9395+-0.1925 polyvariant-monomorphic-get-by-id 8.9555+-0.6717 ? 9.1200+-0.5040 ? might be 1.0184x slower proto-getter-access 9.2113+-0.1034 ? 9.4272+-0.1659 ? might be 1.0234x slower put-by-id-replace-and-transition 9.4652+-0.2931 ? 9.6529+-0.1217 ? might be 1.0198x slower put-by-id-slightly-polymorphic 2.8955+-0.0674 ? 2.9103+-0.0651 ? put-by-id 12.7643+-0.5149 ? 13.0375+-0.4174 ? might be 1.0214x slower put-by-val-direct 0.3790+-0.0189 ? 0.3830+-0.0240 ? might be 1.0106x slower put-by-val-large-index-blank-indexing-type 11.0986+-0.6851 ? 11.5837+-1.2666 ? might be 1.0437x slower put-by-val-machine-int 2.8530+-0.1915 2.8301+-0.0507 rare-osr-exit-on-local 15.1508+-0.3041 ? 15.3833+-0.5252 ? might be 1.0153x slower register-pressure-from-osr 22.1242+-1.0860 21.6176+-0.2748 might be 1.0234x faster setter 6.7505+-0.7091 6.4668+-0.9861 might be 1.0439x faster simple-activation-demo 25.5648+-0.4433 ? 25.6648+-0.9561 ? simple-getter-access 11.8409+-0.3986 ? 11.8688+-0.1101 ? simple-poly-call-nested 7.9185+-0.1507 ? 8.0043+-0.5052 ? might be 1.0108x slower simple-poly-call 1.3364+-0.0703 ? 1.3409+-0.0206 ? sin-boolean 23.9088+-1.1592 23.1812+-1.1689 might be 1.0314x faster singleton-scope 62.6624+-0.7843 ? 65.2948+-2.3639 ? might be 1.0420x slower sink-function 12.5812+-1.0843 12.3404+-0.2927 might be 1.0195x faster sink-huge-activation 19.2699+-0.6037 18.8361+-0.5508 might be 1.0230x faster sinkable-new-object-dag 71.1612+-1.9667 71.0706+-1.9905 sinkable-new-object-taken 52.4861+-3.1022 50.9764+-2.4519 might be 1.0296x faster sinkable-new-object 39.8418+-2.5657 ? 40.0768+-1.3934 ? slow-array-profile-convergence 3.1504+-0.5083 3.0459+-0.3477 might be 1.0343x faster slow-convergence 2.9090+-0.3355 ? 2.9299+-0.3530 ? slow-ternaries 19.8698+-2.3376 19.7309+-2.5388 sorting-benchmark 20.0955+-0.3641 ? 20.2184+-0.8587 ? sparse-conditional 1.1766+-0.0229 ? 1.1877+-0.0464 ? splice-to-remove 16.4330+-1.6573 15.2671+-0.4836 might be 1.0764x faster string-char-code-at 16.0426+-0.3205 ? 16.9819+-1.3714 ? might be 1.0586x slower string-concat-object 2.5682+-0.0841 ? 2.7093+-0.2206 ? might be 1.0549x slower string-concat-pair-object 2.6794+-0.2854 2.6646+-0.2652 string-concat-pair-simple 12.0311+-1.2172 11.5090+-0.2981 might be 1.0454x faster string-concat-simple 12.6977+-1.1813 ? 12.8015+-1.0729 ? string-cons-repeat 8.3306+-0.8046 ? 8.3333+-0.7028 ? string-cons-tower 8.5104+-0.9344 ? 9.2300+-1.0585 ? might be 1.0846x slower string-equality 19.7292+-1.1989 18.1302+-0.4428 might be 1.0882x faster string-get-by-val-big-char 7.3045+-0.1007 7.2310+-0.0614 might be 1.0102x faster string-get-by-val-out-of-bounds-insane 3.9898+-0.5717 3.7522+-0.0906 might be 1.0633x faster string-get-by-val-out-of-bounds 5.4095+-0.0717 ! 5.5391+-0.0414 ! definitely 1.0240x slower string-get-by-val 3.3897+-0.0464 ? 3.4362+-0.1186 ? might be 1.0137x slower string-hash 2.1748+-0.2064 ? 2.3149+-0.3579 ? might be 1.0644x slower string-long-ident-equality 15.7026+-0.3777 15.0158+-0.8771 might be 1.0457x faster string-out-of-bounds 14.9251+-0.2031 ? 15.4075+-0.8344 ? might be 1.0323x slower string-repeat-arith 36.2136+-2.4103 35.5451+-2.4624 might be 1.0188x faster string-sub 75.1329+-2.1548 ^ 67.3658+-3.3043 ^ definitely 1.1153x faster string-test 3.1163+-0.1745 2.9788+-0.0944 might be 1.0462x faster string-var-equality 33.4841+-1.5697 ? 33.8568+-1.5355 ? might be 1.0111x slower structure-hoist-over-transitions 2.8690+-0.2075 2.8189+-0.2850 might be 1.0178x faster substring-concat-weird 41.2944+-1.6853 40.3503+-0.3870 might be 1.0234x faster substring-concat 43.9031+-1.8429 42.8156+-0.8320 might be 1.0254x faster substring 46.9802+-2.5959 ? 47.8797+-2.0967 ? might be 1.0191x slower switch-char-constant 3.0500+-0.3498 2.8738+-0.1548 might be 1.0613x faster switch-char 8.8002+-3.3793 8.2687+-2.6562 might be 1.0643x faster switch-constant 8.3243+-0.1379 ? 8.4425+-0.2367 ? might be 1.0142x slower switch-string-basic-big-var 18.6165+-0.3036 18.5994+-0.2594 switch-string-basic-big 14.8310+-0.0955 14.7546+-0.0634 switch-string-basic-var 15.4653+-0.3219 15.3588+-0.2961 switch-string-basic 13.4176+-0.0589 ! 13.6138+-0.1238 ! definitely 1.0146x slower switch-string-big-length-tower-var 20.9171+-1.3918 ? 21.1534+-1.4709 ? might be 1.0113x slower switch-string-length-tower-var 15.5333+-0.2282 ? 16.1687+-1.3506 ? might be 1.0409x slower switch-string-length-tower 12.9320+-0.1983 ! 13.2056+-0.0440 ! definitely 1.0212x slower switch-string-short 12.9088+-0.1609 ? 13.6442+-0.9296 ? might be 1.0570x slower switch 12.7115+-0.2335 ? 12.7558+-0.2682 ? tear-off-arguments-simple 3.6084+-0.1448 3.5340+-0.0467 might be 1.0211x faster tear-off-arguments 4.9178+-0.2361 4.9073+-0.1201 temporal-structure 12.2721+-0.1200 ? 12.4495+-0.4464 ? might be 1.0145x slower to-int32-boolean 14.4649+-1.5269 13.8293+-0.0687 might be 1.0460x faster try-catch-get-by-val-cloned-arguments 15.0028+-1.1604 14.6920+-0.2183 might be 1.0212x faster try-catch-get-by-val-direct-arguments 6.7570+-0.3029 ? 7.0170+-0.8660 ? might be 1.0385x slower try-catch-get-by-val-scoped-arguments 7.7426+-0.3026 ? 7.8540+-0.9170 ? might be 1.0144x slower typed-array-get-set-by-val-profiling 32.4152+-0.8358 ? 32.5718+-1.3579 ? undefined-property-access 347.1458+-3.3408 ? 348.3503+-2.0948 ? undefined-test 3.2778+-0.3211 3.1057+-0.1044 might be 1.0554x faster unprofiled-licm 23.1265+-1.2510 23.0105+-0.5249 varargs-call 14.6327+-0.2797 ? 15.2153+-0.8042 ? might be 1.0398x slower varargs-construct-inline 28.1265+-0.7803 ? 28.2982+-0.6558 ? varargs-construct 22.6997+-0.3158 ? 22.9999+-0.7962 ? might be 1.0132x slower varargs-inline 9.5201+-0.1538 ? 9.6912+-0.6957 ? might be 1.0180x slower varargs-strict-mode 10.3601+-0.1300 10.1407+-0.1034 might be 1.0216x faster varargs 10.6289+-0.2999 ^ 10.1561+-0.1036 ^ definitely 1.0466x faster weird-inlining-const-prop 3.3742+-0.4345 3.3082+-0.3207 might be 1.0200x faster <geometric> 8.7025+-0.0195 8.6965+-0.0374 might be 1.0007x faster TipOfTree FixedBarrier AsmBench: bigfib.cpp 499.9820+-4.3729 499.8335+-2.8046 cray.c 431.9010+-4.6013 430.7958+-2.7131 dry.c 489.1967+-8.4841 ? 493.3357+-6.7356 ? FloatMM.c 729.6863+-0.8664 ? 731.7105+-2.0551 ? gcc-loops.cpp 4320.8397+-21.5516 4311.2373+-8.8867 n-body.c 987.3878+-2.2445 ? 987.5903+-4.1096 ? Quicksort.c 426.5098+-6.9606 424.7692+-1.5118 stepanov_container.cpp 3722.8850+-13.9028 ? 3723.7428+-38.2598 ? Towers.c 262.8564+-1.8271 ? 264.3949+-2.0665 ? <geometric> 801.9660+-1.0032 ? 802.7205+-2.3470 ? might be 1.0009x slower TipOfTree FixedBarrier CompressionBench: huffman 349.1421+-4.2823 ? 354.5170+-4.0363 ? might be 1.0154x slower arithmetic-simple 369.3660+-4.8686 366.9680+-2.6750 arithmetic-precise 295.5450+-3.2665 ? 296.6311+-2.6846 ? arithmetic-complex-precise 306.6025+-3.2128 ? 306.8235+-3.7805 ? arithmetic-precise-order-0 391.0164+-7.7258 384.8709+-4.0081 might be 1.0160x faster arithmetic-precise-order-1 332.3199+-1.7432 ? 339.1058+-17.7992 ? might be 1.0204x slower arithmetic-precise-order-2 368.8682+-6.4057 ? 369.5465+-7.5155 ? arithmetic-simple-order-1 429.4815+-5.2338 427.8683+-3.1362 arithmetic-simple-order-2 472.5242+-6.8914 471.1797+-4.5618 lz-string 326.5867+-5.4793 ? 327.9716+-4.7755 ? <geometric> 360.5244+-1.0719 ? 361.1117+-1.7006 ? might be 1.0016x slower TipOfTree FixedBarrier Geomean of preferred means: <scaled-result> 62.2142+-0.1105 62.1700+-0.3061 might be 1.0007x faster
Filip Pizlo
Comment 5
2015-05-27 14:35:17 PDT
Landed in
http://trac.webkit.org/changeset/184920
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug