| Summary: | Eliminate Scope slot from JavaScript CallFrame | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Michael Saboff <msaboff> | ||||||
| Component: | JavaScriptCore | Assignee: | Michael Saboff <msaboff> | ||||||
| Status: | RESOLVED FIXED | ||||||||
| Severity: | Normal | CC: | fpizlo, ggaren, mark.lam, mmirman, oliver | ||||||
| Priority: | P2 | Keywords: | InRadar | ||||||
| Version: | 528+ (Nightly build) | ||||||||
| Hardware: | All | ||||||||
| OS: | All | ||||||||
| Bug Depends on: | 136725, 136785, 136800, 136840, 136894, 136901, 137839, 137906, 137907, 138252, 138253, 138254, 138326, 138587, 138588, 138637, 138651, 138706, 138707, 138793, 139166, 139167, 139202 | ||||||||
| Bug Blocks: | |||||||||
| Attachments: |
|
||||||||
|
Description
Michael Saboff
2014-09-10 16:37:48 PDT
Created attachment 245041 [details]
Draft Patch. Testing now.
Builds and runs 32 and 64 bit JS tests. Runs 64 bit WK tests. Will test with 32 bit and run perf tests.
Created attachment 245079 [details] Patch Performance seems to be neutral to slight improvement overall. Noticeable highlights from the performance tests - LongSpider version of access-binary-trees is 5.5% slower - LongSpider version of bitops-bits-in-byte is 2% faster - LongSpider version of controlflow-recursive is 1.6% slower - Kraken audio-oscillator is 4% faster, which raises Kraken's total by almost 1% - The JSRegress test Int16Array-to-Int32Array-set is 5-6% faster (two runs) - The JSRegress test switch-string-basic-big is 13-19% faster (two runs) Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSBench, JSRegress, and CompressionBench on msaboff-pro (MacPro5,1). VMs tested: "Baseline" at /Volumes/Data/src/webkit.baseline/WebKitBuild/Release/DumpRenderTree (r178757) "NoScopeSlot" at /Volumes/Data/src/webkit/WebKitBuild/Release/DumpRenderTree (r178795) 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. Baseline NoScopeSlot SunSpider: 3d-cube 8.2032+-0.2899 7.9053+-0.2968 might be 1.0377x faster 3d-morph 8.0392+-0.1823 7.8415+-0.1010 might be 1.0252x faster 3d-raytrace 8.7214+-0.2592 ? 8.9064+-0.1817 ? might be 1.0212x slower access-binary-trees 3.7053+-0.2704 3.6841+-0.3725 access-fannkuch 7.5298+-0.9632 7.3582+-0.7566 might be 1.0233x faster access-nbody 3.9158+-0.1831 ? 3.9573+-0.2015 ? might be 1.0106x slower access-nsieve 4.5915+-0.1547 ? 4.6581+-0.1089 ? might be 1.0145x slower bitops-3bit-bits-in-byte 1.6822+-0.0672 ? 1.7286+-0.0764 ? might be 1.0276x slower bitops-bits-in-byte 5.2422+-0.0918 5.2346+-0.1390 bitops-bitwise-and 2.6332+-0.0759 ? 2.7415+-0.3232 ? might be 1.0411x slower bitops-nsieve-bits 4.8501+-0.2205 ? 4.9033+-0.2393 ? might be 1.0110x slower controlflow-recursive 3.0684+-0.1397 2.9452+-0.0823 might be 1.0418x faster crypto-aes 6.1458+-0.2799 6.0269+-0.2132 might be 1.0197x faster crypto-md5 3.2868+-0.1644 ? 3.3893+-0.2812 ? might be 1.0312x slower crypto-sha1 3.2078+-0.1097 ? 3.2418+-0.1247 ? might be 1.0106x slower date-format-tofte 15.2903+-0.5102 15.1601+-0.3911 date-format-xparb 8.7455+-0.1723 ? 9.0962+-0.1986 ? might be 1.0401x slower math-cordic 4.0781+-0.0972 4.0076+-0.0972 might be 1.0176x faster math-partial-sums 8.7215+-0.2080 8.6214+-0.1028 might be 1.0116x faster math-spectral-norm 2.7054+-0.1086 ? 2.7239+-0.2807 ? regexp-dna 10.6263+-0.2739 ? 10.7648+-0.2934 ? might be 1.0130x slower string-base64 7.1027+-0.2807 7.0259+-0.1806 might be 1.0109x faster string-fasta 9.6738+-0.3309 ? 9.7151+-0.4681 ? string-tagcloud 13.3876+-0.4241 ? 13.8761+-1.4442 ? might be 1.0365x slower string-unpack-code 29.9473+-0.9851 ? 29.9525+-1.8803 ? string-validate-input 8.4226+-0.2104 8.3911+-0.1447 <arithmetic> * 7.4432+-0.0746 ? 7.4560+-0.1255 ? might be 1.0017x slower <geometric> 6.0409+-0.0721 ? 6.0536+-0.0620 ? might be 1.0021x slower <harmonic> 5.0102+-0.0896 ? 5.0336+-0.0644 ? might be 1.0047x slower Baseline NoScopeSlot LongSpider: 3d-cube 1574.4730+-156.0459 1539.5296+-22.1580 might be 1.0227x faster 3d-morph 1872.7057+-3.7387 ? 1875.9737+-12.6079 ? 3d-raytrace 1075.2107+-20.3410 1059.1740+-5.5601 might be 1.0151x faster access-binary-trees 1302.5200+-4.6336 ! 1374.1434+-1.1430 ! definitely 1.0550x slower access-fannkuch 437.6233+-21.8829 ? 453.3674+-22.3888 ? might be 1.0360x slower access-nbody 1001.2140+-15.7581 996.2579+-2.3865 access-nsieve 1334.8472+-31.7991 1320.9979+-12.6117 might be 1.0105x faster bitops-3bit-bits-in-byte 49.8621+-0.4460 ? 50.1541+-1.0543 ? bitops-bits-in-byte 331.0018+-3.4097 ^ 324.5901+-2.3129 ^ definitely 1.0198x faster bitops-nsieve-bits 961.4368+-5.6038 961.1949+-6.8003 controlflow-recursive 717.4920+-0.4511 ! 729.0785+-1.9996 ! definitely 1.0161x slower crypto-aes 916.8375+-7.8799 913.3093+-6.8440 crypto-md5 803.9736+-2.7834 ? 812.3015+-8.7357 ? might be 1.0104x slower crypto-sha1 935.3741+-26.9900 ? 946.0521+-28.5589 ? might be 1.0114x slower date-format-tofte 1022.6110+-12.1339 ? 1026.6420+-36.2162 ? date-format-xparb 992.2853+-77.7880 963.0093+-10.0564 might be 1.0304x faster math-cordic 676.3646+-8.2845 ? 678.7476+-2.3903 ? math-partial-sums 1040.9702+-5.5986 1033.7117+-10.8287 math-spectral-norm 1080.3638+-6.8771 1077.9869+-2.9742 string-base64 633.9053+-12.0274 ? 637.8085+-4.2267 ? string-fasta 579.6824+-10.7183 ? 584.8298+-3.4992 ? string-tagcloud 307.3727+-3.9998 304.6969+-3.3272 <arithmetic> 893.0967+-10.4458 ? 893.7980+-1.0704 ? might be 1.0008x slower <geometric> * 747.3029+-6.0469 ? 748.4658+-1.3076 ? might be 1.0016x slower <harmonic> 460.9535+-1.0284 ? 462.3796+-4.1344 ? might be 1.0031x slower Baseline NoScopeSlot V8Spider: crypto 71.9127+-0.8322 ? 72.0225+-1.1899 ? deltablue 125.8665+-7.0826 123.9465+-2.8463 might be 1.0155x faster earley-boyer 68.0761+-0.2396 67.6390+-1.4670 raytrace 59.3583+-1.1646 58.7692+-1.5841 might be 1.0100x faster regexp 100.8847+-0.3759 ? 101.6783+-1.3250 ? richards 111.7941+-7.5246 ? 112.1810+-6.1481 ? splay 48.2245+-4.0661 ? 48.9276+-3.5370 ? might be 1.0146x slower <arithmetic> 83.7310+-2.1078 83.5949+-1.7541 might be 1.0016x faster <geometric> * 79.3809+-2.0667 79.3359+-1.7337 might be 1.0006x faster <harmonic> 75.2497+-2.2242 ? 75.2905+-1.8056 ? might be 1.0005x slower Baseline NoScopeSlot Octane: encrypt 0.32726+-0.00102 ? 0.32876+-0.00402 ? decrypt 5.78146+-0.04155 5.78100+-0.01055 deltablue x2 0.30442+-0.00534 ? 0.30756+-0.00403 ? might be 1.0103x slower earley 0.98696+-0.01353 0.97345+-0.01368 might be 1.0139x faster boyer 8.31711+-0.14855 8.30948+-0.14397 navier-stokes x2 6.73514+-0.03104 ? 6.73908+-0.05434 ? raytrace x2 2.47481+-0.21376 ? 2.51517+-0.12158 ? might be 1.0163x slower richards x2 0.17465+-0.00475 ? 0.17872+-0.00576 ? might be 1.0233x slower splay x2 0.54940+-0.02769 0.53971+-0.00567 might be 1.0179x faster regexp x2 45.44029+-0.90509 44.91104+-0.49773 might be 1.0118x faster pdfjs x2 72.29432+-0.75924 71.50624+-1.36602 might be 1.0110x faster mandreel x2 72.93277+-0.90470 71.91960+-1.85316 might be 1.0141x faster gbemu x2 61.34221+-1.40704 60.90043+-0.41778 closure 0.46076+-0.00243 ? 0.46110+-0.00246 ? jquery 5.36328+-0.02562 5.34835+-0.05259 box2d x2 21.53933+-0.25305 ? 21.69466+-0.63522 ? zlib x2 632.76849+-67.91501 ? 633.74131+-64.83702 ? typescript x2 1121.48395+-15.03705 ? 1122.90735+-23.48857 ? <arithmetic> 136.57721+-5.46327 136.56413+-5.84924 might be 1.0001x faster <geometric> * 9.74148+-0.03885 9.73743+-0.13809 might be 1.0004x faster <harmonic> 1.00938+-0.01403 ? 1.01895+-0.01595 ? might be 1.0095x slower Baseline NoScopeSlot Kraken: ai-astar 471.673+-1.278 471.255+-7.297 audio-beat-detection 178.746+-4.920 177.260+-4.317 audio-dft 213.524+-3.651 212.253+-4.287 audio-fft 110.618+-1.863 110.571+-1.282 audio-oscillator 306.033+-6.982 ^ 293.601+-1.077 ^ definitely 1.0423x faster imaging-darkroom 266.917+-2.160 263.464+-1.561 might be 1.0131x faster imaging-desaturate 95.817+-0.838 ? 95.911+-1.197 ? imaging-gaussian-blur 159.034+-1.250 ? 160.028+-3.336 ? json-parse-financial 71.893+-1.035 70.646+-1.086 might be 1.0177x faster json-stringify-tinderbox 86.201+-1.199 ? 86.271+-0.844 ? stanford-crypto-aes 100.552+-3.779 100.133+-0.749 stanford-crypto-ccm 115.690+-3.441 114.767+-3.143 stanford-crypto-pbkdf2 222.043+-5.476 218.909+-1.713 might be 1.0143x faster stanford-crypto-sha256-iterative 100.467+-1.457 ? 100.727+-1.822 ? <arithmetic> * 178.515+-0.507 ^ 176.843+-0.546 ^ definitely 1.0095x faster <geometric> 153.366+-0.482 ^ 152.241+-0.298 ^ definitely 1.0074x faster <harmonic> 134.946+-0.441 ^ 134.169+-0.277 ^ definitely 1.0058x faster Baseline NoScopeSlot JSBench: amazon 9.0000+-0.0000 8.7500+-0.7956 might be 1.0286x faster facebook 28.0000+-0.0000 ? 28.5000+-0.9187 ? might be 1.0179x slower google 67.0000+-2.2503 66.2500+-4.5704 might be 1.0113x faster twitter 8.5000+-0.9187 ? 8.7500+-0.7956 ? might be 1.0294x slower yahoo 4.2500+-0.7956 4.2500+-0.7956 <arithmetic> * 23.3500+-0.7057 23.3000+-1.4113 might be 1.0021x faster <geometric> 14.3441+-0.8102 ? 14.3663+-1.0938 ? might be 1.0015x slower <harmonic> 9.6921+-0.9600 ? 9.7048+-1.0318 ? might be 1.0013x slower Baseline NoScopeSlot JSRegress: abs-boolean 3.4542+-0.0729 3.3915+-0.1133 might be 1.0185x faster adapt-to-double-divide 17.5408+-0.4550 17.5165+-0.4709 aliased-arguments-getbyval 1.5623+-0.1619 ? 1.6787+-0.1127 ? might be 1.0745x slower allocate-big-object 7.1093+-0.1182 ? 7.1248+-0.2569 ? arity-mismatch-inlining 1.0256+-0.1699 ? 1.0652+-0.0832 ? might be 1.0386x slower array-access-polymorphic-structure 14.6903+-0.3349 14.4827+-0.6025 might be 1.0143x faster array-nonarray-polymorhpic-access 47.4214+-0.7990 47.3215+-0.4533 array-prototype-every 100.5305+-2.7635 ? 101.3437+-2.7165 ? array-prototype-forEach 100.1848+-2.6702 98.3315+-3.1401 might be 1.0188x faster array-prototype-map 127.3467+-1.2082 126.8830+-1.0034 array-prototype-some 101.5084+-1.7991 99.9865+-3.1116 might be 1.0152x faster array-splice-contiguous 58.1848+-2.4269 57.3477+-0.4833 might be 1.0146x faster array-with-double-add 5.4409+-0.2135 5.3070+-0.0264 might be 1.0252x faster array-with-double-increment 3.9053+-0.0653 ? 3.9782+-0.0720 ? might be 1.0187x slower array-with-double-mul-add 6.4068+-0.2136 ? 6.7242+-0.1490 ? might be 1.0495x slower array-with-double-sum 4.0811+-0.0677 ? 4.1300+-0.1052 ? might be 1.0120x slower array-with-int32-add-sub 9.6481+-0.4592 9.4267+-0.2770 might be 1.0235x faster array-with-int32-or-double-sum 4.1700+-0.0574 4.1642+-0.0451 ArrayBuffer-DataView-alloc-large-long-lived 51.3513+-0.5858 50.7825+-0.8006 might be 1.0112x faster ArrayBuffer-DataView-alloc-long-lived 31.5009+-0.3330 ? 31.8835+-0.9985 ? might be 1.0121x slower ArrayBuffer-Int32Array-byteOffset 4.3252+-0.1311 ? 4.4708+-0.1518 ? might be 1.0337x slower ArrayBuffer-Int8Array-alloc-large-long-lived 55.3112+-1.0254 54.2675+-1.0708 might be 1.0192x faster ArrayBuffer-Int8Array-alloc-long-lived-buffer 69.3191+-0.6857 ? 70.4846+-3.5550 ? might be 1.0168x slower ArrayBuffer-Int8Array-alloc-long-lived 30.2581+-0.2924 29.9061+-0.9336 might be 1.0118x faster ArrayBuffer-Int8Array-alloc 26.8705+-0.1679 ? 27.0865+-0.8112 ? asmjs_bool_bug 8.3607+-0.1625 ? 8.3728+-0.2379 ? assign-custom-setter-polymorphic 3.9429+-0.1085 3.9417+-0.0604 assign-custom-setter 5.2842+-0.2462 ? 5.3106+-0.2533 ? basic-set 13.3769+-0.3600 ? 13.6317+-0.6532 ? might be 1.0190x slower big-int-mul 5.5565+-0.0833 5.5127+-0.0570 boolean-test 3.9595+-0.1249 3.9500+-0.1656 branch-fold 4.4081+-0.1735 ? 4.4779+-0.0162 ? might be 1.0158x slower by-val-generic 0.2393+-0.0293 0.2374+-0.0244 call-spread-apply 32.8936+-0.6352 ? 33.2365+-0.5149 ? might be 1.0104x slower call-spread-call 26.5762+-0.6399 ? 26.6685+-1.2480 ? captured-assignments 0.5092+-0.0606 0.4595+-0.0284 might be 1.1081x faster cast-int-to-double 7.7692+-0.1374 ? 7.7861+-0.1522 ? cell-argument 9.6448+-0.2604 9.4088+-0.5887 might be 1.0251x faster cfg-simplify 3.4280+-0.0808 3.3640+-0.0314 might be 1.0190x faster chain-getter-access 0.2650+-0.0256 0.2532+-0.0172 might be 1.0465x faster cmpeq-obj-to-obj-other 11.6712+-0.5585 ? 12.3151+-0.4151 ? might be 1.0552x slower constant-test 7.1918+-0.1537 ? 7.2083+-0.1297 ? DataView-custom-properties 57.5146+-0.5036 ? 58.0009+-0.9892 ? delay-tear-off-arguments-strictmode 16.7756+-0.2252 16.7728+-0.3869 destructuring-arguments 9.3093+-0.3336 9.1873+-0.1958 might be 1.0133x faster destructuring-swap 7.4265+-0.1278 7.4042+-0.2346 direct-arguments-getbyval 1.6462+-0.4347 ? 1.6689+-0.0690 ? might be 1.0138x slower div-boolean-double 5.3215+-0.2312 5.2555+-0.1518 might be 1.0126x faster div-boolean 9.4293+-0.1417 9.3566+-0.1299 double-get-by-val-out-of-bounds 0.2236+-0.0224 ? 0.2339+-0.0306 ? might be 1.0464x slower double-pollution-getbyval 9.3403+-0.0605 ? 9.5897+-0.3028 ? might be 1.0267x slower double-pollution-putbyoffset 7.1025+-0.3463 6.8701+-0.0483 might be 1.0338x faster double-to-int32-typed-array-no-inline 0.2612+-0.0387 0.2414+-0.0066 might be 1.0819x faster double-to-int32-typed-array 2.5609+-0.1090 2.4972+-0.0789 might be 1.0255x faster double-to-uint32-typed-array-no-inline 0.2516+-0.0102 ? 0.2554+-0.0167 ? might be 1.0153x slower double-to-uint32-typed-array 2.5780+-0.2158 ? 2.5797+-0.0217 ? elidable-new-object-dag 53.5561+-1.6509 53.0840+-1.2694 elidable-new-object-roflcopter 202.3112+-1.7847 200.9690+-1.2554 elidable-new-object-then-call 48.8707+-1.1485 ? 49.5015+-1.3856 ? might be 1.0129x slower elidable-new-object-tree 63.0620+-1.5539 ? 63.1932+-1.8075 ? empty-string-plus-int 10.9376+-0.3285 10.7739+-0.3053 might be 1.0152x faster emscripten-cube2hash 50.3442+-1.4181 50.3218+-1.4364 external-arguments-getbyval 2.2531+-0.3108 2.2450+-0.2092 external-arguments-putbyval 3.5611+-0.1134 ? 3.5877+-0.2248 ? fixed-typed-array-storage-var-index 1.3302+-0.1373 ? 1.3435+-0.1555 ? might be 1.0100x slower fixed-typed-array-storage 1.0346+-0.0113 ? 1.0835+-0.0904 ? might be 1.0473x slower Float32Array-matrix-mult 6.1818+-0.2179 6.1236+-0.3344 Float32Array-to-Float64Array-set 85.0519+-0.3248 ^ 81.1888+-1.2765 ^ definitely 1.0476x faster Float64Array-alloc-long-lived 103.5242+-0.6125 102.8075+-0.2909 Float64Array-to-Int16Array-set 104.7207+-1.0987 103.7360+-1.7484 fold-double-to-int 17.4785+-0.3646 17.4666+-0.6364 fold-get-by-id-to-multi-get-by-offset-rare-int 23.5547+-1.8383 ? 23.9290+-1.5250 ? might be 1.0159x slower fold-get-by-id-to-multi-get-by-offset 23.7888+-4.5294 22.4717+-1.7944 might be 1.0586x faster fold-multi-get-by-offset-to-get-by-offset 15.0367+-0.6337 ? 15.3668+-0.2306 ? might be 1.0219x slower fold-multi-get-by-offset-to-poly-get-by-offset 15.3752+-0.6374 15.2784+-0.0732 fold-multi-put-by-offset-to-poly-put-by-offset 15.4628+-0.2555 14.9527+-0.3014 might be 1.0341x faster fold-multi-put-by-offset-to-put-by-offset 13.9325+-0.3452 13.7766+-0.5476 might be 1.0113x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 31.8361+-0.8306 ? 32.2525+-2.2717 ? might be 1.0131x slower fold-put-by-id-to-multi-put-by-offset 24.7879+-2.0148 ? 24.9612+-1.6476 ? fold-put-structure 14.6821+-0.4078 14.3984+-0.4342 might be 1.0197x faster for-of-iterate-array-entries 8.7819+-0.1862 ? 8.7952+-0.3273 ? for-of-iterate-array-keys 3.4620+-0.2258 3.4570+-0.2158 for-of-iterate-array-values 3.0780+-0.1840 3.0455+-0.2210 might be 1.0107x faster fround 21.9169+-0.8129 ? 22.3768+-0.7345 ? might be 1.0210x slower ftl-library-inlining-dataview 97.6334+-13.9020 91.1820+-3.6005 might be 1.0708x faster ftl-library-inlining 87.7455+-1.3387 ^ 84.2312+-1.1440 ^ definitely 1.0417x faster function-dot-apply 2.3295+-0.2285 2.2363+-0.0481 might be 1.0417x faster function-test 4.3125+-0.2161 ? 4.4629+-0.1328 ? might be 1.0349x slower function-with-eval 0.2273+-0.0161 ? 0.2323+-0.0239 ? might be 1.0220x slower gcse-poly-get-less-obvious 24.2917+-0.0117 ? 24.3627+-0.2181 ? gcse-poly-get 24.4299+-0.3110 ? 24.5392+-0.6252 ? gcse 6.2377+-0.0358 ? 6.3342+-0.1653 ? might be 1.0155x slower get-by-id-bimorphic-check-structure-elimination-simple 3.0977+-0.1171 ? 3.1304+-0.0542 ? might be 1.0106x slower get-by-id-bimorphic-check-structure-elimination 7.9970+-0.2329 ? 8.0140+-0.1808 ? get-by-id-chain-from-try-block 15.7795+-0.5866 15.4267+-0.2120 might be 1.0229x faster get-by-id-check-structure-elimination 7.6320+-0.1034 ^ 7.1916+-0.1335 ^ definitely 1.0612x faster get-by-id-proto-or-self 22.0463+-1.3290 21.9203+-0.7725 get-by-id-quadmorphic-check-structure-elimination-simple 3.7403+-0.1115 3.7307+-0.0658 get-by-id-self-or-proto 22.8207+-3.3434 22.3673+-1.3969 might be 1.0203x faster get-by-val-out-of-bounds 0.2125+-0.0058 ? 0.2227+-0.0173 ? might be 1.0480x slower get_callee_monomorphic 10.3707+-0.4156 10.0630+-0.2468 might be 1.0306x faster get_callee_polymorphic 8.8898+-0.5836 8.6242+-0.2755 might be 1.0308x faster getter-no-activation 5.4658+-0.0567 ? 5.4681+-0.1211 ? getter-richards 168.8679+-21.7458 167.4086+-16.5685 getter 6.0655+-0.1141 ! 6.4492+-0.2219 ! definitely 1.0633x slower global-var-const-infer-fire-from-opt 0.2673+-0.0236 ? 0.2983+-0.0640 ? might be 1.1158x slower global-var-const-infer 0.2424+-0.0276 0.2403+-0.0206 HashMap-put-get-iterate-keys 35.9313+-0.3536 ? 35.9897+-0.3169 ? HashMap-put-get-iterate 35.6966+-0.5061 35.4632+-0.7137 HashMap-string-put-get-iterate 47.4545+-1.1546 ? 48.1389+-1.6754 ? might be 1.0144x slower hoist-make-rope 0.2440+-0.0132 0.2347+-0.0208 might be 1.0398x faster hoist-poly-check-structure-effectful-loop 0.2415+-0.0086 ? 0.2483+-0.0184 ? might be 1.0283x slower hoist-poly-check-structure 0.2595+-0.0178 ? 0.2862+-0.0536 ? might be 1.1030x slower imul-double-only 9.8333+-0.6621 ? 9.8620+-0.2266 ? imul-int-only 12.3770+-0.3508 12.2061+-0.7587 might be 1.0140x faster imul-mixed 9.2681+-0.0616 ? 9.4933+-1.0369 ? might be 1.0243x slower in-four-cases 23.3472+-0.1547 ? 23.6968+-0.7706 ? might be 1.0150x slower in-one-case-false 12.0992+-0.1695 ? 12.1506+-0.3490 ? in-one-case-true 12.1198+-0.4693 12.0572+-0.3217 in-two-cases 12.5514+-0.2502 ? 12.6693+-0.2903 ? indexed-properties-in-objects 3.5935+-0.0774 3.5931+-0.1270 infer-closure-const-then-mov-no-inline 0.2498+-0.0372 0.2480+-0.0290 infer-closure-const-then-mov 24.5153+-0.9249 24.2491+-0.1419 might be 1.0110x faster infer-closure-const-then-put-to-scope-no-inline 0.2419+-0.0088 ? 0.2564+-0.0429 ? might be 1.0598x slower infer-closure-const-then-put-to-scope 27.8485+-0.4273 ! 29.3968+-0.1611 ! definitely 1.0556x slower infer-closure-const-then-reenter-no-inline 0.2490+-0.0153 ? 0.2510+-0.0209 ? infer-closure-const-then-reenter 27.6063+-0.2315 ! 30.2597+-2.2329 ! definitely 1.0961x slower infer-constant-global-property 4.4399+-0.1261 ? 4.4744+-0.1006 ? infer-constant-property 3.0505+-0.1551 ? 3.1290+-0.1407 ? might be 1.0258x slower infer-one-time-closure-ten-vars 0.2666+-0.0384 0.2479+-0.0281 might be 1.0753x faster infer-one-time-closure-two-vars 0.2653+-0.0223 0.2510+-0.0239 might be 1.0569x faster infer-one-time-closure 0.2602+-0.0203 0.2397+-0.0138 might be 1.0853x faster infer-one-time-deep-closure 0.2531+-0.0138 ? 0.2738+-0.0302 ? might be 1.0817x slower inline-arguments-access 2.4382+-0.0882 ? 2.4847+-0.1022 ? might be 1.0191x slower inline-arguments-aliased-access 2.2936+-0.0298 2.2642+-0.2789 might be 1.0130x faster inline-arguments-local-escape 26.5897+-0.3181 26.5228+-0.9932 inline-get-scoped-var 5.3210+-0.1755 ? 5.3307+-0.1784 ? inlined-put-by-id-transition 15.5064+-0.4422 15.1963+-0.3117 might be 1.0204x faster int-or-other-abs-then-get-by-val 6.8350+-0.8192 6.6097+-0.1263 might be 1.0341x faster int-or-other-abs-zero-then-get-by-val 26.0873+-0.4794 26.0544+-0.0906 int-or-other-add-then-get-by-val 5.6198+-0.1566 ? 5.6537+-0.1131 ? int-or-other-add 7.5157+-0.2988 7.4751+-0.0977 int-or-other-div-then-get-by-val 4.8347+-0.0772 4.8127+-0.1157 int-or-other-max-then-get-by-val 6.4015+-0.2622 6.1430+-0.4286 might be 1.0421x faster int-or-other-min-then-get-by-val 4.9316+-0.1409 4.9187+-0.1253 int-or-other-mod-then-get-by-val 4.7227+-0.0973 ? 4.7500+-0.0694 ? int-or-other-mul-then-get-by-val 4.6553+-0.1403 ? 4.7925+-0.0748 ? might be 1.0295x slower int-or-other-neg-then-get-by-val 5.8820+-0.1967 5.7906+-0.0561 might be 1.0158x faster int-or-other-neg-zero-then-get-by-val 26.1895+-0.3502 26.0696+-0.1628 int-or-other-sub-then-get-by-val 5.8198+-0.2024 5.5692+-0.0907 might be 1.0450x faster int-or-other-sub 4.7819+-0.1301 4.7817+-0.1727 int-overflow-local 5.5121+-0.0832 ? 5.5703+-0.2592 ? might be 1.0106x slower Int16Array-alloc-long-lived 71.1764+-0.7234 70.6401+-0.4835 Int16Array-bubble-sort-with-byteLength 37.9695+-0.5916 37.9189+-0.1631 Int16Array-bubble-sort 37.8939+-0.3115 ^ 37.0815+-0.1193 ^ definitely 1.0219x faster Int16Array-load-int-mul 1.8816+-0.0678 ? 1.9124+-0.1472 ? might be 1.0163x slower Int16Array-to-Int32Array-set 86.0366+-2.1753 ^ 82.0542+-1.0517 ^ definitely 1.0485x faster Int32Array-alloc-large 36.4352+-1.0438 35.7793+-2.1383 might be 1.0183x faster Int32Array-alloc-long-lived 81.2216+-4.5011 79.6853+-1.0992 might be 1.0193x faster Int32Array-alloc 12.7860+-0.2839 ? 12.8952+-0.4089 ? Int32Array-Int8Array-view-alloc 17.3110+-0.5847 ? 18.4865+-1.8868 ? might be 1.0679x slower int52-spill 0.2369+-0.0116 ? 0.2385+-0.0231 ? Int8Array-alloc-long-lived 77.6231+-0.5065 77.4640+-0.4847 Int8Array-load-with-byteLength 4.5579+-0.0718 4.4895+-0.1181 might be 1.0152x faster Int8Array-load 4.5347+-0.1007 ? 4.6025+-0.1592 ? might be 1.0150x slower integer-divide 13.8557+-0.0689 ? 13.9360+-0.1518 ? integer-modulo 2.6899+-0.0675 2.6467+-0.1748 might be 1.0164x faster large-int-captured 17.8251+-0.2694 17.6544+-0.1382 large-int-neg 20.7984+-0.3417 19.9078+-0.5824 might be 1.0447x faster large-int 18.4465+-0.8692 17.7535+-0.1437 might be 1.0390x faster logical-not 0.2624+-0.0267 0.2358+-0.0251 might be 1.1126x faster lots-of-fields 22.1841+-1.4316 ? 22.4330+-1.2993 ? might be 1.0112x slower make-indexed-storage 5.6183+-0.1585 5.5817+-0.4806 make-rope-cse 23.8163+-0.7922 23.2128+-0.5367 might be 1.0260x faster marsaglia-larger-ints 54.5433+-0.8627 ? 55.0475+-0.4130 ? marsaglia-osr-entry 27.2485+-0.1974 ? 27.5062+-0.6756 ? max-boolean 3.0844+-0.0368 3.0503+-0.0710 might be 1.0112x faster method-on-number 22.9607+-0.3571 21.7967+-1.0411 might be 1.0534x faster min-boolean 3.1432+-0.1491 3.1046+-0.1060 might be 1.0124x faster minus-boolean-double 3.9583+-0.1584 3.9283+-0.0200 minus-boolean 3.0431+-0.0751 3.0150+-0.1377 misc-strict-eq 52.9973+-6.4981 52.0708+-2.5347 might be 1.0178x faster mod-boolean-double 11.2240+-0.1336 ? 11.2655+-0.1860 ? mod-boolean 8.5846+-0.0625 8.5778+-0.1050 mul-boolean-double 4.6167+-0.1287 4.5633+-0.0414 might be 1.0117x faster mul-boolean 3.2467+-0.0273 ? 3.2981+-0.1451 ? might be 1.0158x slower neg-boolean 4.0328+-0.1383 ? 4.0515+-0.1432 ? negative-zero-divide 0.3108+-0.0435 0.2996+-0.0367 might be 1.0373x faster negative-zero-modulo 0.3348+-0.0212 ^ 0.2875+-0.0124 ^ definitely 1.1648x faster negative-zero-negate 0.2880+-0.0220 ? 0.2968+-0.0497 ? might be 1.0303x slower nested-function-parsing 33.4007+-0.2582 33.3918+-0.4465 new-array-buffer-dead 3.9115+-0.0300 ? 3.9705+-0.0960 ? might be 1.0151x slower new-array-buffer-push 17.3077+-0.3745 ? 17.5266+-0.3548 ? might be 1.0126x slower new-array-dead 13.9325+-0.5998 ? 14.3504+-0.7494 ? might be 1.0300x slower new-array-push 9.5721+-0.3941 ? 9.6812+-0.7460 ? might be 1.0114x slower number-test 3.8532+-0.1139 ? 3.9048+-0.0737 ? might be 1.0134x slower object-closure-call 7.9401+-0.1916 7.8430+-0.2360 might be 1.0124x faster object-test 4.1279+-0.1521 4.0922+-0.1580 obvious-sink-pathology-taken 0.2469+-0.0253 0.2172+-0.0085 might be 1.1372x faster obvious-sink-pathology 0.2534+-0.0243 0.2360+-0.0165 might be 1.0740x faster obviously-elidable-new-object 48.0651+-5.1934 ? 49.2616+-3.6023 ? might be 1.0249x slower plus-boolean-arith 3.1301+-0.0922 ? 3.1385+-0.0985 ? plus-boolean-double 3.9547+-0.0082 ? 3.9741+-0.0880 ? plus-boolean 3.0219+-0.1658 3.0107+-0.1332 poly-chain-access-different-prototypes-simple 3.5337+-0.1206 ? 3.5760+-0.0499 ? might be 1.0120x slower poly-chain-access-different-prototypes 2.3384+-0.1088 ? 2.4642+-0.3405 ? might be 1.0538x slower poly-chain-access-simpler 3.5417+-0.0848 ? 3.5984+-0.0279 ? might be 1.0160x slower poly-chain-access 2.5496+-0.5796 2.4802+-0.4618 might be 1.0280x faster poly-stricteq 68.6611+-0.6370 68.5103+-0.1569 polymorphic-array-call 2.0096+-0.2276 ? 2.0428+-0.1541 ? might be 1.0165x slower polymorphic-get-by-id 0.2595+-0.0335 ? 0.2618+-0.0174 ? polymorphic-put-by-id 0.2693+-0.0165 0.2500+-0.0072 might be 1.0771x faster polymorphic-structure 24.7728+-0.5618 24.4200+-0.1897 might be 1.0144x faster polyvariant-monomorphic-get-by-id 11.0450+-0.5693 10.9480+-0.2767 proto-getter-access 0.2753+-0.0241 0.2444+-0.0106 might be 1.1263x faster put-by-id-replace-and-transition 13.3404+-0.5094 ? 13.4011+-0.2940 ? put-by-id-slightly-polymorphic 3.2745+-0.0706 ? 3.2777+-0.0377 ? put-by-id 18.9371+-0.5085 18.9326+-0.3241 put-by-val-direct 0.4913+-0.0112 ? 0.5998+-0.1260 ? might be 1.2209x slower put-by-val-large-index-blank-indexing-type 18.5578+-0.7679 18.3607+-0.5523 might be 1.0107x faster put-by-val-machine-int 0.2349+-0.0212 0.2275+-0.0135 might be 1.0322x faster rare-osr-exit-on-local 17.6470+-0.3699 ? 17.8953+-0.5918 ? might be 1.0141x slower register-pressure-from-osr 26.0347+-0.0762 ! 26.4014+-0.0721 ! definitely 1.0141x slower setter 6.1022+-0.1167 ? 6.2406+-0.2100 ? might be 1.0227x slower simple-activation-demo 32.9685+-0.1820 ! 33.6638+-0.2825 ! definitely 1.0211x slower simple-getter-access 0.2495+-0.0106 0.2477+-0.0218 simple-poly-call-nested 21.2905+-1.5243 19.8680+-1.3574 might be 1.0716x faster simple-poly-call 1.4833+-0.2132 1.4833+-0.0962 sin-boolean 24.1517+-3.9516 24.0224+-3.8140 sinkable-new-object-dag 0.2454+-0.0222 0.2449+-0.0289 sinkable-new-object-taken 0.2442+-0.0211 0.2325+-0.0197 might be 1.0501x faster sinkable-new-object 0.2444+-0.0264 ? 0.2457+-0.0553 ? slow-array-profile-convergence 4.4097+-0.1627 4.3945+-0.0351 slow-convergence 4.2502+-0.0725 4.1985+-0.3524 might be 1.0123x faster sparse-conditional 1.4303+-0.1092 ? 1.4368+-0.0883 ? splice-to-remove 24.4368+-0.3417 ? 24.5098+-0.4902 ? string-char-code-at 19.4059+-0.5406 19.2150+-0.1409 string-concat-object 7.4014+-0.0828 ? 7.4473+-0.3875 ? string-concat-pair-object 7.3344+-0.1346 ? 7.3927+-0.5684 ? string-concat-pair-simple 17.4913+-1.2325 16.7617+-0.2918 might be 1.0435x faster string-concat-simple 17.2352+-1.0948 17.0576+-0.8160 might be 1.0104x faster string-cons-repeat 15.4330+-0.1925 ? 15.4747+-0.1406 ? string-cons-tower 14.8141+-0.3253 14.7337+-0.2703 string-equality 21.8012+-0.3125 ? 21.8328+-0.2825 ? string-get-by-val-big-char 12.5673+-0.0436 12.4478+-0.2199 string-get-by-val-out-of-bounds-insane 4.7772+-0.2248 4.7267+-0.1675 might be 1.0107x faster string-get-by-val-out-of-bounds 6.4821+-0.3024 6.4552+-0.1109 string-get-by-val 4.4248+-0.0392 ? 4.5516+-0.1692 ? might be 1.0287x slower string-hash 2.6035+-0.0814 ? 2.6288+-0.2050 ? string-long-ident-equality 17.6720+-0.1614 17.6400+-0.0863 string-repeat-arith 41.7766+-1.0751 41.5447+-1.0898 string-sub 80.0786+-0.9901 ? 80.6357+-2.5462 ? string-test 3.8956+-0.0779 ? 3.9683+-0.1920 ? might be 1.0187x slower string-var-equality 43.4115+-0.2989 43.2240+-0.5156 structure-hoist-over-transitions 4.8917+-0.2397 4.8053+-0.2555 might be 1.0180x faster substring-concat-weird 58.2903+-1.0086 58.2480+-0.7759 substring-concat 61.0762+-0.7921 ^ 59.4862+-0.4142 ^ definitely 1.0267x faster substring 64.9676+-0.3649 ^ 63.8892+-0.1570 ^ definitely 1.0169x faster switch-char-constant 3.0585+-0.0417 ? 3.1542+-0.0546 ? might be 1.0313x slower switch-char 7.5651+-0.2516 ? 7.5681+-0.0942 ? switch-constant 16.1133+-1.0542 14.4796+-2.8365 might be 1.1128x faster switch-string-basic-big-var 21.5296+-1.5167 ? 22.0024+-0.3796 ? might be 1.0220x slower switch-string-basic-big 22.7742+-1.3652 ^ 19.1885+-1.7025 ^ definitely 1.1869x faster switch-string-basic-var 27.8944+-2.6998 25.4636+-0.7013 might be 1.0955x faster switch-string-basic 21.3986+-1.4836 ? 24.0374+-1.2139 ? might be 1.1233x slower switch-string-big-length-tower-var 24.7288+-0.0966 24.5129+-0.2820 switch-string-length-tower-var 19.4232+-0.2337 19.1766+-0.1346 might be 1.0129x faster switch-string-length-tower 14.5271+-0.3925 13.9438+-0.1962 might be 1.0418x faster switch-string-short 14.3741+-0.3410 14.0987+-0.2634 might be 1.0195x faster switch 16.9108+-1.6135 16.3278+-1.3126 might be 1.0357x faster tear-off-arguments-simple 3.7186+-0.1911 ? 3.8213+-0.0328 ? might be 1.0276x slower tear-off-arguments 5.6592+-0.3287 5.5958+-0.1299 might be 1.0113x faster temporal-structure 16.9746+-0.2692 16.9684+-0.3803 to-int32-boolean 20.3023+-0.1021 ? 20.3277+-0.0744 ? undefined-property-access 470.6154+-9.0534 469.0316+-4.4670 undefined-test 4.0234+-0.0553 4.0094+-0.1838 unprofiled-licm 27.2519+-0.4702 26.9634+-0.7625 might be 1.0107x faster weird-inlining-const-prop 0.2595+-0.0397 0.2430+-0.0121 might be 1.0681x faster <arithmetic> 20.5485+-0.0917 20.4066+-0.0825 might be 1.0070x faster <geometric> * 7.1961+-0.0072 7.1655+-0.0310 might be 1.0043x faster <harmonic> 1.5651+-0.0160 1.5436+-0.0213 might be 1.0139x faster Baseline NoScopeSlot CompressionBench: huffman 660.0046+-7.3562 650.7327+-25.8774 might be 1.0142x faster arithmetic-simple 477.4927+-2.3457 ? 480.0530+-4.4076 ? arithmetic-precise 375.3723+-4.8880 ? 381.0594+-6.6050 ? might be 1.0152x slower arithmetic-complex-precise 369.9243+-4.4479 ? 372.9713+-8.0771 ? arithmetic-precise-order-0 504.2570+-4.2365 500.7062+-6.5221 arithmetic-precise-order-1 425.0126+-1.7420 423.9067+-2.7859 arithmetic-precise-order-2 479.3879+-4.0981 ? 482.2355+-5.8851 ? arithmetic-simple-order-1 550.8484+-1.6498 ^ 546.8333+-1.7591 ^ definitely 1.0073x faster arithmetic-simple-order-2 622.9067+-0.4728 ^ 615.8660+-2.9565 ^ definitely 1.0114x faster lz-string 436.4780+-17.0656 419.4864+-5.0468 might be 1.0405x faster <arithmetic> 490.1685+-1.3620 487.3850+-3.4858 might be 1.0057x faster <geometric> * 481.7387+-1.5122 479.4427+-3.2032 might be 1.0048x faster <harmonic> 473.6674+-1.7002 471.8562+-3.1296 might be 1.0038x faster Baseline NoScopeSlot All benchmarks: <arithmetic> 96.3143+-0.8613 96.1191+-0.3975 might be 1.0020x faster <geometric> 12.3523+-0.0269 12.3127+-0.0381 might be 1.0032x faster <harmonic> 1.8376+-0.0146 1.8191+-0.0231 might be 1.0102x faster Baseline NoScopeSlot Geomean of preferred means: <scaled-result> 52.9874+-0.4022 52.8637+-0.5274 might be 1.0023x faster Comment on attachment 245079 [details]
Patch
r=me
Committed r178856: <http://trac.webkit.org/changeset/178856> |