| Summary: | MovHint should be a strong use | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||
| Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||
| Status: | RESOLVED FIXED | ||||||
| Severity: | Normal | CC: | barraclough, benjamin, commit-queue, ggaren, mark.lam, mhahnenb, mmirman, msaboff, nrotem, oliver, saam, sam | ||||
| Priority: | P2 | ||||||
| Version: | 528+ (Nightly build) | ||||||
| Hardware: | All | ||||||
| OS: | All | ||||||
| Bug Depends on: | 143833, 144256, 143792 | ||||||
| Bug Blocks: | 143733, 143736 | ||||||
| Attachments: |
|
||||||
|
Description
Filip Pizlo
2015-04-14 15:55:12 PDT
Here is the performance on x86_64 if I just make MovHint a strong use but don't introduce any mitigations: Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on dethklok (MacBookPro9,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc (r182806) "NoOSRDCE" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r182806) 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 NoOSRDCE SunSpider: 3d-cube 4.8970+-0.0688 ! 5.0621+-0.0654 ! definitely 1.0337x slower 3d-morph 5.7936+-0.0622 ? 5.8701+-0.1637 ? might be 1.0132x slower 3d-raytrace 6.2652+-0.0645 ? 6.3186+-0.1366 ? access-binary-trees 2.2135+-0.0646 2.1853+-0.0662 might be 1.0129x faster access-fannkuch 5.7381+-0.0905 ? 5.7992+-0.0863 ? might be 1.0107x slower access-nbody 2.9460+-0.0613 ? 2.9598+-0.0903 ? access-nsieve 3.3917+-0.1440 3.3150+-0.0651 might be 1.0231x faster bitops-3bit-bits-in-byte 1.5988+-0.0542 ? 1.6005+-0.0697 ? bitops-bits-in-byte 3.3753+-0.0615 ? 3.4091+-0.0383 ? might be 1.0100x slower bitops-bitwise-and 2.1683+-0.0785 2.0660+-0.0592 might be 1.0495x faster bitops-nsieve-bits 3.6375+-0.0648 ^ 3.3792+-0.0707 ^ definitely 1.0765x faster controlflow-recursive 2.1691+-0.0390 ? 2.2079+-0.0517 ? might be 1.0179x slower crypto-aes 4.4987+-0.6472 ? 4.5353+-0.4057 ? crypto-md5 2.4281+-0.0815 ? 2.4513+-0.1338 ? crypto-sha1 2.7152+-0.1572 2.7021+-0.1951 date-format-tofte 9.4003+-0.2199 9.2496+-0.1236 might be 1.0163x faster date-format-xparb 5.8364+-0.1643 5.8093+-0.3173 math-cordic 3.0746+-0.0481 3.0420+-0.0921 might be 1.0107x faster math-partial-sums 5.2565+-0.1236 ? 5.3582+-0.3989 ? might be 1.0193x slower math-spectral-norm 1.9328+-0.0643 ? 1.9793+-0.1651 ? might be 1.0241x slower regexp-dna 8.0500+-1.5896 7.5887+-1.2486 might be 1.0608x faster string-base64 4.4369+-0.1049 ? 4.8056+-0.7815 ? might be 1.0831x slower string-fasta 6.6282+-0.0698 ? 6.6963+-0.0985 ? might be 1.0103x slower string-tagcloud 10.1379+-0.2248 9.7635+-0.2526 might be 1.0383x faster string-unpack-code 19.6618+-0.3229 ? 19.9645+-0.7952 ? might be 1.0154x slower string-validate-input 4.9487+-0.1412 4.8728+-0.0770 might be 1.0156x faster <arithmetic> 5.1231+-0.0991 5.1150+-0.0698 might be 1.0016x faster TipOfTree NoOSRDCE LongSpider: 3d-cube 1067.5059+-5.8140 ^ 897.4189+-26.3117 ^ definitely 1.1895x faster 3d-morph 1530.5034+-5.1575 ? 1532.3490+-6.2662 ? 3d-raytrace 733.8377+-4.3057 729.0163+-7.2074 access-binary-trees 1021.8750+-5.8868 1020.7007+-9.6463 access-fannkuch 336.5179+-8.8821 336.3901+-12.7039 access-nbody 620.4231+-10.0821 617.6023+-5.3693 access-nsieve 855.5782+-6.0463 847.1084+-9.3556 bitops-3bit-bits-in-byte 45.3331+-1.6364 44.9288+-0.6749 bitops-bits-in-byte 104.9795+-1.5006 104.1633+-2.1275 bitops-nsieve-bits 707.8824+-5.9502 ^ 633.3958+-4.0748 ^ definitely 1.1176x faster controlflow-recursive 480.4709+-8.5079 ! 503.6184+-2.5956 ! definitely 1.0482x slower crypto-aes 718.1868+-9.5828 711.8633+-5.7931 crypto-md5 558.9170+-9.2708 ? 559.4188+-6.7474 ? crypto-sha1 604.1073+-16.9826 596.7307+-7.8045 might be 1.0124x faster date-format-tofte 771.6822+-9.3199 768.6345+-16.8049 date-format-xparb 794.1659+-24.5549 781.6139+-16.0455 might be 1.0161x faster math-cordic 598.2437+-10.6035 596.2216+-6.1040 math-partial-sums 506.0310+-1.9356 ? 510.1378+-4.3534 ? math-spectral-norm 566.6849+-2.9046 565.9801+-2.0958 string-base64 371.0673+-5.2165 369.7343+-4.8038 string-fasta 448.4598+-4.3884 448.3228+-4.4780 string-tagcloud 217.3328+-2.2594 215.1924+-2.3505 <geometric> 507.1557+-1.9180 ^ 499.6948+-1.7390 ^ definitely 1.0149x faster TipOfTree NoOSRDCE V8Spider: crypto 55.6004+-0.5162 55.5916+-0.9692 deltablue 97.6347+-5.3479 95.3752+-2.0943 might be 1.0237x faster earley-boyer 42.3557+-1.8550 41.7365+-0.5457 might be 1.0148x faster raytrace 39.7775+-2.7812 ? 40.0792+-2.4522 ? regexp 68.3621+-2.7212 ! 87.4352+-2.3372 ! definitely 1.2790x slower richards 79.1165+-1.3258 78.2292+-1.8148 might be 1.0113x faster splay 38.0673+-1.2425 ? 38.5365+-1.9379 ? might be 1.0123x slower <geometric> 56.6620+-0.8414 ! 58.4507+-0.5616 ! definitely 1.0316x slower TipOfTree NoOSRDCE Octane: encrypt 0.20318+-0.00145 0.20280+-0.00124 decrypt 3.63673+-0.04904 3.58847+-0.03558 might be 1.0134x faster deltablue x2 0.20873+-0.00289 0.20696+-0.00118 earley 0.58985+-0.00328 ^ 0.58279+-0.00254 ^ definitely 1.0121x faster boyer 6.43795+-0.02255 ! 6.52377+-0.02575 ! definitely 1.0133x slower navier-stokes x2 5.30640+-0.18366 5.20271+-0.03220 might be 1.0199x faster raytrace x2 1.27357+-0.08940 ? 1.28555+-0.02189 ? richards x2 0.12330+-0.00118 0.12303+-0.00090 splay x2 0.38232+-0.00314 0.38224+-0.00553 regexp x2 33.24388+-0.11767 ? 33.27609+-0.33954 ? pdfjs x2 44.24863+-0.16381 ? 45.41128+-2.54610 ? might be 1.0263x slower mandreel x2 50.23713+-0.46079 50.15673+-0.34736 gbemu x2 38.79241+-0.18215 ! 42.04436+-0.21398 ! definitely 1.0838x slower closure 0.55605+-0.00548 ? 0.55845+-0.00388 ? jquery 7.18395+-0.07158 7.11326+-0.13777 box2d x2 12.31547+-0.28960 12.27296+-0.14332 zlib x2 380.92706+-14.58368 ? 388.41813+-3.38749 ? might be 1.0197x slower typescript x2 824.53459+-12.52081 ? 827.03031+-19.26953 ? <geometric> 6.69997+-0.04311 ? 6.74269+-0.04480 ? might be 1.0064x slower TipOfTree NoOSRDCE Kraken: ai-astar 268.446+-2.273 ! 273.171+-1.978 ! definitely 1.0176x slower audio-beat-detection 105.607+-0.711 ? 106.068+-1.173 ? audio-dft 151.037+-2.511 148.576+-2.351 might be 1.0166x faster audio-fft 85.230+-3.616 ? 85.241+-3.658 ? audio-oscillator 210.924+-1.903 208.206+-2.072 might be 1.0131x faster imaging-darkroom 106.016+-1.708 105.023+-1.833 imaging-desaturate 63.661+-1.425 62.795+-0.528 might be 1.0138x faster imaging-gaussian-blur 115.390+-5.202 114.176+-1.556 might be 1.0106x faster json-parse-financial 46.785+-2.009 45.952+-1.895 might be 1.0181x faster json-stringify-tinderbox 58.300+-1.732 57.600+-1.592 might be 1.0122x faster stanford-crypto-aes 63.091+-2.343 ? 65.638+-3.253 ? might be 1.0404x slower stanford-crypto-ccm 51.539+-4.606 48.991+-1.078 might be 1.0520x faster stanford-crypto-pbkdf2 168.484+-2.134 ? 171.559+-3.952 ? might be 1.0183x slower stanford-crypto-sha256-iterative 56.685+-1.654 55.286+-1.936 might be 1.0253x faster <arithmetic> 110.800+-0.716 110.592+-0.499 might be 1.0019x faster TipOfTree NoOSRDCE JSRegress: abs-boolean 2.6613+-0.0431 2.6287+-0.0397 might be 1.0124x faster adapt-to-double-divide 17.1914+-0.4228 16.7621+-0.4132 might be 1.0256x faster aliased-arguments-getbyval 1.1907+-0.0552 1.1901+-0.0426 allocate-big-object 2.7295+-0.1244 ? 2.7731+-0.1574 ? might be 1.0160x slower arguments-named-and-reflective 13.7318+-1.4432 13.1806+-0.6998 might be 1.0418x faster arguments-out-of-bounds 14.8790+-0.3209 ? 15.1908+-0.6892 ? might be 1.0210x slower arguments-strict-mode 12.8287+-1.1978 12.5224+-1.1669 might be 1.0245x faster arguments 10.6535+-0.7665 10.5916+-0.1391 arity-mismatch-inlining 0.8822+-0.0701 0.8615+-0.0266 might be 1.0239x faster array-access-polymorphic-structure 7.5048+-1.2619 ? 8.0755+-1.2100 ? might be 1.0760x slower array-nonarray-polymorhpic-access 34.8757+-1.5215 ? 36.1423+-1.9855 ? might be 1.0363x slower array-prototype-every 87.5752+-1.2691 ? 89.8526+-2.2565 ? might be 1.0260x slower array-prototype-forEach 85.8967+-3.0507 ? 86.1534+-3.1761 ? array-prototype-map 94.8941+-2.1584 ? 95.6781+-1.6368 ? array-prototype-some 87.6936+-2.2933 ? 88.5341+-0.6680 ? array-splice-contiguous 43.1302+-3.4558 41.5018+-1.9971 might be 1.0392x faster array-with-double-add 4.2082+-0.1177 4.1512+-0.0778 might be 1.0137x faster array-with-double-increment 3.1740+-0.0380 ? 3.2146+-0.0434 ? might be 1.0128x slower array-with-double-mul-add 5.0220+-0.0799 ? 5.0535+-0.0755 ? array-with-double-sum 3.2501+-0.0406 ? 3.3006+-0.0434 ? might be 1.0155x slower array-with-int32-add-sub 6.8524+-0.0978 6.7568+-0.0880 might be 1.0142x faster array-with-int32-or-double-sum 3.3357+-0.0503 ? 3.3665+-0.0750 ? ArrayBuffer-DataView-alloc-large-long-lived 35.3763+-3.0609 33.7734+-2.0705 might be 1.0475x faster ArrayBuffer-DataView-alloc-long-lived 16.1352+-2.1938 15.6933+-1.9149 might be 1.0282x faster ArrayBuffer-Int32Array-byteOffset 4.0250+-0.6754 3.7765+-0.0944 might be 1.0658x faster ArrayBuffer-Int8Array-alloc-large-long-lived 33.0465+-1.0693 ? 33.5916+-2.6171 ? might be 1.0165x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 22.9254+-0.5165 ? 25.1132+-1.8805 ? might be 1.0954x slower ArrayBuffer-Int8Array-alloc-long-lived 14.2803+-1.4275 ? 15.7355+-1.3985 ? might be 1.1019x slower ArrayBuffer-Int8Array-alloc 11.3022+-0.7266 11.1919+-0.7937 asmjs_bool_bug 7.7214+-0.1895 7.6310+-0.0497 might be 1.0118x faster assign-custom-setter-polymorphic 3.1956+-0.1111 3.0618+-0.0562 might be 1.0437x faster assign-custom-setter 4.4565+-0.1082 ^ 4.1613+-0.0678 ^ definitely 1.0709x faster basic-set 8.9456+-0.5908 8.7931+-0.3397 might be 1.0173x faster big-int-mul 4.0915+-0.0432 ? 4.1055+-0.0747 ? boolean-test 3.0573+-0.0593 3.0271+-0.0254 branch-fold 3.7320+-0.0889 3.7244+-0.0214 by-val-generic 8.6464+-0.5170 8.5404+-0.4354 might be 1.0124x faster call-spread-apply 31.1073+-1.6314 ? 31.8700+-1.8562 ? might be 1.0245x slower call-spread-call 25.6043+-2.0334 ? 26.1313+-1.8767 ? might be 1.0206x slower captured-assignments 0.4483+-0.0149 ? 0.4640+-0.0187 ? might be 1.0349x slower cast-int-to-double 5.2533+-0.0109 ? 5.3031+-0.0947 ? cell-argument 8.6961+-0.3164 8.4875+-0.2054 might be 1.0246x faster cfg-simplify 2.8624+-0.0689 ? 3.0010+-0.1365 ? might be 1.0484x slower chain-getter-access 10.1454+-0.1688 10.0223+-0.0964 might be 1.0123x faster cmpeq-obj-to-obj-other 10.8257+-0.5203 ? 11.2446+-0.6541 ? might be 1.0387x slower constant-test 4.9603+-0.0576 4.9332+-0.0243 create-lots-of-functions 23.5172+-1.7969 ? 24.5695+-1.4864 ? might be 1.0447x slower DataView-custom-properties 39.2245+-1.9690 ? 44.5149+-12.8387 ? might be 1.1349x slower deconstructing-parameters-overridden-by-function 0.5081+-0.0390 0.4738+-0.0155 might be 1.0724x faster delay-tear-off-arguments-strictmode 13.9295+-0.2926 ? 14.3748+-1.1572 ? might be 1.0320x slower deltablue-varargs 199.2939+-2.4432 ? 201.5839+-2.3195 ? might be 1.0115x slower destructuring-arguments 16.6486+-0.9119 ? 17.5288+-1.1554 ? might be 1.0529x slower destructuring-swap 5.1011+-0.1876 5.0343+-0.0486 might be 1.0133x faster direct-arguments-getbyval 1.2177+-0.0446 ? 1.2338+-0.1232 ? might be 1.0133x slower div-boolean-double 5.2057+-0.0205 ? 5.2688+-0.0989 ? might be 1.0121x slower div-boolean 7.7955+-0.0726 ? 7.9528+-0.2894 ? might be 1.0202x slower double-get-by-val-out-of-bounds 4.5051+-0.0410 4.5000+-0.0336 double-pollution-getbyval 8.8608+-0.0584 ? 9.0785+-0.3673 ? might be 1.0246x slower double-pollution-putbyoffset 4.2858+-0.0827 ? 4.3335+-0.1657 ? might be 1.0111x slower double-to-int32-typed-array-no-inline 2.3186+-0.0694 2.2487+-0.0458 might be 1.0311x faster double-to-int32-typed-array 1.9260+-0.0535 ? 1.9499+-0.0944 ? might be 1.0124x slower double-to-uint32-typed-array-no-inline 2.3184+-0.0390 ? 2.3514+-0.0549 ? might be 1.0143x slower double-to-uint32-typed-array 1.9632+-0.0341 1.9347+-0.0453 might be 1.0147x faster elidable-new-object-dag 44.5415+-2.8450 42.8042+-1.8685 might be 1.0406x faster elidable-new-object-roflcopter 46.3348+-1.1740 ? 46.6653+-1.6405 ? elidable-new-object-then-call 38.2910+-0.7143 ? 39.7568+-1.3841 ? might be 1.0383x slower elidable-new-object-tree 45.3957+-1.1246 ? 45.4967+-2.3644 ? empty-string-plus-int 5.3662+-0.0993 5.3510+-0.0732 emscripten-cube2hash 39.1989+-1.1232 ? 39.4736+-1.0736 ? exit-length-on-plain-object 15.0979+-2.1341 ? 15.2716+-1.6884 ? might be 1.0115x slower external-arguments-getbyval 1.1871+-0.0262 ? 1.2115+-0.0532 ? might be 1.0206x slower external-arguments-putbyval 2.3017+-0.0862 ? 2.3415+-0.0963 ? might be 1.0173x slower fixed-typed-array-storage-var-index 1.2411+-0.0362 1.2270+-0.0146 might be 1.0115x faster fixed-typed-array-storage 0.9250+-0.0546 0.9209+-0.0540 Float32Array-matrix-mult 4.5177+-0.4356 4.3447+-0.0985 might be 1.0398x faster Float32Array-to-Float64Array-set 53.7063+-2.3900 ! 58.6246+-2.2263 ! definitely 1.0916x slower Float64Array-alloc-long-lived 73.2679+-1.3301 ? 74.6581+-2.0964 ? might be 1.0190x slower Float64Array-to-Int16Array-set 71.0888+-1.4861 ? 71.9082+-3.6463 ? might be 1.0115x slower fold-double-to-int 13.6420+-0.1634 ? 13.6997+-0.2073 ? fold-get-by-id-to-multi-get-by-offset-rare-int 9.7786+-0.7109 ? 10.6461+-1.2013 ? might be 1.0887x slower fold-get-by-id-to-multi-get-by-offset 10.3299+-1.3725 ? 10.7474+-0.9842 ? might be 1.0404x slower fold-multi-get-by-offset-to-get-by-offset 9.0185+-0.9183 ? 9.0253+-1.0213 ? fold-multi-get-by-offset-to-poly-get-by-offset 8.5566+-0.3838 ? 9.0320+-0.8652 ? might be 1.0556x slower fold-multi-put-by-offset-to-poly-put-by-offset 8.3947+-0.5871 8.2530+-1.5747 might be 1.0172x faster fold-multi-put-by-offset-to-put-by-offset 4.7961+-0.7545 ? 5.4729+-1.1986 ? might be 1.1411x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 9.5172+-0.2950 9.4537+-0.1602 fold-put-by-id-to-multi-put-by-offset 9.7146+-0.8440 9.4176+-0.7776 might be 1.0315x faster fold-put-structure 6.4893+-1.2507 ^ 4.2612+-0.6658 ^ definitely 1.5229x faster for-of-iterate-array-entries 4.7381+-0.1075 ? 4.8727+-0.2248 ? might be 1.0284x slower for-of-iterate-array-keys 3.9344+-0.0972 3.8389+-0.0452 might be 1.0249x faster for-of-iterate-array-values 3.9410+-0.2119 3.8560+-0.0728 might be 1.0220x faster fround 19.6753+-0.5373 ? 20.1328+-0.6463 ? might be 1.0233x slower ftl-library-inlining-dataview 82.9753+-3.6728 ? 83.9054+-2.0755 ? might be 1.0112x slower ftl-library-inlining 73.6185+-15.6872 67.7896+-0.4844 might be 1.0860x faster function-dot-apply 2.3213+-0.0769 2.2841+-0.1536 might be 1.0163x faster function-test 3.4548+-0.0387 3.4384+-0.0437 function-with-eval 102.7368+-4.2082 ? 109.3287+-6.8411 ? might be 1.0642x slower gcse-poly-get-less-obvious 19.2189+-0.5118 ? 19.3571+-1.8349 ? gcse-poly-get 22.3671+-1.8464 21.0413+-1.0849 might be 1.0630x faster gcse 4.3295+-0.0631 ? 4.3997+-0.1152 ? might be 1.0162x slower get-by-id-bimorphic-check-structure-elimination-simple 2.7799+-0.0428 ? 2.7862+-0.0492 ? get-by-id-bimorphic-check-structure-elimination 6.0672+-0.0802 6.0299+-0.0257 get-by-id-chain-from-try-block 7.0346+-1.1584 ? 7.1876+-1.2515 ? might be 1.0217x slower get-by-id-check-structure-elimination 5.1025+-0.0597 ? 5.1767+-0.1047 ? might be 1.0145x slower get-by-id-proto-or-self 16.8044+-0.4984 ? 17.0758+-0.9206 ? might be 1.0162x slower get-by-id-quadmorphic-check-structure-elimination-simple 2.9735+-0.0330 ? 2.9875+-0.0942 ? get-by-id-self-or-proto 17.4693+-0.3841 ? 17.5945+-0.8000 ? get-by-val-out-of-bounds 4.3525+-0.0396 4.3216+-0.0269 get_callee_monomorphic 3.8104+-0.0914 3.7404+-0.1070 might be 1.0187x faster get_callee_polymorphic 3.3983+-0.0409 ? 3.4240+-0.0449 ? getter-no-activation 5.0280+-0.2043 4.9996+-0.2071 getter-richards 126.5514+-5.0754 125.3142+-8.3532 getter 6.1037+-0.7522 5.8583+-0.7657 might be 1.0419x faster global-var-const-infer-fire-from-opt 0.8864+-0.0766 ? 0.9025+-0.1010 ? might be 1.0182x slower global-var-const-infer 0.9327+-0.1663 0.8776+-0.1262 might be 1.0628x faster HashMap-put-get-iterate-keys 26.7270+-0.2394 26.3845+-0.3441 might be 1.0130x faster HashMap-put-get-iterate 26.6857+-0.8649 26.2269+-0.2393 might be 1.0175x faster HashMap-string-put-get-iterate 27.6351+-1.1639 ? 28.3949+-1.4772 ? might be 1.0275x slower hoist-make-rope 11.7032+-0.4957 11.4322+-0.7077 might be 1.0237x faster hoist-poly-check-structure-effectful-loop 4.9434+-0.0244 ? 5.1082+-0.1913 ? might be 1.0333x slower hoist-poly-check-structure 3.7525+-0.1205 3.7063+-0.0605 might be 1.0125x faster imul-double-only 8.0524+-0.6308 ? 8.6914+-0.7298 ? might be 1.0794x slower imul-int-only 10.0866+-0.6877 9.7439+-0.1015 might be 1.0352x faster imul-mixed 8.4558+-0.3558 8.3062+-0.3160 might be 1.0180x faster in-four-cases 18.8477+-0.1706 18.8097+-0.1639 in-one-case-false 10.3478+-0.5822 10.2462+-0.4444 in-one-case-true 10.3149+-0.5971 9.9530+-0.3789 might be 1.0364x faster in-two-cases 10.3026+-0.2076 ? 10.3893+-0.3899 ? indexed-properties-in-objects 2.8722+-0.0200 ? 2.9012+-0.0296 ? might be 1.0101x slower infer-closure-const-then-mov-no-inline 3.7030+-0.0582 ? 3.7203+-0.0220 ? infer-closure-const-then-mov 19.0613+-0.4527 ! 19.9965+-0.3049 ! definitely 1.0491x slower infer-closure-const-then-put-to-scope-no-inline 13.9381+-1.5319 ? 14.6198+-1.6865 ? might be 1.0489x slower infer-closure-const-then-put-to-scope 23.1684+-1.0714 22.5965+-0.7065 might be 1.0253x faster infer-closure-const-then-reenter-no-inline 64.8354+-2.6703 ? 68.7110+-2.0056 ? might be 1.0598x slower infer-closure-const-then-reenter 22.7627+-1.3098 22.0184+-0.4474 might be 1.0338x faster infer-constant-global-property 30.2413+-0.6219 ? 31.3655+-1.9600 ? might be 1.0372x slower infer-constant-property 2.7338+-0.0338 2.7005+-0.0410 might be 1.0123x faster infer-one-time-closure-ten-vars 13.9823+-1.5857 12.8832+-0.3508 might be 1.0853x faster infer-one-time-closure-two-vars 12.7184+-0.8030 ? 12.9483+-1.5113 ? might be 1.0181x slower infer-one-time-closure 12.7546+-0.8612 12.3940+-0.8597 might be 1.0291x faster infer-one-time-deep-closure 22.5677+-1.0921 ? 22.6368+-1.0461 ? inline-arguments-access 4.3881+-0.1181 ? 4.4320+-0.1947 ? might be 1.0100x slower inline-arguments-aliased-access 4.4124+-0.1914 ? 4.4358+-0.1676 ? inline-arguments-local-escape 4.5333+-0.1658 ? 4.6482+-0.1954 ? might be 1.0253x slower inline-get-scoped-var 4.9157+-0.2304 ? 4.9491+-0.2022 ? inlined-put-by-id-transition 10.5290+-0.3718 ? 10.6319+-0.2753 ? int-or-other-abs-then-get-by-val 5.1048+-0.0653 ? 5.4281+-1.5671 ? might be 1.0633x slower int-or-other-abs-zero-then-get-by-val 17.6322+-0.9783 ? 18.0579+-0.9528 ? might be 1.0241x slower int-or-other-add-then-get-by-val 4.2520+-0.0180 ? 4.3147+-0.1075 ? might be 1.0148x slower int-or-other-add 5.2796+-0.0407 ? 5.3128+-0.0436 ? int-or-other-div-then-get-by-val 4.3512+-0.0477 ^ 4.1003+-0.0694 ^ definitely 1.0612x faster int-or-other-max-then-get-by-val 4.4143+-0.1078 4.2909+-0.1795 might be 1.0288x faster int-or-other-min-then-get-by-val 4.4820+-0.0334 ? 4.5788+-0.2324 ? might be 1.0216x slower int-or-other-mod-then-get-by-val 3.9096+-0.1232 3.8387+-0.0481 might be 1.0185x faster int-or-other-mul-then-get-by-val 3.9926+-0.0343 ! 4.0730+-0.0401 ! definitely 1.0201x slower int-or-other-neg-then-get-by-val 4.6049+-0.0295 ^ 4.4800+-0.0412 ^ definitely 1.0279x faster int-or-other-neg-zero-then-get-by-val 17.6616+-1.1421 ? 19.7504+-5.2604 ? might be 1.1183x slower int-or-other-sub-then-get-by-val 4.3586+-0.1477 4.3472+-0.1371 int-or-other-sub 3.5364+-0.0825 3.4786+-0.0373 might be 1.0166x faster int-overflow-local 4.3724+-0.0390 ^ 4.2587+-0.0516 ^ definitely 1.0267x faster Int16Array-alloc-long-lived 49.9170+-1.0861 ? 51.1594+-1.7642 ? might be 1.0249x slower Int16Array-bubble-sort-with-byteLength 21.0540+-1.6300 20.4076+-0.8934 might be 1.0317x faster Int16Array-bubble-sort 20.3346+-0.5616 20.0439+-0.2505 might be 1.0145x faster Int16Array-load-int-mul 1.5027+-0.0336 1.4935+-0.0127 Int16Array-to-Int32Array-set 58.2192+-2.7235 54.1738+-2.0750 might be 1.0747x faster Int32Array-alloc-large 25.3748+-1.1682 24.3156+-0.4395 might be 1.0436x faster Int32Array-alloc-long-lived 57.8029+-0.6679 56.7143+-1.7973 might be 1.0192x faster Int32Array-alloc 3.7260+-0.4853 3.3666+-0.1520 might be 1.1067x faster Int32Array-Int8Array-view-alloc 7.3708+-0.7278 ? 8.2517+-1.0361 ? might be 1.1195x slower int52-spill 6.4272+-0.0653 6.4232+-0.1793 Int8Array-alloc-long-lived 49.2013+-1.1154 47.6876+-1.5764 might be 1.0317x faster Int8Array-load-with-byteLength 3.3510+-0.0402 ? 3.3988+-0.0980 ? might be 1.0143x slower Int8Array-load 3.4145+-0.0762 ? 3.4273+-0.1278 ? integer-divide 11.5982+-0.1105 ? 11.8169+-0.1322 ? might be 1.0189x slower integer-modulo 2.0350+-0.0634 1.9843+-0.1078 might be 1.0256x faster large-int-captured 5.6318+-0.0637 ? 5.6321+-0.1087 ? large-int-neg 16.6255+-0.6645 ? 16.9100+-1.5711 ? might be 1.0171x slower large-int 15.1376+-0.7961 ? 15.4848+-0.9153 ? might be 1.0229x slower logical-not 4.5947+-0.0784 4.5662+-0.0229 lots-of-fields 13.2408+-0.3255 12.9112+-0.2952 might be 1.0255x faster make-indexed-storage 3.1700+-0.0332 3.0996+-0.1068 might be 1.0227x faster make-rope-cse 4.5473+-0.1045 ? 4.7963+-0.3416 ? might be 1.0548x slower marsaglia-larger-ints 37.4924+-1.7759 35.9100+-0.6103 might be 1.0441x faster marsaglia-osr-entry 23.8927+-1.3555 23.5030+-0.9250 might be 1.0166x faster max-boolean 2.4938+-0.0196 ^ 2.4474+-0.0187 ^ definitely 1.0189x faster method-on-number 19.3274+-0.8310 18.8128+-0.1808 might be 1.0274x faster min-boolean 2.5236+-0.0389 ^ 2.4587+-0.0251 ^ definitely 1.0264x faster minus-boolean-double 3.1440+-0.0196 ? 3.1600+-0.0480 ? minus-boolean 2.3555+-0.0444 ? 2.3575+-0.0500 ? misc-strict-eq 38.5859+-2.9162 37.9749+-0.4353 might be 1.0161x faster mod-boolean-double 10.9126+-0.1800 ? 11.0961+-0.2847 ? might be 1.0168x slower mod-boolean 7.8021+-0.0171 ? 7.8497+-0.1042 ? mul-boolean-double 3.7734+-0.1584 ? 3.7745+-0.1118 ? mul-boolean 2.9662+-0.1602 2.8886+-0.0412 might be 1.0269x faster neg-boolean 3.1723+-0.0678 ? 3.2105+-0.0458 ? might be 1.0120x slower negative-zero-divide 0.3573+-0.0134 0.3425+-0.0132 might be 1.0431x faster negative-zero-modulo 0.3560+-0.0245 ? 0.3605+-0.0270 ? might be 1.0126x slower negative-zero-negate 0.3189+-0.0107 ? 0.3482+-0.0562 ? might be 1.0917x slower nested-function-parsing 41.1888+-3.1395 39.7135+-1.0447 might be 1.0371x faster new-array-buffer-dead 2.8392+-0.0270 ! 121.7337+-3.3111 ! definitely 42.8768x slower new-array-buffer-push 7.1953+-0.9157 6.9271+-0.7169 might be 1.0387x faster new-array-dead 12.5582+-0.3092 ! 127.8342+-1.5779 ! definitely 10.1794x slower new-array-push 3.9990+-0.2541 3.9109+-0.1159 might be 1.0225x faster no-inline-constructor 121.4169+-2.6498 120.9824+-2.7014 number-test 2.9949+-0.0257 ? 3.0103+-0.0375 ? object-closure-call 5.6076+-0.2554 5.5565+-0.0332 object-test 3.1088+-0.0471 ? 3.1448+-0.0537 ? might be 1.0116x slower obvious-sink-pathology-taken 146.7847+-2.7151 ? 147.9983+-1.8675 ? obvious-sink-pathology 143.2619+-1.3271 140.9951+-3.9735 might be 1.0161x faster obviously-elidable-new-object 35.7540+-1.5111 ? 36.2912+-2.0035 ? might be 1.0150x slower plus-boolean-arith 2.5621+-0.0551 ? 2.5654+-0.1839 ? plus-boolean-double 3.1932+-0.0544 ? 3.2041+-0.0673 ? plus-boolean 2.4267+-0.0572 2.3871+-0.0322 might be 1.0166x faster poly-chain-access-different-prototypes-simple 3.3051+-0.0760 3.2828+-0.0726 poly-chain-access-different-prototypes 2.5964+-0.0174 ? 2.6277+-0.0252 ? might be 1.0121x slower poly-chain-access-simpler 3.2758+-0.0335 ? 3.2818+-0.0394 ? poly-chain-access 2.5938+-0.0205 ? 2.6382+-0.1102 ? might be 1.0171x slower poly-stricteq 59.0343+-1.4007 ! 65.3023+-3.0280 ! definitely 1.1062x slower polymorphic-array-call 1.3825+-0.1781 1.2440+-0.1637 might be 1.1113x faster polymorphic-get-by-id 3.1106+-0.0607 ? 3.4022+-0.7802 ? might be 1.0937x slower polymorphic-put-by-id 29.3193+-1.8780 28.9190+-2.0671 might be 1.0138x faster polymorphic-structure 15.3243+-1.3245 ? 15.4026+-1.0424 ? polyvariant-monomorphic-get-by-id 9.2184+-1.0416 8.6405+-0.2385 might be 1.0669x faster proto-getter-access 10.3285+-0.3673 10.1118+-0.1309 might be 1.0214x faster put-by-id-replace-and-transition 8.7289+-0.2068 8.6681+-0.1453 put-by-id-slightly-polymorphic 2.8683+-0.0522 2.8530+-0.0593 put-by-id 13.4035+-0.4483 13.3521+-0.4366 put-by-val-direct 0.5937+-0.0178 ? 0.6093+-0.0297 ? might be 1.0263x slower put-by-val-large-index-blank-indexing-type 6.6741+-1.1944 6.0630+-0.7942 might be 1.1008x faster put-by-val-machine-int 2.6305+-0.0894 2.6146+-0.0619 rare-osr-exit-on-local 15.3990+-0.5260 ? 15.6399+-1.1191 ? might be 1.0156x slower register-pressure-from-osr 22.7585+-1.5018 22.3313+-1.1095 might be 1.0191x faster setter 5.4877+-0.3434 ? 5.6445+-0.5879 ? might be 1.0286x slower simple-activation-demo 25.2721+-0.8327 25.0826+-0.5371 simple-getter-access 12.8327+-0.4529 12.7647+-0.2435 simple-poly-call-nested 8.1982+-0.4903 ? 8.3055+-0.3390 ? might be 1.0131x slower simple-poly-call 1.3516+-0.0522 1.3103+-0.1023 might be 1.0315x faster sin-boolean 22.4128+-0.5318 ? 23.0806+-0.6513 ? might be 1.0298x slower singleton-scope 70.8450+-2.7607 ? 71.6053+-2.2988 ? might be 1.0107x slower sinkable-new-object-dag 69.7823+-1.1565 ? 71.8888+-1.9130 ? might be 1.0302x slower sinkable-new-object-taken 52.0329+-3.3793 ? 54.7684+-1.0352 ? might be 1.0526x slower sinkable-new-object 39.9580+-2.1338 39.7411+-1.3710 slow-array-profile-convergence 2.8483+-0.1049 ? 2.8709+-0.2152 ? slow-convergence 2.6794+-0.0497 2.6329+-0.0384 might be 1.0177x faster sorting-benchmark 23.4305+-1.2208 ? 25.1613+-1.3439 ? might be 1.0739x slower sparse-conditional 1.1304+-0.0344 ? 1.1391+-0.0184 ? splice-to-remove 16.9602+-0.1700 ? 17.1242+-0.8019 ? string-char-code-at 17.0796+-1.1324 16.4781+-0.4985 might be 1.0365x faster string-concat-object 2.4502+-0.2056 2.4108+-0.1022 might be 1.0163x faster string-concat-pair-object 2.3395+-0.0796 ? 2.4056+-0.1733 ? might be 1.0283x slower string-concat-pair-simple 11.1772+-0.3719 ? 12.3527+-2.4086 ? might be 1.1052x slower string-concat-simple 12.3447+-1.3512 11.8796+-0.8426 might be 1.0392x faster string-cons-repeat 8.8935+-1.1760 8.2851+-1.2359 might be 1.0734x faster string-cons-tower 8.2625+-0.7777 7.6678+-0.2026 might be 1.0776x faster string-equality 17.7817+-0.3611 ? 18.2411+-1.4297 ? might be 1.0258x slower string-get-by-val-big-char 7.0943+-0.0454 7.0897+-0.1184 string-get-by-val-out-of-bounds-insane 3.9092+-0.0767 ? 4.0006+-0.1226 ? might be 1.0234x slower string-get-by-val-out-of-bounds 5.2295+-0.0572 ? 5.2490+-0.1080 ? string-get-by-val 3.2746+-0.1207 ? 3.3588+-0.0322 ? might be 1.0257x slower string-hash 2.0667+-0.0275 ? 2.0959+-0.0581 ? might be 1.0141x slower string-long-ident-equality 15.0609+-0.8679 14.9898+-1.3349 string-out-of-bounds 15.0720+-0.2245 14.9559+-0.2636 string-repeat-arith 33.5910+-2.7638 ? 34.6403+-3.1525 ? might be 1.0312x slower string-sub 69.1126+-1.5594 ^ 64.1733+-1.8003 ^ definitely 1.0770x faster string-test 2.9108+-0.0524 ? 2.9711+-0.0319 ? might be 1.0207x slower string-var-equality 36.4413+-0.5895 ^ 31.3715+-1.4722 ^ definitely 1.1616x faster structure-hoist-over-transitions 2.5676+-0.0537 2.5213+-0.0310 might be 1.0183x faster substring-concat-weird 38.2127+-0.4311 ? 39.0038+-1.6110 ? might be 1.0207x slower substring-concat 40.0088+-1.2149 39.9718+-0.8165 substring 46.2504+-1.5609 45.2668+-1.2940 might be 1.0217x faster switch-char-constant 2.7387+-0.0455 ? 2.7822+-0.0349 ? might be 1.0159x slower switch-char 6.8620+-0.6755 ? 7.1594+-1.1016 ? might be 1.0433x slower switch-constant 8.0050+-0.1673 8.0016+-0.1512 switch-string-basic-big-var 15.1333+-0.9805 ? 16.0505+-1.5391 ? might be 1.0606x slower switch-string-basic-big 14.7081+-1.8213 14.7017+-1.6080 switch-string-basic-var 14.1947+-0.1343 ? 15.6564+-2.3704 ? might be 1.1030x slower switch-string-basic 13.7054+-1.6030 13.5348+-1.3468 might be 1.0126x faster switch-string-big-length-tower-var 20.8852+-2.0583 19.7520+-0.1739 might be 1.0574x faster switch-string-length-tower-var 15.3053+-1.4212 ? 16.1348+-2.2584 ? might be 1.0542x slower switch-string-length-tower 13.1481+-1.4378 ? 13.9646+-1.6948 ? might be 1.0621x slower switch-string-short 13.3698+-1.6145 ? 13.4918+-1.6807 ? switch 11.9846+-0.1995 ? 12.0808+-0.2981 ? tear-off-arguments-simple 3.4627+-0.2407 3.2891+-0.0445 might be 1.0528x faster tear-off-arguments 4.6152+-0.1830 4.5060+-0.0324 might be 1.0242x faster temporal-structure 12.4388+-0.5578 12.3279+-0.2875 to-int32-boolean 13.7925+-0.2309 13.6628+-0.0844 try-catch-get-by-val-cloned-arguments 14.5413+-1.2881 14.4927+-1.0002 try-catch-get-by-val-direct-arguments 6.7329+-0.9435 6.6956+-0.8093 try-catch-get-by-val-scoped-arguments 7.5734+-0.3318 ? 7.9068+-0.8726 ? might be 1.0440x slower undefined-property-access 356.8364+-4.8139 355.8890+-2.8337 undefined-test 3.0423+-0.0367 ? 3.0800+-0.0311 ? might be 1.0124x slower unprofiled-licm 23.1819+-0.8874 23.0412+-0.7322 varargs-call 15.8305+-0.2380 ? 16.1331+-0.9722 ? might be 1.0191x slower varargs-construct-inline 23.5999+-1.5507 21.3925+-0.9935 might be 1.1032x faster varargs-construct 31.2273+-0.7111 30.8835+-0.2977 might be 1.0111x faster varargs-inline 9.7754+-0.6419 ? 9.8318+-0.3185 ? varargs-strict-mode 10.5522+-1.2148 ? 10.8592+-0.4916 ? might be 1.0291x slower varargs 10.0625+-0.1239 ! 10.8036+-0.4644 ! definitely 1.0737x slower weird-inlining-const-prop 2.4537+-0.2576 2.3320+-0.1592 might be 1.0522x faster <geometric> 8.7334+-0.0144 ! 8.9125+-0.0219 ! definitely 1.0205x slower TipOfTree NoOSRDCE AsmBench: bigfib.cpp 490.0135+-2.2505 ? 492.9130+-2.1931 ? cray.c 429.0747+-1.7310 427.8221+-1.6274 dry.c 485.0880+-7.8442 ? 492.9141+-4.2137 ? might be 1.0161x slower FloatMM.c 728.0387+-2.6530 727.5149+-3.4194 gcc-loops.cpp 4283.1709+-19.8608 ? 4286.9799+-24.7956 ? n-body.c 982.3097+-4.3523 ? 985.6561+-4.5484 ? Quicksort.c 437.0391+-2.0391 ^ 419.0662+-8.3587 ^ definitely 1.0429x faster stepanov_container.cpp 3585.7257+-54.7078 ? 3595.7284+-14.5040 ? Towers.c 259.6992+-1.3211 ? 259.8148+-0.7186 ? <geometric> 795.1833+-2.2224 793.7521+-1.5852 might be 1.0018x faster TipOfTree NoOSRDCE CompressionBench: huffman 361.3750+-2.9912 ? 400.8914+-101.3090 ? might be 1.1094x slower arithmetic-simple 397.9807+-4.3965 397.1354+-2.6821 arithmetic-precise 299.4740+-4.4754 ? 301.6952+-3.8244 ? arithmetic-complex-precise 300.7039+-6.6830 ? 303.5737+-4.1738 ? arithmetic-precise-order-0 452.9108+-83.7323 424.8458+-6.7030 might be 1.0661x faster arithmetic-precise-order-1 331.4609+-9.4909 329.5554+-2.4654 arithmetic-precise-order-2 364.2116+-4.8249 362.5679+-4.3831 arithmetic-simple-order-1 423.8401+-5.4444 421.5473+-5.8142 arithmetic-simple-order-2 471.0127+-2.7611 469.9637+-5.7358 lz-string 337.8441+-14.5046 329.3901+-9.8520 might be 1.0257x faster <geometric> 369.3337+-6.7885 ? 369.4656+-7.2690 ? might be 1.0004x slower TipOfTree NoOSRDCE Geomean of preferred means: <scaled-result> 63.9643+-0.2782 ? 64.2699+-0.2850 ? might be 1.0048x slower Created attachment 251132 [details]
the patch
Attachment 251132 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:118: Place brace on its own line for function definitions. [whitespace/braces] [4]
Total errors found: 1 in 16 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 251132 [details]
the patch
r=me
Landed in http://trac.webkit.org/changeset/183072 |