Summary: | DFG PhantomArguments shouldn't rely on a dead Phi graph | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||||||
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | barraclough, ggaren, mark.lam, mhahnenberg, msaboff, oliver, sam | ||||||||
Priority: | P2 | ||||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | All | ||||||||||
OS: | All | ||||||||||
Bug Depends on: | |||||||||||
Bug Blocks: | 113986, 125531 | ||||||||||
Attachments: |
|
Description
Filip Pizlo
2013-12-24 11:29:28 PST
Created attachment 219975 [details]
it begins
Created attachment 219982 [details]
it runs things?
Created attachment 219991 [details]
the patch
This is totally neutral across the board. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, and JSRegress on oldmac (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc (r161065) "FixPhantomArgs" at /Volumes/Data/fromMiniMe/primary/OpenSource/WebKitBuild/Release/jsc (r161065) Collected 10 samples per benchmark/VM, with 10 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. TipOfTree FixPhantomArgs SunSpider: 3d-cube 7.7660+-0.0691 ? 7.7838+-0.0661 ? 3d-morph 8.8207+-0.1042 ? 8.8695+-0.0699 ? 3d-raytrace 9.0671+-0.1418 8.9412+-0.0867 might be 1.0141x faster access-binary-trees 2.1233+-0.0197 ? 2.1344+-0.0424 ? access-fannkuch 7.9803+-0.0344 7.9760+-0.1021 access-nbody 4.2582+-0.0172 4.2572+-0.0088 access-nsieve 5.0351+-0.0403 4.9848+-0.0706 might be 1.0101x faster bitops-3bit-bits-in-byte 1.8861+-0.0039 ? 1.9271+-0.0867 ? might be 1.0217x slower bitops-bits-in-byte 7.2395+-0.1139 7.2134+-0.0933 bitops-bitwise-and 3.0821+-0.0426 3.0702+-0.0247 bitops-nsieve-bits 4.6427+-0.0493 ? 4.6661+-0.0206 ? controlflow-recursive 3.1859+-0.0214 3.1768+-0.0182 crypto-aes 5.5292+-0.0124 ! 5.5588+-0.0154 ! definitely 1.0054x slower crypto-md5 3.3553+-0.0296 ? 3.4162+-0.0797 ? might be 1.0181x slower crypto-sha1 3.0173+-0.0256 3.0085+-0.0078 date-format-tofte 11.8118+-0.1351 ? 12.0171+-0.1753 ? might be 1.0174x slower date-format-xparb 8.7946+-0.1633 8.6891+-0.1969 might be 1.0121x faster math-cordic 4.2776+-0.0302 ? 4.3744+-0.1757 ? might be 1.0226x slower math-partial-sums 10.1587+-0.0923 ? 10.2147+-0.1340 ? math-spectral-norm 2.7611+-0.0058 ? 2.7638+-0.0096 ? regexp-dna 12.9010+-0.1444 ? 12.9973+-0.1695 ? string-base64 5.7963+-0.0774 5.7777+-0.0587 string-fasta 10.5380+-0.1503 10.4526+-0.0829 string-tagcloud 15.5291+-0.1240 ? 15.5445+-0.1459 ? string-unpack-code 31.0410+-0.1385 ! 31.4369+-0.2355 ! definitely 1.0128x slower string-validate-input 7.1424+-0.0366 7.0915+-0.1013 <arithmetic> * 7.6054+-0.0158 ? 7.6286+-0.0200 ? might be 1.0031x slower <geometric> 6.1028+-0.0108 ? 6.1164+-0.0149 ? might be 1.0022x slower <harmonic> 5.0100+-0.0110 ? 5.0266+-0.0199 ? might be 1.0033x slower TipOfTree FixPhantomArgs LongSpider: 3d-cube 2686.5415+-5.1094 2685.7136+-6.1509 3d-morph 1508.8911+-16.3972 1501.2542+-1.8344 3d-raytrace 1518.2069+-12.9074 ? 1528.8047+-19.0566 ? access-binary-trees 2443.9535+-13.2852 2441.1893+-10.5797 access-fannkuch 665.0165+-0.2839 ? 665.1871+-0.2476 ? access-nbody 1495.8355+-0.7271 ? 1496.8125+-2.8619 ? access-nsieve 1549.7407+-2.2498 ? 1550.4580+-3.4986 ? bitops-3bit-bits-in-byte 126.0413+-0.1899 126.0210+-0.1186 bitops-bits-in-byte 602.9749+-3.2729 ? 603.1399+-5.8048 ? bitops-nsieve-bits 1050.1224+-1.0445 1049.8860+-1.0774 controlflow-recursive 1472.5108+-0.4504 ? 1472.6738+-0.5504 ? crypto-aes 1664.8427+-5.5731 1660.3140+-3.9072 crypto-md5 1166.4220+-1.3871 ? 1166.7859+-1.9302 ? crypto-sha1 1606.8366+-4.1508 1605.8088+-4.9035 date-format-tofte 1212.1227+-10.6261 ? 1221.3336+-7.0744 ? date-format-xparb 1498.2135+-34.3698 1462.7239+-28.7013 might be 1.0243x faster math-cordic 1757.1904+-42.7892 1745.2505+-20.9316 math-partial-sums 1308.2149+-2.1197 ? 1315.0856+-15.5850 ? math-spectral-norm 1826.0040+-0.4815 ? 1826.1485+-0.7315 ? string-base64 589.8986+-2.4776 588.8341+-1.9824 string-fasta 993.0805+-3.4496 ? 1037.2658+-60.9962 ? might be 1.0445x slower string-tagcloud 391.6693+-2.1728 391.3601+-2.5639 <arithmetic> 1324.2877+-3.3222 ? 1324.6387+-3.3380 ? might be 1.0003x slower <geometric> * 1130.4850+-2.3655 ? 1131.4909+-3.2274 ? might be 1.0009x slower <harmonic> 819.2104+-1.0098 ? 819.8980+-1.7508 ? might be 1.0008x slower TipOfTree FixPhantomArgs V8Spider: crypto 79.3720+-0.2899 ? 79.4300+-0.2510 ? deltablue 98.5750+-0.6521 98.3793+-0.7620 earley-boyer 72.8843+-0.2721 72.8012+-0.2302 raytrace 44.2966+-0.1291 44.1868+-0.1412 regexp 101.9486+-1.5430 100.7952+-1.1217 might be 1.0114x faster richards 134.8117+-1.3526 133.5168+-1.3606 splay 46.3564+-0.5050 46.1523+-0.5123 <arithmetic> 82.6064+-0.3660 82.1803+-0.3042 might be 1.0052x faster <geometric> * 77.0269+-0.2971 76.6943+-0.2024 might be 1.0043x faster <harmonic> 71.5405+-0.2665 71.2766+-0.1713 might be 1.0037x faster TipOfTree FixPhantomArgs Octane and V8v7: encrypt 0.46558+-0.00032 ? 0.46568+-0.00031 ? decrypt 8.57466+-0.00613 ? 8.57863+-0.01781 ? deltablue x2 0.56331+-0.00332 0.56283+-0.00437 earley 0.91832+-0.00527 ^ 0.90241+-0.00671 ^ definitely 1.0176x faster boyer 12.46841+-0.03875 ? 12.48986+-0.03335 ? raytrace x2 4.25960+-0.02449 ? 4.32454+-0.04345 ? might be 1.0152x slower regexp x2 32.90411+-0.14865 ? 33.08541+-0.75540 ? richards x2 0.43727+-0.00726 0.43210+-0.01051 might be 1.0120x faster splay x2 0.64170+-0.01011 0.63893+-0.00326 navier-stokes x2 10.70012+-0.00589 10.69908+-0.00321 closure 0.43360+-0.00284 ? 0.43434+-0.00067 ? jquery 6.35046+-0.00677 ? 6.36374+-0.01021 ? gbemu x2 72.12393+-0.99714 71.41640+-0.93899 mandreel x2 136.45621+-1.05608 136.32163+-0.55205 pdfjs x2 102.12223+-0.22647 ? 102.35857+-0.33215 ? box2d x2 34.75326+-0.12016 ? 34.99268+-0.48170 ? V8v7: <arithmetic> 7.58995+-0.01946 ? 7.62015+-0.09336 ? might be 1.0040x slower <geometric> * 2.51525+-0.00833 2.51379+-0.01110 might be 1.0006x faster <harmonic> 1.03932+-0.00660 1.03371+-0.00796 might be 1.0054x faster Octane including V8v7: <arithmetic> 31.50517+-0.14197 31.49612+-0.10176 might be 1.0003x faster <geometric> * 6.97699+-0.02263 6.97454+-0.01929 might be 1.0004x faster <harmonic> 1.44621+-0.00873 1.43986+-0.00952 might be 1.0044x faster TipOfTree FixPhantomArgs Kraken: ai-astar 493.958+-0.438 ? 494.348+-0.870 ? audio-beat-detection 227.340+-2.486 224.686+-1.093 might be 1.0118x faster audio-dft 290.656+-1.503 ? 294.442+-6.316 ? might be 1.0130x slower audio-fft 130.827+-0.181 ? 130.876+-0.138 ? audio-oscillator 244.456+-0.348 244.130+-0.452 imaging-darkroom 287.799+-3.597 286.061+-0.944 imaging-desaturate 158.484+-0.098 ? 159.203+-1.769 ? imaging-gaussian-blur 362.897+-0.184 362.623+-0.152 json-parse-financial 81.285+-0.306 81.248+-1.429 json-stringify-tinderbox 103.853+-0.278 ? 103.949+-0.311 ? stanford-crypto-aes 91.292+-0.724 ? 91.332+-0.961 ? stanford-crypto-ccm 100.999+-2.226 ? 101.624+-0.910 ? stanford-crypto-pbkdf2 257.469+-2.474 ? 258.836+-1.080 ? stanford-crypto-sha256-iterative 113.941+-0.462 ? 114.840+-0.442 ? <arithmetic> * 210.376+-0.520 ? 210.586+-0.486 ? might be 1.0010x slower <geometric> 180.651+-0.457 ? 180.894+-0.406 ? might be 1.0013x slower <harmonic> 156.256+-0.407 ? 156.524+-0.462 ? might be 1.0017x slower TipOfTree FixPhantomArgs JSRegress: adapt-to-double-divide 22.6768+-0.1155 ? 22.7438+-0.1208 ? aliased-arguments-getbyval 0.9930+-0.0061 ? 0.9956+-0.0025 ? allocate-big-object 3.0409+-0.0149 ? 3.0434+-0.0193 ? arity-mismatch-inlining 0.9804+-0.0202 0.9668+-0.0069 might be 1.0140x faster array-access-polymorphic-structure 10.6953+-0.4952 10.4102+-0.4084 might be 1.0274x faster array-nonarray-polymorhpic-access 58.1879+-0.2413 58.1229+-0.1850 array-with-double-add 5.7944+-0.0181 5.7446+-0.0687 array-with-double-increment 4.3274+-0.0349 ? 4.3528+-0.0160 ? array-with-double-mul-add 6.8087+-0.0850 ? 6.8837+-0.0336 ? might be 1.0110x slower array-with-double-sum 8.0501+-0.0772 ? 8.0743+-0.0548 ? array-with-int32-add-sub 10.4124+-0.1171 ? 10.5226+-0.1007 ? might be 1.0106x slower array-with-int32-or-double-sum 8.0081+-0.0184 ? 8.0357+-0.0487 ? ArrayBuffer-DataView-alloc-large-long-lived 118.7195+-0.8988 ? 119.3650+-1.0950 ? ArrayBuffer-DataView-alloc-long-lived 30.7013+-0.1663 ? 31.1260+-0.2666 ? might be 1.0138x slower ArrayBuffer-Int32Array-byteOffset 6.0497+-0.0789 6.0088+-0.0969 ArrayBuffer-Int8Array-alloc-huge-long-lived 215.4851+-1.7898 214.2148+-1.9703 ArrayBuffer-Int8Array-alloc-large-long-lived-fragmented 166.9588+-1.4260 ? 167.5831+-1.0247 ? ArrayBuffer-Int8Array-alloc-large-long-lived 119.1621+-1.3380 ? 119.3522+-1.3893 ? ArrayBuffer-Int8Array-alloc-long-lived-buffer 50.5233+-0.2475 ^ 49.3379+-0.3472 ^ definitely 1.0240x faster ArrayBuffer-Int8Array-alloc-long-lived 30.4709+-0.1118 ? 31.1389+-0.6237 ? might be 1.0219x slower ArrayBuffer-Int8Array-alloc 26.6814+-0.0919 ^ 26.4946+-0.0934 ^ definitely 1.0070x faster asmjs_bool_bug 9.3067+-0.1117 9.2878+-0.0544 basic-set 20.0017+-0.1659 19.8301+-0.0798 big-int-mul 5.5126+-0.0633 5.4870+-0.0738 boolean-test 4.4484+-0.0194 4.4476+-0.0432 branch-fold 5.0073+-0.0240 5.0057+-0.0120 by-val-generic 12.7966+-0.1922 12.6076+-0.0921 might be 1.0150x faster captured-assignments 0.6477+-0.0189 ? 0.6513+-0.0185 ? cast-int-to-double 12.6280+-0.1562 ? 12.6349+-0.1399 ? cell-argument 16.1888+-0.4040 16.1845+-0.3401 cfg-simplify 3.9978+-0.0154 ? 4.0095+-0.0443 ? chain-custom-getter 162.8769+-7.7251 ? 165.1910+-8.6207 ? might be 1.0142x slower chain-getter-access 496.4887+-4.4623 ? 500.0294+-4.4702 ? cmpeq-obj-to-obj-other 12.9900+-0.5681 12.5843+-0.3278 might be 1.0322x faster constant-test 8.9836+-0.0754 8.9121+-0.0819 DataView-custom-properties 125.1733+-0.8466 ? 125.8328+-0.7798 ? delay-tear-off-arguments-strictmode 3.6667+-0.0575 3.6482+-0.0223 destructuring-arguments-length 175.3200+-0.6886 ? 177.0569+-1.3527 ? destructuring-arguments 8.8796+-0.0470 ? 8.9049+-0.0861 ? destructuring-swap 8.6296+-0.0463 ? 8.6966+-0.1355 ? direct-arguments-getbyval 0.8716+-0.0048 ? 0.8723+-0.0052 ? double-get-by-val-out-of-bounds 7.4148+-0.0466 ? 7.4196+-0.0655 ? double-pollution-getbyval 11.0170+-0.0927 ? 11.1719+-0.0850 ? might be 1.0141x slower double-pollution-putbyoffset 6.0687+-0.0266 ? 6.1067+-0.0263 ? double-to-int32-typed-array-no-inline 2.5832+-0.0063 ? 2.5949+-0.0136 ? double-to-int32-typed-array 2.2185+-0.0141 ? 2.2202+-0.0118 ? double-to-uint32-typed-array-no-inline 2.7575+-0.0272 ? 2.7691+-0.0202 ? double-to-uint32-typed-array 2.4375+-0.0080 ? 2.4499+-0.0192 ? empty-string-plus-int 10.8779+-0.0505 ! 11.0598+-0.0820 ! definitely 1.0167x slower emscripten-cube2hash 55.1639+-0.2063 ? 55.5609+-0.3169 ? emscripten-memops 7067.7158+-40.1270 7054.3774+-1.6713 external-arguments-getbyval 2.1584+-0.0293 ? 2.1614+-0.0667 ? external-arguments-putbyval 3.1195+-0.0148 ^ 3.0388+-0.0155 ^ definitely 1.0266x faster fixed-typed-array-storage-var-index 1.4068+-0.0048 ? 1.4194+-0.0303 ? fixed-typed-array-storage 0.9937+-0.0027 ? 0.9950+-0.0039 ? Float32Array-matrix-mult 6.6158+-0.0746 6.6064+-0.0372 Float32Array-to-Float64Array-set 92.8417+-0.5009 ? 92.8499+-0.7066 ? Float64Array-alloc-long-lived 103.8309+-0.7400 103.5335+-0.4317 Float64Array-to-Int16Array-set 117.0383+-1.0706 116.9439+-0.9990 fold-double-to-int 20.5108+-0.1719 ? 20.7280+-0.1323 ? might be 1.0106x slower for-of-iterate-array-entries 8.5553+-0.0745 8.5119+-0.0720 for-of-iterate-array-keys 3.5052+-0.0378 3.4844+-0.0211 for-of-iterate-array-values 2.9680+-0.0553 ? 2.9943+-0.0426 ? function-dot-apply 3.1853+-0.0141 3.1780+-0.0064 function-test 4.9390+-0.0591 4.9139+-0.0500 get-by-id-chain-from-try-block 8.0311+-0.1162 8.0060+-0.1155 get-by-id-proto-or-self 25.9219+-0.2450 ? 25.9595+-0.2880 ? get-by-id-self-or-proto 23.4556+-0.5990 ? 23.9984+-0.6704 ? might be 1.0231x slower get-by-val-out-of-bounds 7.2438+-0.0433 7.2275+-0.0456 get_callee_monomorphic 5.1157+-0.1093 ^ 4.9187+-0.0256 ^ definitely 1.0401x faster get_callee_polymorphic 4.6983+-0.0236 4.6923+-0.0329 global-var-const-infer-fire-from-opt 1.0288+-0.0477 ? 1.0492+-0.0519 ? might be 1.0199x slower global-var-const-infer 0.8359+-0.0402 0.8113+-0.0050 might be 1.0303x faster HashMap-put-get-iterate-keys 42.0051+-0.1479 ? 42.1521+-0.1572 ? HashMap-put-get-iterate 53.6649+-0.1846 ? 53.7829+-0.1953 ? HashMap-string-put-get-iterate 50.9827+-0.3607 ? 51.6007+-0.5001 ? might be 1.0121x slower imul-double-only 17.8529+-0.1215 ? 18.2045+-0.9517 ? might be 1.0197x slower imul-int-only 15.0211+-0.0879 14.9696+-0.1210 imul-mixed 21.8166+-0.1315 ? 21.8642+-0.1843 ? in-four-cases 26.0067+-0.2498 25.9394+-0.1608 in-one-case-false 12.1194+-0.0948 12.0979+-0.0931 in-one-case-true 12.1290+-0.1634 ? 12.1457+-0.0757 ? in-two-cases 12.9115+-0.1157 ? 12.9285+-0.1036 ? indexed-properties-in-objects 4.2238+-0.0056 ? 4.2328+-0.0232 ? infer-closure-const-then-mov-no-inline 15.3684+-0.0197 ? 15.3769+-0.0934 ? infer-closure-const-then-mov 28.8427+-0.0864 ? 28.9592+-0.1262 ? infer-closure-const-then-put-to-scope-no-inline 17.8543+-0.1476 17.8237+-0.0921 infer-closure-const-then-put-to-scope 36.0917+-0.2513 35.9254+-0.1966 infer-closure-const-then-reenter-no-inline 84.9865+-1.0257 84.3299+-0.1584 infer-closure-const-then-reenter 36.1547+-0.2098 ? 36.2429+-0.2689 ? infer-one-time-closure-ten-vars 29.0678+-0.1476 29.0211+-0.0148 infer-one-time-closure-two-vars 28.8592+-0.1292 28.7132+-0.1253 infer-one-time-closure 28.7211+-0.1216 ? 28.8351+-0.0773 ? infer-one-time-deep-closure 58.6426+-0.1556 58.4432+-0.3502 inline-arguments-access 1.6627+-0.0062 ? 1.6627+-0.0049 ? inline-arguments-local-escape 22.9335+-0.1401 ! 23.5250+-0.3041 ! definitely 1.0258x slower inline-get-scoped-var 7.4548+-0.0825 ? 7.5004+-0.0814 ? inlined-put-by-id-transition 15.4018+-0.2310 ? 15.4232+-0.2780 ? int-or-other-abs-then-get-by-val 9.5015+-0.0227 ? 9.5634+-0.1117 ? int-or-other-abs-zero-then-get-by-val 37.3483+-0.2020 ? 38.0497+-0.5108 ? might be 1.0188x slower int-or-other-add-then-get-by-val 10.6094+-0.0832 10.5916+-0.0569 int-or-other-add 10.9514+-0.1343 ? 11.0938+-0.0842 ? might be 1.0130x slower int-or-other-div-then-get-by-val 6.3768+-0.0851 ? 6.3881+-0.0690 ? int-or-other-max-then-get-by-val 8.7601+-0.1788 8.7435+-0.1414 int-or-other-min-then-get-by-val 7.1698+-0.0827 7.0803+-0.0692 might be 1.0126x faster int-or-other-mod-then-get-by-val 6.2127+-0.0864 ? 6.2746+-0.0136 ? int-or-other-mul-then-get-by-val 6.6573+-0.0373 6.6326+-0.0786 int-or-other-neg-then-get-by-val 7.9915+-0.0392 7.9713+-0.0722 int-or-other-neg-zero-then-get-by-val 36.9260+-0.1437 ! 37.8607+-0.7512 ! definitely 1.0253x slower int-or-other-sub-then-get-by-val 10.6305+-0.0398 ? 10.6693+-0.2003 ? int-or-other-sub 8.9623+-0.0544 ? 8.9938+-0.0390 ? int-overflow-local 6.4748+-0.0641 6.4732+-0.0773 Int16Array-alloc-long-lived 67.5492+-0.4540 ? 67.7361+-0.6211 ? Int16Array-bubble-sort-with-byteLength 48.8819+-0.1475 ? 48.9307+-0.1462 ? Int16Array-bubble-sort 47.8947+-0.0645 ? 47.9234+-0.0936 ? Int16Array-load-int-mul 1.8128+-0.0045 ? 1.8195+-0.0175 ? Int16Array-to-Int32Array-set 91.7280+-0.7889 ^ 87.9221+-1.4166 ^ definitely 1.0433x faster Int32Array-alloc-huge-long-lived 704.0833+-3.3333 ? 713.4588+-21.0510 ? might be 1.0133x slower Int32Array-alloc-huge 811.9427+-7.7416 803.6376+-8.0320 might be 1.0103x faster Int32Array-alloc-large-long-lived 979.7629+-6.0312 975.5928+-8.2754 Int32Array-alloc-large 45.2171+-0.8324 44.7919+-0.5213 Int32Array-alloc-long-lived 80.7442+-0.4340 ? 80.8231+-0.7974 ? Int32Array-alloc 4.5234+-0.0119 4.5218+-0.0121 Int32Array-Int8Array-view-alloc 15.4690+-0.3497 15.0958+-0.0495 might be 1.0247x faster int52-spill 12.7851+-0.1900 ? 12.9037+-0.1719 ? Int8Array-alloc-long-lived 67.1097+-0.8682 ? 67.3375+-0.6994 ? Int8Array-load-with-byteLength 5.0181+-0.0709 ? 5.0362+-0.0589 ? Int8Array-load 5.0444+-0.0668 5.0434+-0.0508 integer-divide 15.0970+-0.1186 ? 15.1750+-0.1453 ? integer-modulo 2.0859+-0.0190 2.0845+-0.0168 large-int-captured 9.7548+-0.1338 9.6921+-0.1089 large-int-neg 26.1759+-0.1713 26.1356+-0.1965 large-int 23.1457+-0.1848 ? 23.2052+-0.1715 ? logical-not 10.7148+-0.1338 10.6830+-0.1673 lots-of-fields 12.5156+-0.0956 ? 12.6589+-0.1211 ? might be 1.0114x slower make-indexed-storage 4.3806+-0.0420 ? 4.3949+-0.0447 ? make-rope-cse 6.1124+-0.0799 ? 6.1400+-0.0649 ? marsaglia-larger-ints 111.9167+-0.1709 ? 112.1023+-0.4333 ? marsaglia-osr-entry 47.3563+-0.6066 46.9920+-0.1007 marsaglia 463.6394+-0.2430 ? 463.8329+-0.2006 ? method-on-number 29.8796+-0.4828 ? 29.8994+-0.4636 ? negative-zero-divide 0.4226+-0.0021 ? 0.4252+-0.0036 ? negative-zero-modulo 0.4097+-0.0046 0.4080+-0.0043 negative-zero-negate 0.3998+-0.0205 ? 0.4133+-0.0263 ? might be 1.0338x slower nested-function-parsing-random 380.6835+-0.2899 ! 383.8564+-0.3589 ! definitely 1.0083x slower nested-function-parsing 47.6788+-0.1183 ? 47.9179+-0.7056 ? new-array-buffer-dead 3.7972+-0.0690 3.7572+-0.0181 might be 1.0106x faster new-array-buffer-push 10.6629+-0.1391 10.6372+-0.1400 new-array-dead 28.5759+-0.3339 ? 28.6951+-0.3840 ? new-array-push 6.9562+-0.0577 6.9145+-0.0677 number-test 4.4043+-0.0174 4.3604+-0.0371 might be 1.0101x faster object-closure-call 13.4375+-0.0532 ? 13.4398+-0.1073 ? object-test 4.7080+-0.0508 ? 4.7455+-0.0221 ? poly-stricteq 86.9410+-0.2549 ? 87.2935+-0.3967 ? polymorphic-structure 20.5172+-0.1707 ? 21.1347+-0.9791 ? might be 1.0301x slower polyvariant-monomorphic-get-by-id 11.9836+-0.1123 ? 12.0062+-0.1128 ? proto-custom-getter 157.8107+-0.1160 ? 165.9059+-9.5398 ? might be 1.0513x slower proto-getter-access 495.4808+-4.2091 494.9871+-4.8678 put-by-id 19.5005+-0.2528 ? 19.5198+-0.4916 ? put-by-val-large-index-blank-indexing-type 21.0815+-0.4162 ? 21.5422+-0.3512 ? might be 1.0219x slower put-by-val-machine-int 3.3680+-0.0202 3.3527+-0.0193 rare-osr-exit-on-local 20.3211+-0.1272 20.2094+-0.1210 register-pressure-from-osr 31.3528+-0.0993 ? 31.3828+-0.1441 ? simple-activation-demo 35.2815+-0.1351 ? 35.3056+-0.1605 ? simple-custom-getter 511.2143+-19.2674 ? 520.6592+-26.5717 ? might be 1.0185x slower simple-getter-access 792.6900+-8.7511 786.8490+-6.0237 slow-array-profile-convergence 4.0471+-0.0669 ? 4.1446+-0.0513 ? might be 1.0241x slower slow-convergence 4.4767+-0.0331 ? 4.4969+-0.0264 ? sparse-conditional 1.5068+-0.0413 1.4661+-0.0062 might be 1.0277x faster splice-to-remove 76.8165+-0.1263 ? 77.1012+-0.3557 ? stepanov_container 10162.6873+-23.7691 ? 10180.1092+-19.0365 ? string-concat-object 3.2364+-0.0287 ? 3.2374+-0.0261 ? string-concat-pair-object 3.1706+-0.0299 3.1432+-0.0058 string-concat-pair-simple 17.1866+-0.2869 17.0189+-0.3047 string-concat-simple 17.2149+-0.2384 ? 17.2365+-0.3658 ? string-cons-repeat 10.8412+-0.0394 ? 10.8530+-0.0321 ? string-cons-tower 11.3246+-0.0441 11.3228+-0.0632 string-equality 42.9110+-0.5420 42.6292+-0.1542 string-get-by-val-big-char 12.6412+-0.0632 ! 13.0174+-0.0557 ! definitely 1.0298x slower string-get-by-val-out-of-bounds-insane 5.8866+-0.0794 5.8453+-0.1574 string-get-by-val-out-of-bounds 5.3389+-0.0110 5.3230+-0.0469 string-get-by-val 4.9054+-0.0367 ? 4.9126+-0.0778 ? string-hash 2.7725+-0.0019 ? 2.7839+-0.0147 ? string-long-ident-equality 39.0961+-0.0927 ? 39.3818+-0.4762 ? string-repeat-arith 50.1326+-0.3910 ? 50.5417+-0.6259 ? string-sub 105.3628+-0.6999 104.3914+-0.3518 string-test 4.3988+-0.0498 4.3961+-0.0332 string-var-equality 70.1587+-0.1299 ? 70.4944+-0.8586 ? structure-hoist-over-transitions 3.5343+-0.0211 3.5116+-0.0070 switch-char-constant 3.5568+-0.0728 3.5040+-0.0172 might be 1.0150x faster switch-char 8.1912+-0.0355 8.1130+-0.1173 switch-constant 9.3946+-0.1392 ? 9.4016+-0.1343 ? switch-string-basic-big-var 20.3680+-0.1033 ? 20.5570+-0.2663 ? switch-string-basic-big 22.8355+-1.5174 21.8446+-1.0064 might be 1.0454x faster switch-string-basic-var 20.3248+-0.0848 20.2953+-0.0998 switch-string-basic 21.6143+-0.9773 ? 21.6177+-0.8661 ? switch-string-big-length-tower-var 29.0566+-0.1346 ? 29.1474+-0.2786 ? switch-string-length-tower-var 21.9909+-0.1915 21.9248+-0.1063 switch-string-length-tower 16.6782+-0.1987 16.5977+-0.0899 switch-string-short 16.5967+-0.0494 16.5600+-0.1175 switch 13.6311+-0.1261 ? 13.6468+-0.1266 ? tear-off-arguments-simple 2.3520+-0.0028 ? 2.4196+-0.0970 ? might be 1.0287x slower tear-off-arguments 3.6708+-0.0343 3.6443+-0.0100 temporal-structure 17.1976+-0.0891 ? 17.2486+-0.0994 ? to-int32-boolean 21.5353+-0.1189 ? 21.5759+-0.1651 ? undefined-test 4.5906+-0.0425 4.5744+-0.0497 weird-inlining-const-prop 2.3747+-0.0109 ? 2.4052+-0.0478 ? might be 1.0128x slower <arithmetic> 134.5332+-0.2184 ? 134.6471+-0.2635 ? might be 1.0008x slower <geometric> * 14.9033+-0.0156 ? 14.9154+-0.0177 ? might be 1.0008x slower <harmonic> 5.3338+-0.0188 ? 5.3420+-0.0259 ? might be 1.0015x slower TipOfTree FixPhantomArgs All benchmarks: <arithmetic> 203.7188+-0.2000 ? 203.8235+-0.3410 ? might be 1.0005x slower <geometric> 20.6652+-0.0152 ? 20.6806+-0.0194 ? might be 1.0007x slower <harmonic> 4.8559+-0.0154 4.8557+-0.0176 might be 1.0000x faster TipOfTree FixPhantomArgs Geomean of preferred means: <scaled-result> 49.3734+-0.0462 ? 49.3823+-0.0520 ? might be 1.0002x slower Comment on attachment 219991 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=219991&action=review > Source/JavaScriptCore/ChangeLog:8 > + This change dramatically rationalizes our handling of PhantomArguments (i.e. "dramatically rationalizes" is an amazing phrase. Landed in http://trac.webkit.org/changeset/161072 |