WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
126218
DFG PhantomArguments shouldn't rely on a dead Phi graph
https://bugs.webkit.org/show_bug.cgi?id=126218
Summary
DFG PhantomArguments shouldn't rely on a dead Phi graph
Filip Pizlo
Reported
2013-12-24 11:29:28 PST
Instead, an arguments alias variable should be live and its GetLocal's should be Phantom'd appropriately. This has the chance of being a regression in CPS form because we'll issue stores of empty into the stack, and then maybe even issue loads of that empty value. But it will buy is a *lot* of sanity. In particular, this will have a very nice behavior in SSA: PhantomArguments will just have the DFG behavior of JSValue() and the bytecode (OSR exit) behavior of rematerializing the arguments object. The captured arguments variables will force the store of JSValue() while the uncaptured (i.e. aliased) ones will just cease to exist other than a MovHint of PhantomArguments.
Attachments
it begins
(4.57 KB, patch)
2013-12-24 11:59 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
it runs things?
(14.43 KB, patch)
2013-12-24 13:35 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
the patch
(21.74 KB, patch)
2013-12-25 10:08 PST
,
Filip Pizlo
oliver
: review+
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2013-12-24 11:59:36 PST
Created
attachment 219975
[details]
it begins
Filip Pizlo
Comment 2
2013-12-24 13:35:48 PST
Created
attachment 219982
[details]
it runs things?
Filip Pizlo
Comment 3
2013-12-25 10:08:22 PST
Created
attachment 219991
[details]
the patch
Filip Pizlo
Comment 4
2013-12-25 11:05:38 PST
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
Sam Weinig
Comment 5
2013-12-25 13:05:10 PST
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.
Filip Pizlo
Comment 6
2013-12-25 15:42:04 PST
Landed in
http://trac.webkit.org/changeset/161072
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