WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
143734
MovHint should be a strong use
https://bugs.webkit.org/show_bug.cgi?id=143734
Summary
MovHint should be a strong use
Filip Pizlo
Reported
2015-04-14 15:55:12 PDT
Currently MovHint is a "weak" use in the sense that if nothing else uses a child of a MovHint then the MovHint turns into a ZombieHint. We should change this. Instead, MovHint should be a strong use. This will fix bugs where our other mechanisms of keeping things alive for OSR (i.e. Phantoms) aren't properly preserved. This will reduce the amount of DCE we do. As part of this patch, we should mitigate the reduction in DCE by introducing a phase that removes MovHints if the value is dead in bytecode.
Attachments
the patch
(31.96 KB, patch)
2015-04-19 15:32 PDT
,
Filip Pizlo
ggaren
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2015-04-14 15:58:56 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
Filip Pizlo
Comment 2
2015-04-19 15:32:07 PDT
Created
attachment 251132
[details]
the patch
WebKit Commit Bot
Comment 3
2015-04-19 15:34:10 PDT
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.
Geoffrey Garen
Comment 4
2015-04-20 17:13:39 PDT
Comment on
attachment 251132
[details]
the patch r=me
Filip Pizlo
Comment 5
2015-04-21 13:17:40 PDT
Landed in
http://trac.webkit.org/changeset/183072
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