WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
153544
Should not predict OtherObj for ToThis with primitive types under strict mode
https://bugs.webkit.org/show_bug.cgi?id=153544
Summary
Should not predict OtherObj for ToThis with primitive types under strict mode
Yusuke Suzuki
Reported
2016-01-27 06:32:40 PST
Should not predict OtherObj for ToThis with primitive types under strict mode
Attachments
Patch
(15.86 KB, patch)
2016-01-30 16:37 PST
,
Yusuke Suzuki
fpizlo
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Yusuke Suzuki
Comment 1
2016-01-27 09:29:45 PST
This is found when implementing
https://bugs.webkit.org/show_bug.cgi?id=143889
, in that case, even under strict mode, ToThis(StringIdent) DFG node predicts its result type as OtherObj. (And frequent BadType OSRExit occurs)
Yusuke Suzuki
Comment 2
2016-01-30 16:37:06 PST
Created
attachment 270327
[details]
Patch
Filip Pizlo
Comment 3
2016-01-30 16:44:58 PST
What is the performance impact? It would be good to see a detailed report.
Filip Pizlo
Comment 4
2016-01-30 16:46:00 PST
Comment on
attachment 270327
[details]
Patch This looks sensible. We should do detailed perf tests before landing.
Yusuke Suzuki
Comment 5
2016-01-30 17:18:26 PST
Comment on
attachment 270327
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=270327&action=review
Thanks! I'll take the performance!
> Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:1602 > + if (enableInt52() && node->child1()->shouldSpeculateMachineInt()) { > + fixEdge<Int52RepUse>(node->child1()); > + node->convertToIdentity(); > + node->setResult(NodeResultInt52); > + return; > + } > + > + if (node->child1()->shouldSpeculateNumber()) { > + fixEdge<DoubleRepUse>(node->child1()); > + node->convertToIdentity(); > + node->setResult(NodeResultDouble); > + return; > + }
I'm not confident on this part. Identity requires that canonicalResultRepresentation(node) == canonicalResultRepresentation(node->child1()) because it just an alias node to the child1. So, what is the best way to handle this here? Looking node->child1()->result() and setting it to node is the way to do that? Or just doing the above is OK?
Yusuke Suzuki
Comment 6
2016-01-30 17:22:27 PST
Comment on
attachment 270327
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=270327&action=review
>> Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:1602 >> + } > > I'm not confident on this part. Identity requires that canonicalResultRepresentation(node) == canonicalResultRepresentation(node->child1()) because it just an alias node to the child1. > So, what is the best way to handle this here? Looking node->child1()->result() and setting it to node is the way to do that? Or just doing the above is OK?
Maybe I think we need to transfer NodeResult types since prediction == SpecInt52, result == NodeResultJS case should exist, right?
Filip Pizlo
Comment 7
2016-01-30 17:22:29 PST
Comment on
attachment 270327
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=270327&action=review
>> Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:1602 >> + } > > I'm not confident on this part. Identity requires that canonicalResultRepresentation(node) == canonicalResultRepresentation(node->child1()) because it just an alias node to the child1. > So, what is the best way to handle this here? Looking node->child1()->result() and setting it to node is the way to do that? Or just doing the above is OK?
This should be OK because the last part of FixupPhase is conversion fix-up. It will see this and insert a DoubleRep node to convert node->child1() into a double.
Filip Pizlo
Comment 8
2016-01-30 17:23:26 PST
Comment on
attachment 270327
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=270327&action=review
>>>> Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:1602 >>>> + } >>> >>> I'm not confident on this part. Identity requires that canonicalResultRepresentation(node) == canonicalResultRepresentation(node->child1()) because it just an alias node to the child1. >>> So, what is the best way to handle this here? Looking node->child1()->result() and setting it to node is the way to do that? Or just doing the above is OK? >> >> Maybe I think we need to transfer NodeResult types since prediction == SpecInt52, result == NodeResultJS case should exist, right? > > This should be OK because the last part of FixupPhase is conversion fix-up. It will see this and insert a DoubleRep node to convert node->child1() into a double.
In the MachineInt case, it will already insert a Int52Rep node to perform the conversion.
Yusuke Suzuki
Comment 9
2016-01-30 17:24:01 PST
Comment on
attachment 270327
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=270327&action=review
>>>> Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:1602 >>>> + } >>> >>> I'm not confident on this part. Identity requires that canonicalResultRepresentation(node) == canonicalResultRepresentation(node->child1()) because it just an alias node to the child1. >>> So, what is the best way to handle this here? Looking node->child1()->result() and setting it to node is the way to do that? Or just doing the above is OK? >> >> Maybe I think we need to transfer NodeResult types since prediction == SpecInt52, result == NodeResultJS case should exist, right? > > This should be OK because the last part of FixupPhase is conversion fix-up. It will see this and insert a DoubleRep node to convert node->child1() into a double.
Oh! Great, I've got it. Thanks so much for your pointing :D
Yusuke Suzuki
Comment 10
2016-01-30 18:54:05 PST
Result is the following. Result looks not so bad. Interesting result is the following. string-fasta 532.9790+-8.8987 ^ 443.1105+-26.7987 ^ definitely 1.2028x faster Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, and JSRegress on yusuke (MacBookPro8,2). VMs tested: "Baseline" at /Users/yusuke/dev/WebKit/WebKitBuild/master-for-to-this/Release/jsc "Mine" at /Users/yusuke/dev/WebKit/WebKitBuild/to-this/Release/jsc Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. Baseline Mine SunSpider: 3d-cube 6.8388+-0.2020 ? 6.8658+-0.2305 ? 3d-morph 6.3539+-0.1499 ? 6.4283+-0.1092 ? might be 1.0117x slower 3d-raytrace 7.8746+-0.3095 7.7234+-0.3293 might be 1.0196x faster access-binary-trees 2.9196+-0.8561 ? 3.0106+-1.0100 ? might be 1.0312x slower access-fannkuch 7.4094+-0.4459 7.2355+-0.3741 might be 1.0240x faster access-nbody 3.4037+-0.0189 ? 3.4475+-0.1829 ? might be 1.0129x slower access-nsieve 3.8041+-0.8647 3.5676+-0.1024 might be 1.0663x faster bitops-3bit-bits-in-byte 1.6743+-0.2596 ? 1.6902+-0.2946 ? bitops-bits-in-byte 3.8563+-0.1178 ? 4.3156+-1.3097 ? might be 1.1191x slower bitops-bitwise-and 2.5339+-0.1882 ? 2.8043+-0.4439 ? might be 1.1067x slower bitops-nsieve-bits 4.0405+-1.1136 ? 4.0866+-1.2173 ? might be 1.0114x slower controlflow-recursive 2.9171+-0.0481 2.8798+-0.0449 might be 1.0129x faster crypto-aes 5.6260+-1.1224 5.5887+-1.2017 crypto-md5 3.3235+-0.0312 3.3100+-0.0490 crypto-sha1 3.1762+-0.2238 3.1094+-0.1506 might be 1.0215x faster date-format-tofte 10.3273+-0.2686 ? 11.7130+-1.9988 ? might be 1.1342x slower date-format-xparb 6.4587+-1.3093 6.1612+-0.1655 might be 1.0483x faster math-cordic 3.7736+-0.3412 3.6602+-0.0483 might be 1.0310x faster math-partial-sums 6.2522+-0.0647 ? 6.2560+-0.1810 ? math-spectral-norm 2.8151+-0.0705 ? 2.8848+-0.2949 ? might be 1.0248x slower regexp-dna 7.6108+-0.0829 ? 7.9500+-1.3633 ? might be 1.0446x slower string-base64 5.5179+-0.1008 ? 6.6177+-2.9868 ? might be 1.1993x slower string-fasta 7.8203+-0.1965 ^ 7.2189+-0.2588 ^ definitely 1.0833x faster string-tagcloud 11.3948+-2.2276 10.7035+-1.4312 might be 1.0646x faster string-unpack-code 21.8558+-0.6278 ? 21.9362+-0.2834 ? string-validate-input 5.5400+-0.2279 5.3936+-0.1118 might be 1.0271x faster <arithmetic> 5.9661+-0.1647 ? 6.0215+-0.1935 ? might be 1.0093x slower Baseline Mine LongSpider: 3d-cube 988.1898+-26.0637 976.0106+-35.9054 might be 1.0125x faster 3d-morph 706.9565+-10.5345 ? 709.4516+-10.2146 ? 3d-raytrace 798.2307+-2.5329 ? 801.4364+-11.4800 ? access-binary-trees 1130.5771+-27.0389 ? 1141.3080+-13.4669 ? access-fannkuch 364.5560+-53.9827 350.1062+-57.4193 might be 1.0413x faster access-nbody 778.1685+-11.2663 753.1172+-55.4978 might be 1.0333x faster access-nsieve 513.6930+-5.6347 ? 530.6740+-30.5231 ? might be 1.0331x slower bitops-3bit-bits-in-byte 39.7734+-0.3323 39.6630+-0.4639 bitops-bits-in-byte 129.2963+-10.3004 ? 131.0593+-8.5711 ? might be 1.0136x slower bitops-nsieve-bits 437.4865+-6.7785 ? 440.1103+-5.7066 ? controlflow-recursive 541.0652+-5.1718 ? 550.2098+-25.3788 ? might be 1.0169x slower crypto-aes 870.6147+-17.3557 ? 883.8890+-26.1841 ? might be 1.0152x slower crypto-md5 787.7313+-17.2980 774.8337+-7.0612 might be 1.0166x faster crypto-sha1 922.9603+-21.9982 918.1735+-35.4824 date-format-tofte 891.6646+-12.8235 ! 927.7588+-19.6508 ! definitely 1.0405x slower date-format-xparb 870.6762+-72.0739 ? 879.9855+-44.6304 ? might be 1.0107x slower hash-map 201.1562+-5.0322 200.7615+-5.3319 math-cordic 604.0203+-53.6081 584.9930+-8.1026 might be 1.0325x faster math-partial-sums 599.5690+-1.5359 ? 601.3077+-10.1026 ? math-spectral-norm 909.3830+-12.7690 ? 912.0120+-15.4944 ? string-base64 513.4621+-28.1601 508.7567+-5.9941 string-fasta 532.9790+-8.8987 ^ 443.1105+-26.7987 ^ definitely 1.2028x faster string-tagcloud 216.3085+-4.5502 ^ 208.9126+-2.5991 ^ definitely 1.0354x faster <geometric> 512.8830+-6.9203 508.0797+-4.8989 might be 1.0095x faster Baseline Mine V8Spider: crypto 49.5096+-0.1318 ? 50.5564+-3.3336 ? might be 1.0211x slower deltablue 63.7818+-3.2704 ? 64.5628+-3.7463 ? might be 1.0122x slower earley-boyer 50.3643+-0.3734 50.3442+-1.3069 raytrace 33.7848+-2.6372 32.9717+-0.2099 might be 1.0247x faster regexp 81.9688+-5.8931 80.5159+-0.7365 might be 1.0180x faster richards 51.7880+-0.8524 ? 56.3846+-4.6152 ? might be 1.0888x slower splay 45.9706+-2.9395 45.9433+-2.9223 <geometric> 52.1275+-0.4657 ? 52.6932+-1.5753 ? might be 1.0109x slower Baseline Mine Octane: encrypt 0.22116+-0.00826 0.22095+-0.00890 decrypt 3.85020+-0.07744 ? 3.87119+-0.11700 ? deltablue x2 0.19358+-0.01481 0.19130+-0.01829 might be 1.0119x faster earley 0.41245+-0.01678 ? 0.41448+-0.00811 ? boyer 6.28153+-0.12866 6.17070+-0.08765 might be 1.0180x faster navier-stokes x2 5.31805+-0.02438 ? 5.33414+-0.09184 ? raytrace x2 1.30101+-0.01972 1.29602+-0.04470 richards x2 0.10712+-0.00121 ? 0.10790+-0.00351 ? splay x2 0.45931+-0.00823 ? 0.46245+-0.00770 ? regexp x2 32.62361+-0.70076 32.05047+-0.66892 might be 1.0179x faster pdfjs x2 48.31987+-0.79489 ? 48.65049+-1.20758 ? mandreel x2 55.14015+-1.16230 54.38888+-0.28091 might be 1.0138x faster gbemu x2 34.21716+-0.51567 34.21298+-0.57379 closure 0.73493+-0.01902 ? 0.73908+-0.00968 ? jquery 9.57622+-0.19237 9.52913+-0.06055 box2d x2 12.27128+-0.20301 12.15191+-0.12725 zlib x2 452.26192+-6.26119 452.20036+-1.88530 typescript x2 888.42780+-9.23000 884.01660+-9.01757 <geometric> 6.89714+-0.06617 6.87752+-0.06423 might be 1.0029x faster Baseline Mine Kraken: ai-astar 110.429+-2.033 ? 114.811+-9.544 ? might be 1.0397x slower audio-beat-detection 64.745+-0.686 ? 65.751+-6.172 ? might be 1.0155x slower audio-dft 110.252+-3.877 ? 110.887+-6.269 ? audio-fft 50.033+-4.642 ? 50.099+-4.139 ? audio-oscillator 68.635+-4.911 ? 68.693+-4.654 ? imaging-darkroom 74.385+-5.096 74.314+-5.173 imaging-desaturate 64.632+-0.429 ? 64.785+-0.970 ? imaging-gaussian-blur 102.515+-5.065 ? 103.385+-7.620 ? json-parse-financial 49.084+-0.479 ? 50.866+-4.657 ? might be 1.0363x slower json-stringify-tinderbox 28.495+-0.441 28.384+-0.315 stanford-crypto-aes 49.723+-4.850 48.464+-1.224 might be 1.0260x faster stanford-crypto-ccm 48.608+-4.243 48.605+-4.624 stanford-crypto-pbkdf2 123.113+-6.265 ? 125.059+-6.179 ? might be 1.0158x slower stanford-crypto-sha256-iterative 47.237+-0.492 ? 49.022+-4.814 ? might be 1.0378x slower <arithmetic> 70.849+-0.936 ? 71.652+-1.229 ? might be 1.0113x slower Baseline Mine JSRegress: abc-forward-loop-equal 46.1651+-3.3739 45.0609+-0.6837 might be 1.0245x faster abc-postfix-backward-loop 59.8900+-4.9873 58.3672+-0.5227 might be 1.0261x faster abc-simple-backward-loop 45.6028+-3.8654 ? 45.7128+-3.8959 ? abc-simple-forward-loop 45.8312+-3.7861 45.8207+-4.2541 abc-skippy-loop 32.3862+-3.6200 30.5857+-0.1364 might be 1.0589x faster abs-boolean 3.3278+-0.1469 ? 3.3593+-0.1186 ? adapt-to-double-divide 15.7523+-1.9522 15.2807+-0.3748 might be 1.0309x faster aliased-arguments-getbyval 1.3865+-0.0287 1.3770+-0.0137 allocate-big-object 2.9018+-0.1176 ? 3.0454+-0.8221 ? might be 1.0495x slower arguments-named-and-reflective 9.5267+-0.1593 ? 10.9730+-3.4939 ? might be 1.1518x slower arguments-out-of-bounds 10.7278+-0.2658 ? 12.3985+-4.3112 ? might be 1.1557x slower arguments-strict-mode 8.8571+-0.1804 ? 9.3559+-1.1596 ? might be 1.0563x slower arguments 8.4475+-0.3709 8.2367+-0.1264 might be 1.0256x faster arity-mismatch-inlining 1.2152+-0.3500 1.1855+-0.2429 might be 1.0250x faster array-access-polymorphic-structure 9.1157+-0.1570 ? 10.3255+-4.3078 ? might be 1.1327x slower array-nonarray-polymorhpic-access 29.1953+-0.9799 ? 30.3574+-2.8276 ? might be 1.0398x slower array-prototype-every 88.1013+-0.5634 ^ 85.2040+-0.9376 ^ definitely 1.0340x faster array-prototype-forEach 87.4919+-2.9242 ? 87.9346+-2.8477 ? array-prototype-map 98.9097+-3.6971 91.8150+-5.0288 might be 1.0773x faster array-prototype-reduce 87.6442+-4.9214 ? 89.2727+-6.9987 ? might be 1.0186x slower array-prototype-reduceRight 103.8035+-4.8637 ? 105.7334+-3.3303 ? might be 1.0186x slower array-prototype-some 87.7402+-0.6509 ? 90.7748+-11.7664 ? might be 1.0346x slower array-splice-contiguous 28.1000+-0.6010 ? 28.2710+-0.2916 ? array-with-double-add 5.1816+-1.4970 5.0557+-1.4886 might be 1.0249x faster array-with-double-increment 4.4128+-1.8163 4.3653+-1.3570 might be 1.0109x faster array-with-double-mul-add 6.3787+-1.4916 5.8991+-1.4557 might be 1.0813x faster array-with-double-sum 4.2357+-1.8537 4.1400+-1.5085 might be 1.0231x faster array-with-int32-add-sub 8.4885+-0.6723 7.9946+-0.1956 might be 1.0618x faster array-with-int32-or-double-sum 3.7485+-0.2477 3.7109+-0.1913 might be 1.0101x faster ArrayBuffer-DataView-alloc-large-long-lived 38.6818+-1.0953 ? 44.7883+-9.3367 ? might be 1.1579x slower ArrayBuffer-DataView-alloc-long-lived 16.2362+-0.4893 ? 17.4698+-2.8687 ? might be 1.0760x slower ArrayBuffer-Int32Array-byteOffset 4.4567+-0.1506 ? 4.6092+-0.2619 ? might be 1.0342x slower ArrayBuffer-Int8Array-alloc-large-long-lived 37.4602+-1.4383 ? 38.2050+-3.6939 ? might be 1.0199x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 24.5803+-1.0530 ? 26.4618+-4.5511 ? might be 1.0765x slower ArrayBuffer-Int8Array-alloc-long-lived 14.3605+-0.4475 ? 14.7531+-0.7330 ? might be 1.0273x slower ArrayBuffer-Int8Array-alloc 12.0576+-0.2794 ? 13.8566+-4.9631 ? might be 1.1492x slower arrowfunction-call 12.1545+-0.2426 ? 13.7935+-3.0901 ? might be 1.1349x slower asmjs_bool_bug 8.8403+-0.2244 ? 8.9186+-0.3785 ? assign-custom-setter-polymorphic 3.2007+-0.0335 ? 3.2182+-0.1256 ? assign-custom-setter 4.7502+-0.0902 ? 4.7749+-0.1757 ? basic-set 11.0048+-2.3512 9.3782+-0.3818 might be 1.1734x faster big-int-mul 4.0527+-0.1557 ? 4.0640+-0.1701 ? boolean-test 4.5742+-1.4919 3.9860+-0.0789 might be 1.1476x faster branch-fold 4.6299+-0.6500 4.3855+-0.1280 might be 1.0557x faster branch-on-string-as-boolean 16.8831+-0.1922 ? 17.0259+-0.1393 ? by-val-generic 5.5139+-0.1637 5.3060+-0.2190 might be 1.0392x faster call-spread-apply 32.5884+-3.0871 32.0340+-4.6919 might be 1.0173x faster call-spread-call 24.4427+-0.1446 ? 26.4528+-3.3693 ? might be 1.0822x slower captured-assignments 0.7960+-0.2982 ? 0.8557+-0.8314 ? might be 1.0750x slower cast-int-to-double 5.8567+-0.0751 ? 6.5308+-1.7826 ? might be 1.1151x slower cell-argument 4.9905+-1.5821 4.5148+-0.0903 might be 1.1054x faster cfg-simplify 3.4468+-0.3226 3.3914+-0.1137 might be 1.0163x faster chain-getter-access 12.4240+-0.1133 ? 14.3965+-3.7543 ? might be 1.1588x slower cmpeq-obj-to-obj-other 10.7814+-0.0854 ? 13.8245+-4.2099 ? might be 1.2823x slower constant-test 5.5397+-1.0272 5.3552+-0.6600 might be 1.0345x faster create-lots-of-functions 10.2815+-1.7671 ? 10.8793+-2.1718 ? might be 1.0581x slower cse-new-array-buffer 3.3260+-0.9877 2.8995+-0.1901 might be 1.1471x faster cse-new-array 3.1662+-0.2950 3.0685+-0.1875 might be 1.0318x faster custom-setter-getter-as-put-get-by-id 0.8149+-0.3110 ? 0.8185+-0.3405 ? DataView-custom-properties 49.6578+-3.0656 45.8035+-3.0211 might be 1.0841x faster delay-tear-off-arguments-strictmode 15.8316+-0.5717 ? 16.7841+-3.4407 ? might be 1.0602x slower deltablue-varargs 221.5305+-5.2778 ? 226.4680+-5.5356 ? might be 1.0223x slower destructuring-arguments 208.5494+-21.6456 207.3817+-14.6011 destructuring-parameters-overridden-by-function 0.7919+-0.3012 0.6904+-0.2605 might be 1.1470x faster destructuring-swap 5.4163+-0.1037 5.3585+-0.0158 might be 1.0108x faster direct-arguments-getbyval 1.4514+-0.1514 ? 1.6965+-0.6056 ? might be 1.1689x slower div-boolean-double 5.1420+-0.1810 ? 5.1479+-0.3085 ? div-boolean 7.8936+-0.1296 7.8007+-0.0404 might be 1.0119x faster double-get-by-val-out-of-bounds 5.3330+-0.2900 ? 5.7855+-1.3548 ? might be 1.0849x slower double-pollution-getbyval 8.9156+-0.1545 ? 8.9324+-0.2776 ? double-pollution-putbyoffset 4.3958+-0.0932 ? 4.4062+-0.0195 ? double-real-use 31.1784+-0.3230 ? 32.1596+-3.7970 ? might be 1.0315x slower double-to-int32-typed-array-no-inline 2.6868+-0.0246 ? 2.8895+-0.6857 ? might be 1.0755x slower double-to-int32-typed-array 2.6298+-0.3018 2.5336+-0.0248 might be 1.0380x faster double-to-uint32-typed-array-no-inline 2.7438+-0.0227 ? 2.8412+-0.2624 ? might be 1.0355x slower double-to-uint32-typed-array 2.9548+-1.3933 2.6699+-0.2933 might be 1.1067x faster elidable-new-object-dag 46.3948+-6.8081 46.1916+-6.2773 elidable-new-object-roflcopter 50.2988+-5.7401 50.1989+-2.9945 elidable-new-object-then-call 39.4120+-4.1388 ? 40.6298+-3.5316 ? might be 1.0309x slower elidable-new-object-tree 51.6711+-1.1488 ? 52.4647+-0.8698 ? might be 1.0154x slower empty-string-plus-int 6.1923+-0.1050 ? 6.2415+-0.1601 ? emscripten-cube2hash 41.5179+-0.9265 40.9946+-0.4253 might be 1.0128x faster exit-length-on-plain-object 21.9051+-3.8422 21.3364+-4.6929 might be 1.0267x faster external-arguments-getbyval 1.5055+-0.1898 ? 1.5887+-0.1408 ? might be 1.0553x slower external-arguments-putbyval 2.8115+-0.1081 ? 2.8284+-0.0684 ? fixed-typed-array-storage-var-index 1.6165+-0.1993 1.5394+-0.0154 might be 1.0501x faster fixed-typed-array-storage 1.2570+-0.2799 ? 1.3673+-0.5234 ? might be 1.0878x slower Float32Array-matrix-mult 5.3273+-0.1776 5.2071+-0.0256 might be 1.0231x faster Float32Array-to-Float64Array-set 59.1118+-4.7975 ? 62.4603+-0.3046 ? might be 1.0566x slower Float64Array-alloc-long-lived 88.0073+-7.4488 86.5102+-3.9882 might be 1.0173x faster Float64Array-to-Int16Array-set 71.2655+-1.7263 70.8859+-0.5933 fold-double-to-int 16.6020+-0.3375 ? 18.5142+-5.2461 ? might be 1.1152x slower fold-get-by-id-to-multi-get-by-offset-rare-int 10.4069+-0.6961 ? 11.0452+-1.6412 ? might be 1.0613x slower fold-get-by-id-to-multi-get-by-offset 8.8661+-0.3990 ? 9.0004+-0.2102 ? might be 1.0151x slower fold-multi-get-by-offset-to-get-by-offset 6.8760+-0.0407 ? 8.6407+-3.1645 ? might be 1.2566x slower fold-multi-get-by-offset-to-poly-get-by-offset 9.1189+-3.2368 8.1530+-2.8804 might be 1.1185x faster fold-multi-put-by-offset-to-poly-put-by-offset 10.1741+-2.2840 ? 10.7327+-3.4347 ? might be 1.0549x slower fold-multi-put-by-offset-to-put-by-offset 8.3908+-2.2128 ? 8.4092+-2.2050 ? fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 12.8370+-0.5198 ? 13.5784+-2.4184 ? might be 1.0578x slower fold-put-by-id-to-multi-put-by-offset 10.2604+-0.3381 ? 10.8140+-1.7448 ? might be 1.0539x slower fold-put-by-val-with-string-to-multi-put-by-offset 11.0826+-0.9469 10.7903+-0.3514 might be 1.0271x faster fold-put-by-val-with-symbol-to-multi-put-by-offset 10.7443+-0.5822 10.6407+-0.2300 fold-put-structure 6.6414+-0.7204 6.5153+-0.4410 might be 1.0194x faster for-of-iterate-array-entries 12.3881+-0.0860 ? 12.8290+-1.1048 ? might be 1.0356x slower for-of-iterate-array-keys 4.4352+-0.4127 4.3264+-0.1095 might be 1.0252x faster for-of-iterate-array-values 4.2401+-0.1189 ? 4.8185+-1.5160 ? might be 1.1364x slower fround 13.1311+-0.2652 ? 14.5497+-4.5034 ? might be 1.1080x slower ftl-library-inlining-dataview 73.9306+-4.7832 ? 86.6100+-34.8283 ? might be 1.1715x slower ftl-library-inlining 28.3233+-0.3026 ? 28.3365+-0.2100 ? ftl-polymorphic-bitand 156.3112+-5.1481 151.9550+-2.1918 might be 1.0287x faster ftl-polymorphic-bitor 153.7802+-0.2427 ? 157.0833+-16.0217 ? might be 1.0215x slower ftl-polymorphic-bitxor 153.6791+-1.1191 ? 154.5665+-10.5545 ? ftl-polymorphic-div 483.5452+-5.0148 482.3288+-7.2633 ftl-polymorphic-lshift 162.9845+-4.4508 159.9066+-3.8164 might be 1.0192x faster ftl-polymorphic-mul 243.2489+-4.8224 ? 243.2552+-7.2128 ? ftl-polymorphic-rshift 162.7777+-3.1946 159.7105+-2.4094 might be 1.0192x faster ftl-polymorphic-StringFromCharCode 231.1320+-4.8460 230.6172+-2.2563 ftl-polymorphic-sub 185.3167+-1.3070 184.3026+-0.7561 ftl-polymorphic-urshift 179.5978+-4.0237 ? 181.4268+-8.0723 ? might be 1.0102x slower function-call 13.6907+-3.7189 ? 15.0410+-4.6529 ? might be 1.0986x slower function-dot-apply 2.7674+-0.1592 2.7255+-0.0832 might be 1.0154x faster function-test 3.9076+-0.1847 ? 3.9078+-0.1078 ? function-with-eval 125.0468+-3.8522 120.8160+-9.8030 might be 1.0350x faster gcse-poly-get-less-obvious 19.8920+-0.3712 ? 20.2592+-1.0424 ? might be 1.0185x slower gcse-poly-get 20.5544+-0.3366 ? 22.3874+-5.3696 ? might be 1.0892x slower gcse 4.9607+-1.3318 ? 4.9731+-1.2726 ? generator-create 1.0319+-0.2168 ? 1.1572+-0.3963 ? might be 1.1214x slower generator-fib 132.3182+-3.4792 128.0569+-4.8986 might be 1.0333x faster generator-function-create 5.3197+-1.8464 ? 5.5192+-0.9349 ? might be 1.0375x slower generator-sunspider-access-nsieve 7.0984+-0.1001 7.0760+-0.1834 generator-with-several-types 432.4028+-16.7524 429.0331+-11.1702 get-by-id-bimorphic-check-structure-elimination-simple 3.0207+-0.0907 ? 3.4750+-1.5471 ? might be 1.1504x slower get-by-id-bimorphic-check-structure-elimination 5.9897+-0.0274 ? 6.5924+-1.6180 ? might be 1.1006x slower get-by-id-chain-from-try-block 2.9133+-0.2904 ? 3.1160+-0.7717 ? might be 1.0696x slower get-by-id-check-structure-elimination 5.3560+-1.3635 4.9410+-0.2073 might be 1.0840x faster get-by-id-proto-or-self 15.0875+-4.7729 13.5242+-0.5476 might be 1.1156x faster get-by-id-quadmorphic-check-structure-elimination-simple 3.3096+-0.1241 ? 3.4034+-0.4244 ? might be 1.0284x slower get-by-id-self-or-proto 14.8101+-2.2734 14.3361+-0.7091 might be 1.0331x faster get-by-val-out-of-bounds 5.4796+-1.3247 5.1347+-0.0892 might be 1.0672x faster get-by-val-with-string-bimorphic-check-structure-elimination-simple 3.5957+-0.1497 ? 4.0560+-1.3297 ? might be 1.1280x slower get-by-val-with-string-bimorphic-check-structure-elimination 7.7115+-0.1585 ? 8.0984+-0.3159 ? might be 1.0502x slower get-by-val-with-string-chain-from-try-block 2.8752+-0.0840 ? 2.8772+-0.0861 ? get-by-val-with-string-check-structure-elimination 7.6452+-1.4534 6.7739+-0.0765 might be 1.1286x faster get-by-val-with-string-proto-or-self 14.4621+-0.4466 ? 15.0972+-2.7848 ? might be 1.0439x slower get-by-val-with-string-quadmorphic-check-structure-elimination-simple 4.1245+-0.2645 3.9735+-0.3185 might be 1.0380x faster get-by-val-with-string-self-or-proto 16.3563+-1.6604 ? 16.7083+-3.6831 ? might be 1.0215x slower get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 3.8293+-0.0381 3.8093+-0.0215 get-by-val-with-symbol-bimorphic-check-structure-elimination 14.4648+-0.6509 ? 15.1508+-2.2941 ? might be 1.0474x slower get-by-val-with-symbol-chain-from-try-block 3.0056+-0.3838 2.8813+-0.1030 might be 1.0432x faster get-by-val-with-symbol-check-structure-elimination 14.1335+-1.1465 13.6451+-0.2931 might be 1.0358x faster get-by-val-with-symbol-proto-or-self 14.6721+-1.0741 ? 15.0543+-1.2999 ? might be 1.0260x slower get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 4.7496+-0.0624 ? 4.7584+-0.1593 ? get-by-val-with-symbol-self-or-proto 15.4861+-1.6919 ? 16.1745+-3.5770 ? might be 1.0444x slower get_callee_monomorphic 2.9810+-0.1291 ? 3.0275+-0.0908 ? might be 1.0156x slower get_callee_polymorphic 4.0681+-0.1447 ? 4.3637+-1.0749 ? might be 1.0727x slower getter-no-activation 4.4637+-0.0453 ? 4.5422+-0.1833 ? might be 1.0176x slower getter-prototype 8.1490+-0.5727 ? 8.8707+-2.9118 ? might be 1.0886x slower getter-richards-try-catch 1164.6748+-21.7167 ? 1212.6561+-57.3471 ? might be 1.0412x slower getter-richards 88.8886+-6.9736 86.2110+-3.1479 might be 1.0311x faster getter 5.1589+-0.2123 ? 5.4144+-0.4250 ? might be 1.0495x slower global-object-access-with-mutating-structure 5.7413+-0.1285 5.7195+-0.3035 global-var-const-infer-fire-from-opt 1.1769+-0.6304 0.9471+-0.0671 might be 1.2426x faster global-var-const-infer 0.9419+-0.3830 ? 1.0321+-0.3634 ? might be 1.0958x slower hard-overflow-check-equal 36.1635+-0.1364 ? 36.4109+-0.2835 ? hard-overflow-check 36.4514+-1.2256 ? 37.4879+-4.6632 ? might be 1.0284x slower HashMap-put-get-iterate-keys 28.1237+-0.1211 ? 28.1982+-0.5132 ? HashMap-put-get-iterate 29.6027+-4.5335 28.9892+-2.8022 might be 1.0212x faster HashMap-string-put-get-iterate 31.2901+-0.6733 31.1957+-0.3004 hoist-make-rope 5.4417+-0.3225 5.3862+-0.2088 might be 1.0103x faster hoist-poly-check-structure-effectful-loop 4.9212+-1.0276 4.8033+-0.8354 might be 1.0245x faster hoist-poly-check-structure 3.1372+-0.1193 3.0811+-0.0678 might be 1.0182x faster imul-double-only 4.1161+-0.4524 ? 4.3577+-1.2471 ? might be 1.0587x slower imul-int-only 6.0278+-0.1157 5.9752+-0.0554 imul-mixed 4.4622+-0.4638 ? 4.5051+-0.5053 ? in-four-cases 19.4003+-0.3947 ? 19.6183+-0.9089 ? might be 1.0112x slower in-one-case-false 11.0588+-0.1841 ? 12.3152+-3.6290 ? might be 1.1136x slower in-one-case-true 11.6660+-1.7876 11.0403+-0.3978 might be 1.0567x faster in-two-cases 11.2403+-0.5844 ? 11.3948+-1.0468 ? might be 1.0137x slower indexed-properties-in-objects 3.3480+-0.2576 ? 3.9105+-1.7566 ? might be 1.1680x slower infer-closure-const-then-mov-no-inline 3.7755+-1.0363 ? 3.8710+-1.3839 ? might be 1.0253x slower infer-closure-const-then-mov 10.9255+-1.4092 10.3409+-0.1813 might be 1.0565x faster infer-closure-const-then-put-to-scope-no-inline 14.4137+-4.0044 ? 14.4311+-3.5778 ? infer-closure-const-then-put-to-scope 24.1342+-0.3624 ? 24.1663+-0.3694 ? infer-closure-const-then-reenter-no-inline 66.1669+-1.4240 ? 66.9810+-4.6599 ? might be 1.0123x slower infer-closure-const-then-reenter 24.4434+-0.3047 ? 25.5297+-4.1058 ? might be 1.0444x slower infer-constant-global-property 4.4652+-1.4413 3.9130+-0.3433 might be 1.1411x faster infer-constant-property 3.2239+-0.3660 3.2112+-0.2941 infer-one-time-closure-ten-vars 8.2723+-0.3534 8.2168+-0.5569 infer-one-time-closure-two-vars 8.0271+-1.1544 ? 9.2097+-4.5738 ? might be 1.1473x slower infer-one-time-closure 7.5496+-0.1920 ? 7.6200+-0.1392 ? infer-one-time-deep-closure 15.7490+-5.9301 13.8420+-0.3179 might be 1.1378x faster inline-arguments-access 4.7004+-0.0755 4.6858+-0.0827 inline-arguments-aliased-access 4.7245+-0.0438 4.6763+-0.0682 might be 1.0103x faster inline-arguments-local-escape 4.7028+-0.0618 ? 4.9263+-0.5514 ? might be 1.0475x slower inline-get-scoped-var 4.0543+-0.5190 ? 4.0809+-0.1973 ? inlined-put-by-id-transition 12.8069+-0.4650 ? 13.0810+-1.0695 ? might be 1.0214x slower inlined-put-by-val-with-string-transition 58.1575+-3.1184 ? 58.2598+-1.8814 ? inlined-put-by-val-with-symbol-transition 56.7093+-4.0280 ? 59.0997+-5.1286 ? might be 1.0422x slower instanceof-bound 23.8514+-2.6936 ? 25.6821+-5.4889 ? might be 1.0768x slower int-or-other-abs-then-get-by-val 5.5740+-0.2454 ? 6.0342+-1.3495 ? might be 1.0826x slower int-or-other-abs-zero-then-get-by-val 19.8278+-0.4306 ? 21.1009+-4.1856 ? might be 1.0642x slower int-or-other-add-then-get-by-val 5.8424+-0.4573 5.7867+-0.1118 int-or-other-add 5.6306+-0.1170 ? 5.7445+-0.2628 ? might be 1.0202x slower int-or-other-div-then-get-by-val 4.4137+-0.0249 ? 4.4532+-0.2007 ? int-or-other-max-then-get-by-val 4.9277+-0.9171 4.6212+-0.1300 might be 1.0663x faster int-or-other-min-then-get-by-val 4.8937+-0.7244 4.6845+-0.0755 might be 1.0447x faster int-or-other-mod-then-get-by-val 4.2890+-0.1520 ? 4.3394+-0.2884 ? might be 1.0117x slower int-or-other-mul-then-get-by-val 4.6657+-1.3131 4.2897+-0.1089 might be 1.0876x faster int-or-other-neg-then-get-by-val 4.9713+-0.2448 4.8538+-0.0456 might be 1.0242x faster int-or-other-neg-zero-then-get-by-val 22.9631+-5.7714 20.9240+-3.9854 might be 1.0975x faster int-or-other-sub-then-get-by-val 6.0132+-0.0352 5.9899+-0.0957 int-or-other-sub 4.5778+-0.1486 ? 4.6680+-0.3254 ? might be 1.0197x slower int-overflow-local 5.1345+-0.1359 5.1320+-0.0819 Int16Array-alloc-long-lived 61.6947+-2.7677 59.3102+-2.9719 might be 1.0402x faster Int16Array-bubble-sort-with-byteLength 23.1073+-1.7147 ? 24.0831+-1.0819 ? might be 1.0422x slower Int16Array-bubble-sort 20.5265+-1.0238 20.1733+-0.1905 might be 1.0175x faster Int16Array-load-int-mul 2.0530+-0.3627 1.9629+-0.0677 might be 1.0459x faster Int16Array-to-Int32Array-set 58.4327+-0.2905 ^ 57.4477+-0.3447 ^ definitely 1.0171x faster Int32Array-alloc-large 29.4740+-2.4366 26.2855+-0.8653 might be 1.1213x faster Int32Array-alloc-long-lived 67.9485+-8.0484 66.9293+-5.4537 might be 1.0152x faster Int32Array-alloc 3.9185+-0.0845 ? 4.6503+-2.4165 ? might be 1.1867x slower Int32Array-Int8Array-view-alloc 7.4820+-0.2059 ? 7.5504+-0.3376 ? int52-spill 6.2779+-1.1266 5.8351+-0.1684 might be 1.0759x faster Int8Array-alloc-long-lived 54.3631+-3.0843 52.9403+-3.0358 might be 1.0269x faster Int8Array-load-with-byteLength 3.9717+-0.0302 ? 4.0898+-0.2016 ? might be 1.0297x slower Int8Array-load 4.1197+-0.1703 4.0713+-0.1932 might be 1.0119x faster integer-divide 13.2458+-2.7231 ? 15.2903+-3.9109 ? might be 1.1544x slower integer-modulo 2.4343+-0.2108 ? 2.5415+-0.4319 ? might be 1.0441x slower is-boolean-fold-tricky 4.5695+-0.1805 4.5582+-0.2218 is-boolean-fold 3.5250+-0.0468 ? 4.0130+-1.2173 ? might be 1.1384x slower is-function-fold-tricky-internal-function 12.2498+-0.3125 ? 13.2418+-3.0284 ? might be 1.0810x slower is-function-fold-tricky 4.5772+-0.0317 ? 5.0398+-1.4789 ? might be 1.1011x slower is-function-fold 3.6056+-0.0699 ? 4.1495+-1.3818 ? might be 1.1508x slower is-number-fold-tricky 4.9999+-1.3319 ? 5.0075+-1.5379 ? is-number-fold 3.5710+-0.1262 ? 3.7209+-0.2481 ? might be 1.0420x slower is-object-or-null-fold-functions 3.8123+-0.4375 3.6973+-0.1235 might be 1.0311x faster is-object-or-null-fold-less-tricky 4.6497+-0.1350 ? 5.8677+-2.2489 ? might be 1.2620x slower is-object-or-null-fold-tricky 6.5237+-1.4167 6.1857+-0.2695 might be 1.0546x faster is-object-or-null-fold 4.1453+-1.3455 3.6573+-0.1524 might be 1.1334x faster is-object-or-null-trickier-function 5.6162+-1.8196 5.1793+-1.4898 might be 1.0844x faster is-object-or-null-trickier-internal-function 17.7695+-0.4792 ? 18.5690+-1.7372 ? might be 1.0450x slower is-object-or-null-tricky-function 4.6691+-0.1447 ? 5.0555+-1.3633 ? might be 1.0828x slower is-object-or-null-tricky-internal-function 9.6163+-1.6158 9.0823+-0.2886 might be 1.0588x faster is-string-fold-tricky 5.3931+-1.7055 4.9414+-1.5379 might be 1.0914x faster is-string-fold 3.6551+-0.3129 3.5745+-0.1527 might be 1.0225x faster is-undefined-fold-tricky 3.8282+-0.1950 ? 4.0364+-0.3160 ? might be 1.0544x slower is-undefined-fold 3.6118+-0.0993 ? 3.7197+-0.3045 ? might be 1.0299x slower JSONP-negative-0 0.3517+-0.0083 ? 0.4917+-0.1425 ? might be 1.3979x slower large-int-captured 3.7211+-0.2989 ? 4.0057+-0.2720 ? might be 1.0765x slower large-int-neg 15.4839+-0.3302 ? 15.5735+-0.1806 ? large-int 16.1016+-4.6627 16.0425+-4.7941 load-varargs-elimination 22.8818+-0.7240 ? 24.2017+-3.8531 ? might be 1.0577x slower logical-not-weird-types 3.8527+-1.3337 3.7756+-1.2873 might be 1.0204x faster logical-not 4.6882+-0.0387 ? 4.7233+-0.1486 ? lots-of-fields 13.9108+-2.8854 ? 15.5230+-4.1346 ? might be 1.1159x slower make-indexed-storage 3.6508+-0.4479 ? 3.8781+-0.6549 ? might be 1.0622x slower make-rope-cse 5.9417+-1.4824 5.8217+-1.4968 might be 1.0206x faster map-for-each 6.3323+-0.2299 ? 6.3521+-0.1861 ? map-for-of 20.7924+-1.3359 ? 23.1824+-4.9935 ? might be 1.1149x slower marsaglia-larger-ints 43.6826+-0.2416 ? 43.9312+-0.5426 ? marsaglia-osr-entry 22.5484+-3.3521 22.2520+-3.7891 might be 1.0133x faster math-random 16.3193+-0.3305 ? 19.4192+-5.7369 ? might be 1.1899x slower math-with-out-of-bounds-array-values 33.3232+-0.4660 ? 35.3173+-6.3384 ? might be 1.0598x slower max-boolean 3.7318+-1.7466 3.7235+-1.7438 method-on-number 19.5373+-0.7489 18.8823+-0.2969 might be 1.0347x faster min-boolean 4.3577+-1.4755 3.6487+-1.2842 might be 1.1943x faster minus-boolean-double 3.4778+-0.1002 3.4704+-0.0723 minus-boolean 3.0880+-0.3372 ? 3.2997+-0.7574 ? might be 1.0686x slower misc-strict-eq 27.7247+-2.2888 26.5265+-0.6017 might be 1.0452x faster mod-boolean-double 10.2841+-0.1909 ? 10.6675+-1.6069 ? might be 1.0373x slower mod-boolean 7.6715+-0.1310 ? 7.6923+-0.1934 ? mul-boolean-double 4.1125+-0.3914 ? 4.5187+-1.2493 ? might be 1.0988x slower mul-boolean 3.2811+-0.3546 ? 4.1976+-1.7574 ? might be 1.2793x slower neg-boolean 3.4562+-0.1266 ? 3.5859+-0.1795 ? might be 1.0375x slower negative-zero-divide 0.6310+-0.2011 0.4673+-0.0052 might be 1.3504x faster negative-zero-modulo 0.5446+-0.2039 ? 0.5478+-0.2032 ? negative-zero-negate 0.4681+-0.0243 ? 0.5117+-0.1827 ? might be 1.0930x slower nested-function-parsing 43.3522+-0.7818 ? 45.4155+-4.2638 ? might be 1.0476x slower new-array-buffer-dead 126.4517+-14.4072 126.3300+-4.8367 new-array-buffer-push 8.0037+-0.3652 ? 8.1511+-0.2840 ? might be 1.0184x slower new-array-dead 12.4084+-0.6225 12.3423+-0.7123 new-array-push 5.1072+-0.2989 4.9572+-0.1167 might be 1.0303x faster no-inline-constructor 43.8755+-7.3234 42.7833+-7.4295 might be 1.0255x faster number-test 3.9652+-0.1295 ? 4.0478+-0.1781 ? might be 1.0208x slower object-closure-call 6.5798+-0.3480 6.4698+-0.2910 might be 1.0170x faster object-get-own-property-symbols-on-large-array 3.6021+-0.1564 3.5439+-0.1304 might be 1.0164x faster object-test 3.8364+-0.0323 ? 3.9052+-0.1376 ? might be 1.0179x slower obvious-sink-pathology-taken 180.6387+-7.7682 179.2584+-3.4870 obvious-sink-pathology 35.9012+-3.3804 ? 40.1134+-5.8442 ? might be 1.1173x slower obviously-elidable-new-object 32.8003+-3.1714 ? 34.4510+-4.6261 ? might be 1.0503x slower plus-boolean-arith 2.9675+-0.0267 2.9670+-0.0126 plus-boolean-double 3.5007+-0.1313 ? 3.9582+-1.2665 ? might be 1.1307x slower plus-boolean 3.1815+-0.1357 ? 3.2459+-0.0333 ? might be 1.0202x slower poly-chain-access-different-prototypes-simple 3.7944+-1.3374 3.3771+-0.4628 might be 1.1236x faster poly-chain-access-different-prototypes 3.1333+-0.0904 ? 3.1396+-0.0954 ? poly-chain-access-simpler 3.8157+-1.3095 3.3300+-0.1167 might be 1.1459x faster poly-chain-access 3.6393+-1.5275 3.2452+-0.1752 might be 1.1214x faster poly-stricteq 67.1759+-0.5303 67.0428+-0.4958 polymorphic-array-call 1.7400+-0.3495 1.7088+-0.3440 might be 1.0183x faster polymorphic-get-by-id 2.7263+-0.0705 ? 2.8226+-0.3748 ? might be 1.0353x slower polymorphic-put-by-id 39.9305+-3.3895 38.7471+-0.0811 might be 1.0305x faster polymorphic-put-by-val-with-string 39.9471+-0.4803 ? 41.3531+-3.8769 ? might be 1.0352x slower polymorphic-put-by-val-with-symbol 41.6265+-4.7801 40.0350+-0.2082 might be 1.0398x faster polymorphic-structure 16.4135+-5.3465 ? 19.2656+-5.1211 ? might be 1.1738x slower polyvariant-monomorphic-get-by-id 6.5341+-0.4675 ? 6.7368+-1.2522 ? might be 1.0310x slower proto-getter-access 12.3158+-0.3316 ? 13.3411+-3.4287 ? might be 1.0833x slower prototype-access-with-mutating-prototype 5.6939+-1.0250 5.3767+-0.3946 might be 1.0590x faster put-by-id-replace-and-transition 11.1661+-3.1679 9.9658+-0.2776 might be 1.1204x faster put-by-id-slightly-polymorphic 3.8104+-1.7474 3.7346+-1.0761 might be 1.0203x faster put-by-id 14.4199+-0.2703 ? 15.6075+-2.6253 ? might be 1.0824x slower put-by-val-direct 0.5930+-0.2371 0.5372+-0.0371 might be 1.1040x faster put-by-val-large-index-blank-indexing-type 7.5857+-3.5179 6.5258+-0.1514 might be 1.1624x faster put-by-val-machine-int 3.1400+-0.1385 ? 3.1412+-0.1308 ? put-by-val-with-string-replace-and-transition 15.5178+-0.2407 15.3887+-0.2680 put-by-val-with-string-slightly-polymorphic 4.4189+-1.2916 3.6038+-0.1421 might be 1.2262x faster put-by-val-with-string 16.5367+-3.1231 15.1545+-0.8601 might be 1.0912x faster put-by-val-with-symbol-replace-and-transition 15.8486+-0.7397 15.6663+-0.8234 might be 1.0116x faster put-by-val-with-symbol-slightly-polymorphic 4.7633+-1.1432 4.4086+-0.0540 might be 1.0805x faster put-by-val-with-symbol 15.6645+-2.2399 ? 15.9658+-2.9785 ? might be 1.0192x slower rare-osr-exit-on-local 15.3105+-0.1956 15.3012+-0.8336 raytrace-with-empty-try-catch 8.0278+-0.3121 ? 8.3785+-1.1792 ? might be 1.0437x slower raytrace-with-try-catch 12.9399+-0.8081 12.6443+-0.4406 might be 1.0234x faster register-pressure-from-osr 22.3047+-2.9728 21.2069+-0.2895 might be 1.0518x faster repeat-multi-get-by-offset 23.5850+-2.6275 22.5500+-0.6201 might be 1.0459x faster richards-empty-try-catch 58.7188+-3.5167 58.3573+-4.4533 richards-try-catch 257.0297+-2.0833 ? 258.0800+-4.5105 ? set-for-each 6.3321+-1.3459 5.7692+-0.1349 might be 1.0976x faster set-for-of 9.6815+-0.2603 ? 10.4075+-0.7892 ? might be 1.0750x slower setter-prototype 5.3187+-0.0225 ? 5.5297+-0.2154 ? might be 1.0397x slower setter 4.8859+-0.1081 ? 4.9217+-0.2127 ? simple-activation-demo 26.1995+-3.6598 25.2715+-0.6665 might be 1.0367x faster simple-getter-access 18.8245+-0.1341 ? 20.1454+-3.7671 ? might be 1.0702x slower simple-poly-call-nested 6.4501+-0.1688 ? 7.0026+-1.4664 ? might be 1.0857x slower simple-poly-call 1.8655+-0.3796 ? 1.9112+-0.5588 ? might be 1.0245x slower sin-boolean 15.6932+-0.5690 ? 19.3079+-4.5070 ? might be 1.2303x slower singleton-scope 69.4395+-3.9628 68.0745+-0.4618 might be 1.0201x faster sink-function 7.7264+-0.2739 ? 7.9872+-1.0125 ? might be 1.0338x slower sink-huge-activation 13.6045+-0.5676 ? 15.8838+-6.8740 ? might be 1.1675x slower sinkable-new-object-dag 73.0187+-5.0948 ? 76.2288+-7.2382 ? might be 1.0440x slower sinkable-new-object-taken 52.5903+-2.2579 ? 52.7161+-4.4342 ? sinkable-new-object 35.7292+-5.7231 ? 42.8521+-3.9729 ? might be 1.1994x slower slow-array-profile-convergence 3.1956+-0.1694 ? 3.5724+-0.7134 ? might be 1.1179x slower slow-convergence 3.2862+-0.1178 3.2042+-0.1611 might be 1.0256x faster slow-ternaries 21.9963+-0.6626 ? 22.7493+-1.9351 ? might be 1.0342x slower sorting-benchmark 22.0198+-0.2106 ? 22.1254+-0.3924 ? sparse-conditional 1.8445+-0.4403 1.8080+-0.4386 might be 1.0202x faster splice-to-remove 19.1860+-3.0973 ? 20.5285+-3.8682 ? might be 1.0700x slower string-char-code-at 16.4811+-0.1245 ? 17.9492+-3.4444 ? might be 1.0891x slower string-concat-object 3.2568+-1.5310 2.7701+-0.0334 might be 1.1757x faster string-concat-pair-object 2.7024+-0.0437 ? 2.7042+-0.0129 ? string-concat-pair-simple 15.0850+-3.3275 14.9020+-3.2059 might be 1.0123x faster string-concat-simple 15.5145+-3.3192 ? 16.3742+-4.5347 ? might be 1.0554x slower string-cons-repeat 9.0660+-0.5086 ? 11.0522+-3.9633 ? might be 1.2191x slower string-cons-tower 10.6822+-3.7585 9.6222+-1.9797 might be 1.1102x faster string-equality 22.6831+-1.1387 ? 23.8308+-5.1127 ? might be 1.0506x slower string-get-by-val-big-char 8.4782+-0.6503 8.3351+-0.0741 might be 1.0172x faster string-get-by-val-out-of-bounds-insane 4.2906+-0.1197 ? 4.4055+-0.1940 ? might be 1.0268x slower string-get-by-val-out-of-bounds 6.7435+-1.4317 6.3022+-0.0313 might be 1.0700x faster string-get-by-val 4.7283+-1.6192 4.2365+-1.1504 might be 1.1161x faster string-hash 2.5840+-0.2269 2.5547+-0.2403 might be 1.0114x faster string-long-ident-equality 19.6692+-4.9378 18.2817+-0.6614 might be 1.0759x faster string-out-of-bounds 11.2960+-1.6247 10.7092+-0.2393 might be 1.0548x faster string-repeat-arith 27.5391+-1.9109 ? 28.1527+-3.7653 ? might be 1.0223x slower string-rope-with-object 18.6521+-0.3489 ? 19.1541+-0.6626 ? might be 1.0269x slower string-sub 42.6467+-0.5155 42.6039+-0.5949 string-test 4.2801+-1.4018 4.1918+-1.1617 might be 1.0211x faster string-var-equality 38.8900+-4.0058 37.6405+-0.1231 might be 1.0332x faster structure-hoist-over-transitions 3.0292+-0.1974 ? 3.3814+-1.1046 ? might be 1.1163x slower substring-concat-weird 49.4692+-3.8404 ? 51.2240+-4.6757 ? might be 1.0355x slower substring-concat 54.3423+-5.2059 52.5309+-2.2165 might be 1.0345x faster substring 58.0132+-2.2126 57.8923+-4.9299 switch-char-constant 3.1810+-0.0443 3.1597+-0.0167 switch-char 6.6553+-0.2347 6.6276+-0.0368 switch-constant 7.3944+-0.7979 ? 7.5482+-0.8993 ? might be 1.0208x slower switch-string-basic-big-var 18.9204+-5.3080 17.9753+-2.7495 might be 1.0526x faster switch-string-basic-big 18.0866+-5.4019 17.5972+-5.3051 might be 1.0278x faster switch-string-basic-var 18.3762+-3.1430 ? 21.3322+-4.6701 ? might be 1.1609x slower switch-string-basic 16.5362+-5.1309 16.5222+-5.0624 switch-string-big-length-tower-var 23.3515+-3.1379 22.4139+-1.0163 might be 1.0418x faster switch-string-length-tower-var 19.9737+-1.3367 19.2047+-0.2160 might be 1.0400x faster switch-string-length-tower 17.4189+-4.1119 16.1301+-7.7999 might be 1.0799x faster switch-string-short 15.1048+-4.4699 ? 15.4943+-3.8785 ? might be 1.0258x slower switch 12.0580+-0.6427 ? 12.1437+-0.9935 ? symbol-tostringtag 4.0046+-0.2030 ? 4.0290+-0.1059 ? tear-off-arguments-simple 3.2958+-0.3581 ? 3.4103+-0.1020 ? might be 1.0347x slower tear-off-arguments 4.1748+-0.1211 ? 4.3221+-0.5012 ? might be 1.0353x slower temporal-structure 16.0685+-3.3455 ? 18.5682+-4.4115 ? might be 1.1556x slower to-int32-boolean 17.5165+-0.3005 ? 18.8663+-4.9237 ? might be 1.0771x slower try-catch-get-by-val-cloned-arguments 9.3058+-2.3436 ? 11.0297+-4.1756 ? might be 1.1852x slower try-catch-get-by-val-direct-arguments 2.6248+-0.0157 ! 2.8850+-0.1473 ! definitely 1.0992x slower try-catch-get-by-val-scoped-arguments 5.3662+-0.3458 ? 5.3768+-0.1001 ? typed-array-get-set-by-val-profiling 22.9412+-0.4525 ? 23.6550+-1.8879 ? might be 1.0311x slower undefined-property-access 362.0250+-8.8046 356.6633+-5.9710 might be 1.0150x faster undefined-test 4.0873+-0.1296 ? 4.0973+-0.0842 ? unprofiled-licm 13.1047+-4.2298 10.7418+-0.4653 might be 1.2200x faster v8-raytrace-with-empty-try-catch 64.9070+-1.5935 64.5674+-0.8632 v8-raytrace-with-try-catch-high-frequency-throws 484.6123+-6.8688 ? 487.7638+-11.8701 ? v8-raytrace-with-try-catch 82.5383+-0.9324 ? 85.5640+-6.8692 ? might be 1.0367x slower varargs-call 15.0967+-0.3952 ? 16.6340+-5.0543 ? might be 1.1018x slower varargs-construct-inline 26.9190+-3.7036 25.7452+-0.4398 might be 1.0456x faster varargs-construct 23.8963+-2.9078 23.5998+-3.0649 might be 1.0126x faster varargs-inline 10.3049+-2.0158 ? 11.3207+-2.6863 ? might be 1.0986x slower varargs-strict-mode 11.5182+-0.3448 11.2585+-0.1278 might be 1.0231x faster varargs 11.2456+-0.1749 ? 12.6624+-2.4528 ? might be 1.1260x slower weird-inlining-const-prop 2.6307+-0.0553 ? 3.1155+-0.9818 ? might be 1.1843x slower <geometric> 10.7213+-0.0477 ? 10.8419+-0.0995 ? might be 1.0112x slower Baseline Mine Geomean of preferred means: <scaled-result> 30.6895+-0.0238 ? 30.8440+-0.2743 ? might be 1.0050x slower
Filip Pizlo
Comment 11
2016-01-30 18:58:57 PST
The perf numbers look good!
Yusuke Suzuki
Comment 12
2016-01-30 19:22:37 PST
Comment on
attachment 270327
[details]
Patch yay, so i've added r? ;)
Yusuke Suzuki
Comment 13
2016-01-31 15:05:24 PST
Committed
r195938
: <
http://trac.webkit.org/changeset/195938
>
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