Summary: | Rationalize DFG DCE | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||||||
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | barraclough, ggaren, mark.lam, mhahnenberg, msaboff, nrotem, oliver, sam | ||||||||
Priority: | P2 | ||||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | All | ||||||||||
OS: | All | ||||||||||
Bug Depends on: | 125531 | ||||||||||
Bug Blocks: | 125519, 126239 | ||||||||||
Attachments: |
|
Description
Filip Pizlo
2013-12-10 11:00:08 PST
Created attachment 218882 [details]
work in progress
I'm basically fixing bugs and then writing tests which reveal more bugs.
It's kind of fun.
Created attachment 219283 [details]
more
Created attachment 220186 [details]
the patch
Comment on attachment 220186 [details]
the patch
r=me
(In reply to comment #4) > (From update of attachment 220186 [details]) > r=me You mentioned you wrote tests that revealed these bugs. Where are they? (In reply to comment #5) > (In reply to comment #4) > > (From update of attachment 220186 [details] [details]) > > r=me > > You mentioned you wrote tests that revealed these bugs. Where are they? Already landed in http://trac.webkit.org/changeset/161126 (In reply to comment #6) > (In reply to comment #5) > > (In reply to comment #4) > > > (From update of attachment 220186 [details] [details] [details]) > > > r=me > > > > You mentioned you wrote tests that revealed these bugs. Where are they? > > Already landed in http://trac.webkit.org/changeset/161126 Boomshockalocka. These performance numbers are amusing. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, and JSRegress on oldmac (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc (r161126) "DCE" at /Volumes/Data/fromMiniMe/tertiary/OpenSource/WebKitBuild/Release/jsc (r161126) Collected 10 samples per benchmark/VM, with 10 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 DCE SunSpider: 3d-cube 8.1320+-0.0595 ^ 7.6937+-0.0753 ^ definitely 1.0570x faster 3d-morph 8.8562+-0.1206 8.8468+-0.0710 3d-raytrace 9.5668+-0.0715 9.4886+-0.1086 access-binary-trees 2.1611+-0.0539 2.1427+-0.0184 access-fannkuch 8.1500+-0.0614 8.0368+-0.0836 might be 1.0141x faster access-nbody 4.2495+-0.0444 ? 4.2820+-0.0612 ? access-nsieve 5.0173+-0.0289 ? 5.0355+-0.0764 ? bitops-3bit-bits-in-byte 2.0006+-0.0246 ? 2.0126+-0.0419 ? bitops-bits-in-byte 7.1954+-0.0622 7.1838+-0.0709 bitops-bitwise-and 3.0898+-0.0322 3.0650+-0.0459 bitops-nsieve-bits 4.7083+-0.0139 ! 5.2769+-0.0226 ! definitely 1.1208x slower controlflow-recursive 3.2210+-0.0543 3.1919+-0.0292 crypto-aes 5.6242+-0.0692 5.5986+-0.0223 crypto-md5 3.4149+-0.0277 3.3888+-0.0151 crypto-sha1 3.0272+-0.0075 ? 3.0329+-0.0204 ? date-format-tofte 11.8652+-0.1693 ? 11.9735+-0.1451 ? date-format-xparb 8.8528+-0.0729 ? 9.1841+-0.2584 ? might be 1.0374x slower math-cordic 4.3948+-0.1352 4.3590+-0.1254 math-partial-sums 10.3029+-0.0710 10.3012+-0.0967 math-spectral-norm 2.7991+-0.0266 2.7938+-0.0070 regexp-dna 13.0390+-0.1332 13.0283+-0.1046 string-base64 5.6473+-0.0358 5.6342+-0.0500 string-fasta 10.4253+-0.0884 10.4026+-0.0867 string-tagcloud 15.7119+-0.0732 15.5803+-0.0867 string-unpack-code 31.3378+-0.2592 ? 31.3383+-0.1334 ? string-validate-input 7.0740+-0.0547 ? 7.1454+-0.1526 ? might be 1.0101x slower <arithmetic> * 7.6871+-0.0147 ? 7.6930+-0.0156 ? might be 1.0008x slower <geometric> 6.1749+-0.0195 ? 6.1859+-0.0161 ? might be 1.0018x slower <harmonic> 5.0842+-0.0248 ? 5.0932+-0.0186 ? might be 1.0018x slower TipOfTree DCE LongSpider: 3d-cube 2675.6902+-9.5222 ^ 2135.7886+-8.7532 ^ definitely 1.2528x faster 3d-morph 1496.3218+-1.6131 ? 1499.4468+-7.1538 ? 3d-raytrace 1506.0730+-8.5439 1504.3271+-4.4835 access-binary-trees 2467.2312+-9.2616 ? 2482.3215+-8.7034 ? access-fannkuch 657.0691+-0.6737 656.1850+-2.7354 access-nbody 1499.3143+-4.6995 1496.5226+-1.7041 access-nsieve 1554.4675+-5.2996 1552.1214+-5.0934 bitops-3bit-bits-in-byte 126.0117+-0.1696 ? 126.2113+-0.1503 ? bitops-bits-in-byte 598.5246+-3.6344 ? 602.3112+-4.2488 ? bitops-nsieve-bits 1051.9732+-2.1172 ! 1149.9595+-2.2812 ! definitely 1.0931x slower controlflow-recursive 1474.1888+-0.7479 1473.4970+-0.4625 crypto-aes 1659.8341+-10.3354 1657.6107+-2.5116 crypto-md5 1241.3078+-0.7803 ? 1241.5600+-3.1818 ? crypto-sha1 1630.2178+-6.9962 1626.3382+-5.2377 date-format-tofte 1197.6947+-8.5854 ? 1219.8375+-14.9319 ? might be 1.0185x slower date-format-xparb 1465.6775+-21.1772 ? 1497.4755+-22.6356 ? might be 1.0217x slower math-cordic 1736.4209+-0.4231 ? 1760.4699+-52.5357 ? might be 1.0138x slower math-partial-sums 1307.9766+-2.7588 1304.7951+-2.5959 math-spectral-norm 1826.1313+-0.5136 ? 1826.8634+-0.7156 ? string-base64 506.0616+-2.1053 504.7036+-2.5044 string-fasta 988.4543+-3.2385 ! 996.6150+-3.4076 ! definitely 1.0083x slower string-tagcloud 391.0838+-2.3348 389.1763+-1.2255 <arithmetic> 1320.8057+-1.1452 ^ 1304.7335+-2.0746 ^ definitely 1.0123x faster <geometric> * 1122.6361+-1.0896 ^ 1118.6245+-1.3779 ^ definitely 1.0036x faster <harmonic> 810.2759+-0.9796 ? 811.2115+-0.5234 ? might be 1.0012x slower TipOfTree DCE V8Spider: crypto 80.3342+-0.9145 79.4921+-0.3032 might be 1.0106x faster deltablue 100.5419+-0.6083 99.6720+-0.7963 earley-boyer 73.8694+-0.3580 73.6717+-1.0037 raytrace 45.8973+-0.1791 45.6676+-0.2451 regexp 100.6413+-0.2185 ^ 100.0988+-0.2613 ^ definitely 1.0054x faster richards 131.4713+-1.3796 ? 132.5271+-1.4034 ? splay 46.0539+-0.3213 ? 46.1576+-0.4904 ? <arithmetic> 82.6870+-0.1628 82.4695+-0.2822 might be 1.0026x faster <geometric> * 77.4268+-0.1198 77.1818+-0.2234 might be 1.0032x faster <harmonic> 72.1776+-0.1149 71.9455+-0.2089 might be 1.0032x faster TipOfTree DCE Octane and V8v7: encrypt 0.46873+-0.00052 ^ 0.46550+-0.00040 ^ definitely 1.0069x faster decrypt 8.59196+-0.01228 8.58423+-0.01822 deltablue x2 0.57708+-0.01611 0.57054+-0.00630 might be 1.0115x faster earley 0.91690+-0.00671 0.90526+-0.00567 might be 1.0129x faster boyer 12.47120+-0.04893 ? 12.60686+-0.23651 ? might be 1.0109x slower raytrace x2 4.28358+-0.03112 ? 4.30765+-0.02617 ? regexp x2 32.95508+-0.15442 32.87670+-0.19189 richards x2 0.43680+-0.00667 0.43480+-0.00470 splay x2 0.63218+-0.00565 0.62878+-0.00259 navier-stokes x2 10.70258+-0.00512 ? 10.70921+-0.00921 ? closure 0.43163+-0.00209 ? 0.43412+-0.00102 ? jquery 6.33786+-0.01548 ? 6.36299+-0.00970 ? gbemu x2 71.68342+-1.16220 71.12748+-0.49741 mandreel x2 136.44194+-1.56943 135.34330+-0.54006 pdfjs x2 101.93407+-0.24648 ^ 101.41015+-0.22285 ^ definitely 1.0052x faster box2d x2 34.87811+-0.14200 34.86526+-0.19230 V8v7: <arithmetic> 7.60146+-0.01806 7.60108+-0.02210 might be 1.0001x faster <geometric> * 2.52119+-0.01383 2.51425+-0.00265 might be 1.0028x faster <harmonic> 1.04250+-0.01005 1.03571+-0.00285 might be 1.0066x faster Octane including V8v7: <arithmetic> 31.47184+-0.11227 31.30410+-0.07115 might be 1.0054x faster <geometric> * 6.98285+-0.02704 6.96234+-0.00672 might be 1.0029x faster <harmonic> 1.44908+-0.01183 1.44212+-0.00361 might be 1.0048x faster TipOfTree DCE Kraken: ai-astar 494.502+-0.566 ? 494.564+-0.541 ? audio-beat-detection 225.736+-0.790 ? 226.589+-3.620 ? audio-dft 289.631+-1.258 289.521+-0.737 audio-fft 130.842+-0.182 130.801+-0.217 audio-oscillator 244.344+-0.364 244.341+-0.264 imaging-darkroom 285.905+-0.718 ? 286.349+-0.764 ? imaging-desaturate 158.405+-0.242 ? 158.508+-0.208 ? imaging-gaussian-blur 363.021+-0.276 362.979+-0.166 json-parse-financial 79.870+-0.204 ! 81.111+-0.343 ! definitely 1.0155x slower json-stringify-tinderbox 103.794+-0.357 ? 104.679+-1.411 ? stanford-crypto-aes 91.179+-0.690 ? 91.701+-0.544 ? stanford-crypto-ccm 101.162+-0.810 100.020+-1.655 might be 1.0114x faster stanford-crypto-pbkdf2 261.753+-1.743 261.565+-1.270 stanford-crypto-sha256-iterative 114.651+-1.437 113.760+-0.271 <arithmetic> * 210.343+-0.255 ? 210.463+-0.271 ? might be 1.0006x slower <geometric> 180.506+-0.291 ? 180.695+-0.218 ? might be 1.0010x slower <harmonic> 155.971+-0.313 ? 156.264+-0.268 ? might be 1.0019x slower TipOfTree DCE JSRegress: adapt-to-double-divide 22.8593+-0.0926 22.8114+-0.1012 aliased-arguments-getbyval 1.0122+-0.0041 1.0090+-0.0042 allocate-big-object 3.0523+-0.0166 ? 3.0718+-0.0214 ? arity-mismatch-inlining 0.9869+-0.0086 0.9831+-0.0145 array-access-polymorphic-structure 10.0803+-0.1024 10.0572+-0.0927 array-nonarray-polymorhpic-access 60.5396+-4.5513 58.1722+-0.1349 might be 1.0407x faster array-with-double-add 5.8038+-0.0221 5.8036+-0.0193 array-with-double-increment 4.4030+-0.0447 4.3366+-0.0454 might be 1.0153x faster array-with-double-mul-add 6.8688+-0.0539 6.8233+-0.0718 array-with-double-sum 8.1067+-0.0539 8.0504+-0.0214 array-with-int32-add-sub 10.4534+-0.1007 ? 10.5273+-0.0834 ? array-with-int32-or-double-sum 8.0266+-0.0713 8.0098+-0.0120 ArrayBuffer-DataView-alloc-large-long-lived 117.7381+-1.0657 ? 120.0707+-2.0613 ? might be 1.0198x slower ArrayBuffer-DataView-alloc-long-lived 31.5309+-0.1607 ! 32.6938+-0.4080 ! definitely 1.0369x slower ArrayBuffer-Int32Array-byteOffset 6.0505+-0.0152 6.0299+-0.0429 ArrayBuffer-Int8Array-alloc-huge-long-lived 214.3850+-2.6423 ? 214.9787+-2.2152 ? ArrayBuffer-Int8Array-alloc-large-long-lived-fragmented 166.0585+-1.1524 ? 166.8090+-0.7698 ? ArrayBuffer-Int8Array-alloc-large-long-lived 118.4252+-1.5455 ? 119.8844+-0.8694 ? might be 1.0123x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 47.8146+-0.1994 ! 48.8319+-0.4367 ! definitely 1.0213x slower ArrayBuffer-Int8Array-alloc-long-lived 30.4448+-0.2339 ! 31.2534+-0.3940 ! definitely 1.0266x slower ArrayBuffer-Int8Array-alloc 26.4802+-0.1498 ? 27.3137+-0.7239 ? might be 1.0315x slower asmjs_bool_bug 9.2674+-0.0683 ? 9.3199+-0.1088 ? basic-set 19.8975+-0.1973 19.8824+-0.1379 big-int-mul 5.5806+-0.0301 ? 5.5947+-0.0297 ? boolean-test 4.4702+-0.0540 ? 4.4843+-0.0183 ? branch-fold 5.0226+-0.0161 ^ 4.9255+-0.0111 ^ definitely 1.0197x faster by-val-generic 12.3751+-0.1158 ? 12.6058+-0.1538 ? might be 1.0186x slower captured-assignments 0.6586+-0.0263 0.6506+-0.0218 might be 1.0123x faster cast-int-to-double 12.6064+-0.1147 12.4681+-0.1117 might be 1.0111x faster cell-argument 15.9950+-0.4319 ? 16.1763+-0.3030 ? might be 1.0113x slower cfg-simplify 3.9878+-0.0491 ? 4.0090+-0.0076 ? chain-custom-getter 157.8128+-0.1168 ? 160.6441+-5.6036 ? might be 1.0179x slower chain-getter-access 487.5037+-5.3657 ? 487.9003+-4.3024 ? cmpeq-obj-to-obj-other 12.7324+-0.5777 12.6502+-0.3113 constant-test 8.9413+-0.0702 ? 8.9579+-0.1125 ? DataView-custom-properties 135.1934+-0.7461 ! 137.0848+-1.0515 ! definitely 1.0140x slower delay-tear-off-arguments-strictmode 3.6904+-0.0205 3.6813+-0.0076 destructuring-arguments-length 172.6619+-1.1707 ! 175.5115+-1.2995 ! definitely 1.0165x slower destructuring-arguments 8.9256+-0.0916 8.9091+-0.0694 destructuring-swap 8.6853+-0.1108 ? 8.7186+-0.1006 ? direct-arguments-getbyval 0.8777+-0.0043 ? 0.8789+-0.0041 ? double-get-by-val-out-of-bounds 7.6496+-0.0754 ? 7.6708+-0.1086 ? double-pollution-getbyval 11.0966+-0.1477 ? 11.1479+-0.0583 ? double-pollution-putbyoffset 6.1260+-0.0391 ? 6.1777+-0.0690 ? double-to-int32-typed-array-no-inline 2.6452+-0.0107 2.6387+-0.0083 double-to-int32-typed-array 2.2887+-0.0110 ? 2.3040+-0.0176 ? double-to-uint32-typed-array-no-inline 2.8068+-0.0090 2.8048+-0.0050 double-to-uint32-typed-array 2.5637+-0.0055 ? 2.5653+-0.0078 ? empty-string-plus-int 10.8567+-0.0828 ! 11.0459+-0.0816 ! definitely 1.0174x slower emscripten-cube2hash 55.4918+-0.1372 ? 55.5970+-0.2883 ? emscripten-memops 7053.6782+-11.7968 ? 7074.9394+-39.5886 ? external-arguments-getbyval 2.1720+-0.0265 2.1574+-0.0171 external-arguments-putbyval 3.1975+-0.1490 3.0694+-0.0107 might be 1.0417x faster fixed-typed-array-storage-var-index 1.4187+-0.0050 1.4164+-0.0050 fixed-typed-array-storage 1.0180+-0.0193 1.0073+-0.0049 might be 1.0106x faster Float32Array-matrix-mult 6.3944+-0.0400 ? 6.4376+-0.0715 ? Float32Array-to-Float64Array-set 93.9259+-1.2488 92.8899+-0.8880 might be 1.0112x faster Float64Array-alloc-long-lived 103.7096+-0.7528 ? 104.0691+-0.5559 ? Float64Array-to-Int16Array-set 118.6830+-0.6956 118.1415+-0.3536 fold-double-to-int 20.5385+-0.1986 20.3307+-0.1971 might be 1.0102x faster for-of-iterate-array-entries 8.8238+-0.1682 8.6866+-0.1287 might be 1.0158x faster for-of-iterate-array-keys 3.4340+-0.0306 3.4311+-0.0346 for-of-iterate-array-values 3.0181+-0.1249 2.9730+-0.0407 might be 1.0152x faster function-dot-apply 3.1571+-0.0549 3.1384+-0.0210 function-test 4.9095+-0.0328 ? 4.9124+-0.0974 ? get-by-id-chain-from-try-block 7.9251+-0.1155 ? 7.9501+-0.1239 ? get-by-id-proto-or-self 25.9705+-0.2477 25.9295+-0.1509 get-by-id-self-or-proto 24.0295+-0.6459 ? 24.1772+-0.5920 ? get-by-val-out-of-bounds 7.4542+-0.0844 ? 7.4570+-0.1115 ? get_callee_monomorphic 4.9742+-0.0964 ? 5.0257+-0.0181 ? might be 1.0103x slower get_callee_polymorphic 4.8357+-0.0128 ? 4.8574+-0.0284 ? global-var-const-infer-fire-from-opt 1.0424+-0.0679 1.0340+-0.0470 global-var-const-infer 0.8168+-0.0099 0.8163+-0.0043 HashMap-put-get-iterate-keys 42.8648+-0.3976 ? 43.2785+-0.7633 ? HashMap-put-get-iterate 54.8255+-0.7414 ? 55.2225+-0.8674 ? HashMap-string-put-get-iterate 50.6311+-0.2401 ! 51.8862+-0.3626 ! definitely 1.0248x slower imul-double-only 17.7317+-0.1549 ? 17.7727+-0.1732 ? imul-int-only 14.8317+-0.0981 ? 15.0552+-0.1474 ? might be 1.0151x slower imul-mixed 21.8837+-0.1313 ? 21.9063+-0.0887 ? in-four-cases 25.9271+-0.0909 ? 25.9371+-0.0267 ? in-one-case-false 12.1547+-0.1459 12.1154+-0.1306 in-one-case-true 12.0932+-0.1329 ? 12.1537+-0.1059 ? in-two-cases 12.8499+-0.0799 ? 12.9063+-0.1555 ? indexed-properties-in-objects 4.2403+-0.0161 4.2172+-0.0388 infer-closure-const-then-mov-no-inline 15.3670+-0.1335 15.2985+-0.1004 infer-closure-const-then-mov 28.8862+-0.1233 ? 28.9677+-0.0798 ? infer-closure-const-then-put-to-scope-no-inline 17.7502+-0.0594 ? 17.7759+-0.0612 ? infer-closure-const-then-put-to-scope 36.1183+-0.1365 ? 36.2132+-0.2550 ? infer-closure-const-then-reenter-no-inline 84.3414+-0.1172 ? 84.3630+-0.0975 ? infer-closure-const-then-reenter 36.1757+-0.1739 36.1609+-0.1712 infer-one-time-closure-ten-vars 29.0554+-0.1007 ? 29.0760+-0.1582 ? infer-one-time-closure-two-vars 28.8878+-0.1133 28.8606+-0.0969 infer-one-time-closure 28.8332+-0.1413 28.8123+-0.1073 infer-one-time-deep-closure 58.3487+-0.3317 ? 58.4854+-0.1330 ? inline-arguments-access 1.7127+-0.0070 ? 1.7156+-0.0287 ? inline-arguments-aliased-access 1.8594+-0.0556 1.8419+-0.0427 inline-arguments-local-escape 22.3383+-0.1726 ! 23.5935+-0.2988 ! definitely 1.0562x slower inline-get-scoped-var 7.5385+-0.0882 7.4632+-0.0859 might be 1.0101x faster inlined-put-by-id-transition 15.2620+-0.3443 ? 15.6009+-0.3636 ? might be 1.0222x slower int-or-other-abs-then-get-by-val 9.5044+-0.0741 ? 9.5774+-0.1180 ? int-or-other-abs-zero-then-get-by-val 37.3098+-0.0212 ? 37.3962+-0.1415 ? int-or-other-add-then-get-by-val 10.6016+-0.1098 10.5979+-0.1135 int-or-other-add 10.9370+-0.0684 ? 11.0034+-0.0973 ? int-or-other-div-then-get-by-val 6.4366+-0.0240 6.3775+-0.1153 int-or-other-max-then-get-by-val 8.9063+-0.1989 8.8128+-0.0978 might be 1.0106x faster int-or-other-min-then-get-by-val 7.1263+-0.0399 ? 7.1772+-0.1137 ? int-or-other-mod-then-get-by-val 6.2755+-0.0427 ? 6.2781+-0.0151 ? int-or-other-mul-then-get-by-val 6.6869+-0.0359 6.6251+-0.0751 int-or-other-neg-then-get-by-val 7.9903+-0.0728 ? 8.0467+-0.0772 ? int-or-other-neg-zero-then-get-by-val 37.0052+-0.1844 ? 37.0304+-0.2505 ? int-or-other-sub-then-get-by-val 10.6947+-0.0621 10.5641+-0.1227 might be 1.0124x faster int-or-other-sub 8.9484+-0.0893 ? 9.0058+-0.0536 ? int-overflow-local 6.5227+-0.0752 ? 6.5610+-0.0239 ? Int16Array-alloc-long-lived 68.4768+-0.6734 68.0106+-0.3640 Int16Array-bubble-sort-with-byteLength 48.8377+-0.0864 ? 48.9661+-0.1100 ? Int16Array-bubble-sort 48.0762+-0.3035 47.9708+-0.2400 Int16Array-load-int-mul 1.8204+-0.0052 ? 1.8430+-0.0509 ? might be 1.0124x slower Int16Array-to-Int32Array-set 88.9717+-0.6498 ! 91.4866+-0.8540 ! definitely 1.0283x slower Int32Array-alloc-huge-long-lived 703.7717+-2.5505 ? 705.3508+-4.9291 ? Int32Array-alloc-huge 807.8832+-9.0868 ? 810.0925+-6.2381 ? Int32Array-alloc-large-long-lived 980.7650+-9.1557 975.3432+-13.9233 Int32Array-alloc-large 44.6800+-0.8181 ? 45.4107+-0.5286 ? might be 1.0164x slower Int32Array-alloc-long-lived 80.8176+-0.7152 80.5018+-0.5334 Int32Array-alloc 4.5302+-0.0092 ? 4.5434+-0.0094 ? Int32Array-Int8Array-view-alloc 15.3166+-0.1997 15.0432+-0.0968 might be 1.0182x faster int52-spill 12.6114+-0.2053 ! 13.0172+-0.0959 ! definitely 1.0322x slower Int8Array-alloc-long-lived 66.8033+-0.7250 ? 67.2700+-0.5596 ? Int8Array-load-with-byteLength 5.0690+-0.0073 5.0371+-0.0655 Int8Array-load 5.0646+-0.0157 5.0067+-0.0664 might be 1.0116x faster integer-divide 15.1049+-0.1350 15.0654+-0.0765 integer-modulo 2.0531+-0.0124 ? 2.0622+-0.0160 ? large-int-captured 9.8604+-0.1046 ! 10.0750+-0.0953 ! definitely 1.0218x slower large-int-neg 26.2066+-0.1656 ? 26.3054+-0.1489 ? large-int 23.0784+-0.1363 ? 23.1353+-0.1114 ? logical-not 10.8477+-0.1825 10.6363+-0.2759 might be 1.0199x faster lots-of-fields 12.4652+-0.1081 ? 12.4762+-0.0832 ? make-indexed-storage 4.2821+-0.1720 ? 4.2848+-0.1355 ? make-rope-cse 6.1791+-0.0759 6.1192+-0.0919 marsaglia-larger-ints 111.8697+-0.0945 ? 112.0377+-0.2764 ? marsaglia-osr-entry 47.0722+-0.0476 47.0576+-0.1018 marsaglia 463.6651+-0.5580 463.6609+-0.2434 method-on-number 30.2155+-0.7317 29.9918+-0.4068 negative-zero-divide 0.4249+-0.0018 0.4249+-0.0016 negative-zero-modulo 0.4131+-0.0097 0.4106+-0.0021 negative-zero-negate 0.3908+-0.0023 ? 0.4014+-0.0211 ? might be 1.0272x slower nested-function-parsing-random 380.9223+-0.4684 ! 386.2527+-0.4867 ! definitely 1.0140x slower nested-function-parsing 47.4592+-0.1365 47.4522+-0.0944 new-array-buffer-dead 3.7884+-0.0170 ? 3.8020+-0.0288 ? new-array-buffer-push 10.6601+-0.1205 10.5779+-0.1388 new-array-dead 28.6397+-0.1908 28.5429+-0.0684 new-array-push 6.9986+-0.0795 6.9821+-0.0655 number-test 4.4257+-0.0311 ? 4.4411+-0.0233 ? object-closure-call 13.5417+-0.1035 13.4970+-0.1196 object-test 4.8097+-0.0305 4.7873+-0.0399 poly-stricteq 87.8392+-2.9136 87.5109+-1.0741 polymorphic-structure 21.0910+-0.3142 ? 21.2537+-0.3102 ? polyvariant-monomorphic-get-by-id 11.9544+-0.0994 ? 12.0284+-0.1206 ? proto-custom-getter 157.8363+-0.1937 157.7810+-0.1205 proto-getter-access 490.1356+-5.5485 ? 492.0925+-8.3112 ? put-by-id 19.6103+-0.3958 19.5849+-0.3579 put-by-val-large-index-blank-indexing-type 20.6630+-0.1114 ? 20.7681+-0.2149 ? put-by-val-machine-int 3.3644+-0.0065 3.3636+-0.0064 rare-osr-exit-on-local 20.2145+-0.0741 ? 20.2439+-0.1306 ? register-pressure-from-osr 31.4152+-0.1191 31.4148+-0.0791 simple-activation-demo 35.1895+-0.0742 ? 35.3089+-0.1711 ? simple-custom-getter 509.8198+-21.6940 ? 512.4283+-21.6634 ? simple-getter-access 781.7272+-8.0181 ? 792.5346+-9.3028 ? might be 1.0138x slower slow-array-profile-convergence 4.0938+-0.0093 ? 4.1161+-0.0357 ? slow-convergence 4.5775+-0.0179 4.5761+-0.0276 sparse-conditional 1.4903+-0.0145 1.4866+-0.0077 splice-to-remove 77.1941+-0.1392 ^ 76.9320+-0.1089 ^ definitely 1.0034x faster stepanov_container 10217.8075+-29.3011 ? 10218.7680+-51.0035 ? string-concat-object 3.2541+-0.0507 3.2522+-0.0421 string-concat-pair-object 3.1801+-0.0353 ? 3.1873+-0.0311 ? string-concat-pair-simple 17.3315+-0.2676 17.1496+-0.3443 might be 1.0106x faster string-concat-simple 17.6057+-0.4271 17.4161+-0.2204 might be 1.0109x faster string-cons-repeat 10.8365+-0.0405 ? 10.8591+-0.0258 ? string-cons-tower 11.3451+-0.0619 ? 11.3542+-0.0687 ? string-equality 42.7404+-0.1089 ? 42.9544+-0.3919 ? string-get-by-val-big-char 12.6438+-0.1147 ! 13.0120+-0.2304 ! definitely 1.0291x slower string-get-by-val-out-of-bounds-insane 5.9141+-0.1524 5.7602+-0.0838 might be 1.0267x faster string-get-by-val-out-of-bounds 5.3204+-0.0620 5.3118+-0.0694 string-get-by-val 4.9320+-0.0266 ? 4.9509+-0.0188 ? string-hash 2.7850+-0.0047 ? 2.7869+-0.0034 ? string-long-ident-equality 39.1290+-0.0656 39.0690+-0.0785 string-repeat-arith 50.1005+-0.4834 49.9090+-0.2352 string-sub 105.2518+-0.6855 ^ 103.6332+-0.4101 ^ definitely 1.0156x faster string-test 4.4101+-0.0252 4.3985+-0.0303 string-var-equality 70.1130+-0.2520 70.0406+-0.2593 structure-hoist-over-transitions 3.5274+-0.0086 ? 3.5293+-0.0174 ? switch-char-constant 3.5053+-0.0133 ? 3.5455+-0.0624 ? might be 1.0115x slower switch-char 8.1342+-0.0810 8.1338+-0.1008 switch-constant 9.4414+-0.1131 9.3922+-0.1172 switch-string-basic-big-var 20.6388+-0.1413 20.5182+-0.0633 switch-string-basic-big 21.4133+-0.1823 ? 22.0182+-1.1166 ? might be 1.0282x slower switch-string-basic-var 20.3709+-0.1107 20.2532+-0.1068 switch-string-basic 22.0349+-0.6061 21.9281+-0.4823 switch-string-big-length-tower-var 28.9752+-0.1711 ? 29.0535+-0.1864 ? switch-string-length-tower-var 21.9839+-0.1965 21.9323+-0.0961 switch-string-length-tower 16.5716+-0.1015 16.5509+-0.0950 switch-string-short 16.6856+-0.1292 16.6261+-0.1348 switch 13.6412+-0.1041 ? 13.7697+-0.2146 ? tear-off-arguments-simple 2.4758+-0.0289 ^ 2.4151+-0.0047 ^ definitely 1.0251x faster tear-off-arguments 3.7056+-0.0190 3.7012+-0.0050 temporal-structure 17.1373+-0.0865 ? 17.1549+-0.0746 ? to-int32-boolean 21.7958+-0.2581 21.5461+-0.1318 might be 1.0116x faster undefined-test 4.6073+-0.0438 ? 4.6493+-0.0356 ? weird-inlining-const-prop 2.4606+-0.0833 2.4073+-0.0086 might be 1.0221x faster <arithmetic> 133.9567+-0.2813 ? 134.2444+-0.3872 ? might be 1.0021x slower <geometric> * 14.7848+-0.0135 ? 14.8030+-0.0100 ? might be 1.0012x slower <harmonic> 5.3116+-0.0166 5.3092+-0.0164 might be 1.0005x faster TipOfTree DCE All benchmarks: <arithmetic> 202.8464+-0.2198 ^ 201.8636+-0.3949 ^ definitely 1.0049x faster <geometric> 20.5436+-0.0156 ? 20.5530+-0.0086 ? might be 1.0005x slower <harmonic> 4.8533+-0.0168 4.8460+-0.0109 might be 1.0015x faster TipOfTree DCE Geomean of preferred means: <scaled-result> 49.3867+-0.0370 ^ 49.3281+-0.0210 ^ definitely 1.0012x faster Landed in http://trac.webkit.org/changeset/161218 |