WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
149409
Implement try/catch in the FTL
https://bugs.webkit.org/show_bug.cgi?id=149409
Summary
Implement try/catch in the FTL
Saam Barati
Reported
2015-09-21 11:15:02 PDT
...
Attachments
WIP
(27.93 KB, patch)
2015-10-12 11:24 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
WIP
(83.24 KB, patch)
2015-10-30 16:45 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
patch
(92.87 KB, patch)
2015-11-02 18:29 PST
,
Saam Barati
no flags
Details
Formatted Diff
Diff
patch
(93.19 KB, patch)
2015-11-02 18:34 PST
,
Saam Barati
fpizlo
: review+
Details
Formatted Diff
Diff
Show Obsolete
(3)
View All
Add attachment
proposed patch, testcase, etc.
Saam Barati
Comment 1
2015-10-12 11:24:06 PDT
Created
attachment 262908
[details]
WIP
Saam Barati
Comment 2
2015-10-30 16:45:52 PDT
Created
attachment 264440
[details]
WIP Almost done. I want to write a few more tests, clean up a bit of code, rebase the patch, and then I think this is done. Tests I still want: - exception thrown from inline cache miss (i.e, from operationGetByIdOptimize) - exception from lazy slow path - exception thrown and caught in correct inline frame.
Saam Barati
Comment 3
2015-10-30 16:49:30 PDT
(In reply to
comment #2
)
> Created
attachment 264440
[details]
> WIP > > Almost done. > I want to write a few more tests, clean up a bit of code, rebase the patch, > and then I think this is done. > > Tests I still want: > - exception thrown from inline cache miss (i.e, from > operationGetByIdOptimize) > - exception from lazy slow path > - exception thrown and caught in correct inline frame.
Add one more thing to do: - Make the list of things we spill from a JSCall a number based on live values in the catch and not all volatile registers
Saam Barati
Comment 4
2015-11-02 18:29:22 PST
Created
attachment 264653
[details]
patch
WebKit Commit Bot
Comment 5
2015-11-02 18:31:17 PST
Attachment 264653
[details]
did not pass style-queue: ERROR: Source/JavaScriptCore/ftl/FTLCompile.cpp:469: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLCompile.cpp:599: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLCompile.cpp:684: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:56: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:57: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:58: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:59: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:60: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:96: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:97: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 10 in 38 files If any of these errors are false positives, please file a bug against check-webkit-style.
Saam Barati
Comment 6
2015-11-02 18:34:37 PST
Created
attachment 264654
[details]
patch
WebKit Commit Bot
Comment 7
2015-11-02 18:36:27 PST
Attachment 264654
[details]
did not pass style-queue: ERROR: Source/JavaScriptCore/ftl/FTLCompile.cpp:469: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLCompile.cpp:600: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLCompile.cpp:685: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:56: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:57: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:58: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:59: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:60: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:96: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLOSRExit.cpp:97: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 10 in 38 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 8
2015-11-03 15:59:27 PST
Comment on
attachment 264654
[details]
patch Let's do this!
Saam Barati
Comment 9
2015-11-04 14:36:48 PST
perf numbers: Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, and CompressionBench on Saams-Mac-Pro (MacPro6,1). VMs tested: "og" at /Volumes/Data/WK/os-a/OpenSource/WebKitBuild/Release/jsc (
r191931
) "tryCatchFTL" at /Volumes/Data/WK/os-b/OpenSource/WebKitBuild/Release/jsc (
r191931
) export JSC_useFTLTryCatch=1 Collected 8 samples per benchmark/VM, with 8 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. og tryCatchFTL SunSpider: 3d-cube 7.7318+-0.2891 ? 7.7646+-0.3291 ? 3d-morph 7.6685+-0.1132 7.5786+-0.0166 might be 1.0119x faster 3d-raytrace 8.7827+-0.0470 ! 8.9757+-0.1378 ! definitely 1.0220x slower access-binary-trees 3.1983+-0.0861 3.1181+-0.0286 might be 1.0257x faster access-fannkuch 8.5316+-0.0204 8.5183+-0.0283 access-nbody 4.0146+-0.0128 ! 4.0625+-0.0229 ! definitely 1.0119x slower access-nsieve 4.6482+-0.0631 ? 4.7240+-0.1315 ? might be 1.0163x slower bitops-3bit-bits-in-byte 1.7445+-0.0116 1.7252+-0.0289 might be 1.0112x faster bitops-bits-in-byte 4.7152+-0.0443 4.6540+-0.0510 might be 1.0131x faster bitops-bitwise-and 2.9341+-0.0209 ? 2.9499+-0.0345 ? bitops-nsieve-bits 4.2878+-0.0597 ? 4.3193+-0.0485 ? controlflow-recursive 3.3498+-0.0420 ? 3.3818+-0.0887 ? crypto-aes 6.4524+-0.0433 ? 6.5012+-0.0659 ? crypto-md5 3.7576+-0.0690 3.7352+-0.0274 crypto-sha1 3.4822+-0.0216 ? 3.4908+-0.0269 ? date-format-tofte 13.1756+-0.1440 12.9432+-0.0935 might be 1.0180x faster date-format-xparb 7.5453+-0.0446 ? 7.8588+-0.4768 ? might be 1.0415x slower math-cordic 4.1428+-0.0180 ! 4.2498+-0.0103 ! definitely 1.0258x slower math-partial-sums 7.6096+-0.0744 ? 7.6150+-0.0378 ? math-spectral-norm 2.8456+-0.0163 2.8391+-0.0195 regexp-dna 9.5471+-0.0929 9.4803+-0.0436 string-base64 6.4017+-0.0415 6.3494+-0.0387 string-fasta 8.4615+-0.0677 ? 8.5814+-0.0732 ? might be 1.0142x slower string-tagcloud 12.0362+-0.0682 ? 12.1867+-0.3330 ? might be 1.0125x slower string-unpack-code 26.6557+-0.2382 ! 27.5564+-0.2432 ! definitely 1.0338x slower string-validate-input 6.3377+-0.0464 6.2983+-0.0812 <arithmetic> 6.9253+-0.0287 ? 6.9791+-0.0332 ? might be 1.0078x slower og tryCatchFTL LongSpider: 3d-cube 1188.8931+-9.5461 1187.4914+-11.3300 3d-morph 2083.0633+-1.2383 2082.9016+-1.3679 3d-raytrace 917.3685+-2.9928 ? 925.2569+-12.5572 ? access-binary-trees 1198.9734+-3.9164 ? 1199.2009+-3.2474 ? access-fannkuch 488.3999+-3.9992 ? 492.0440+-5.3081 ? access-nbody 802.4822+-0.1273 ? 803.0908+-0.5761 ? access-nsieve 582.9100+-3.6242 580.0134+-2.9943 bitops-3bit-bits-in-byte 50.8018+-0.0778 ? 51.0549+-0.4265 ? bitops-bits-in-byte 135.2148+-2.1492 ? 135.6178+-1.1939 ? bitops-nsieve-bits 587.4410+-2.6615 ? 589.9493+-0.7425 ? controlflow-recursive 649.5424+-0.3307 ? 649.8575+-0.7843 ? crypto-aes 839.0770+-2.8150 ? 843.0469+-4.8519 ? crypto-md5 731.6777+-7.2102 ? 742.9239+-19.8971 ? might be 1.0154x slower crypto-sha1 975.5347+-5.6638 973.2252+-7.1624 date-format-tofte 1044.2230+-11.6837 1020.2409+-20.7328 might be 1.0235x faster date-format-xparb 1058.3864+-25.7146 ? 1072.6612+-14.3662 ? might be 1.0135x slower hash-map 225.3840+-1.7498 ^ 219.4016+-3.2056 ^ definitely 1.0273x faster math-cordic 737.2517+-1.0281 ? 737.3510+-1.1992 ? math-partial-sums 735.8625+-3.3264 ? 738.0363+-1.7039 ? math-spectral-norm 769.3866+-1.1700 ? 770.1925+-2.6041 ? string-base64 538.6395+-1.2272 ? 539.2767+-1.3810 ? string-fasta 548.1288+-2.6840 ? 548.3836+-3.2819 ? string-tagcloud 265.6915+-4.6541 ? 267.5320+-0.9542 ? <geometric> 600.2040+-1.0248 ? 600.6379+-0.9728 ? might be 1.0007x slower og tryCatchFTL V8Spider: crypto 71.3041+-0.2318 71.0136+-0.2334 deltablue 89.8814+-2.1664 89.3356+-2.0044 earley-boyer 60.3759+-0.3076 ? 60.5201+-0.2591 ? raytrace 41.5776+-0.5643 41.5698+-0.6973 regexp 98.2870+-0.3354 ? 98.5057+-0.5341 ? richards 73.4603+-0.3084 73.4511+-0.3076 splay 49.2939+-0.8303 ? 49.3256+-0.4574 ? <geometric> 66.4527+-0.3124 66.4037+-0.2446 might be 1.0007x faster og tryCatchFTL Octane: encrypt 0.24868+-0.00449 0.24730+-0.00317 decrypt 4.43595+-0.00982 ? 4.44383+-0.02129 ? deltablue x2 0.20500+-0.00132 0.20477+-0.00151 earley 0.45570+-0.00212 ? 0.45650+-0.00072 ? boyer 6.86504+-0.02925 ? 6.87532+-0.02627 ? navier-stokes x2 6.90602+-0.00195 ? 6.91146+-0.00796 ? raytrace x2 1.32399+-0.00776 1.31548+-0.00246 richards x2 0.14132+-0.00044 0.14124+-0.00050 splay x2 0.48201+-0.00215 ? 0.48402+-0.00298 ? regexp x2 36.60402+-0.04381 36.57678+-0.14806 pdfjs x2 56.05452+-0.15730 ? 56.34902+-0.27651 ? mandreel x2 65.60110+-0.40834 65.58532+-0.43011 gbemu x2 54.22581+-0.52596 ? 59.66801+-5.56773 ? might be 1.1004x slower closure 0.99907+-0.00316 ! 1.01165+-0.00666 ! definitely 1.0126x slower jquery 12.95375+-0.05028 ! 13.11738+-0.03357 ! definitely 1.0126x slower box2d x2 16.27456+-0.06560 ? 16.30702+-0.04553 ? zlib x2 525.38317+-17.48066 ? 530.76764+-16.74861 ? might be 1.0102x slower typescript x2 1138.17670+-9.50976 ? 1139.33826+-4.35283 ? <geometric> 8.29485+-0.02249 ? 8.36000+-0.05506 ? might be 1.0079x slower og tryCatchFTL Kraken: ai-astar 225.313+-2.074 222.881+-2.281 might be 1.0109x faster audio-beat-detection 73.704+-0.615 ? 73.806+-0.428 ? audio-dft 142.506+-0.299 142.504+-0.315 audio-fft 54.915+-0.192 ? 55.215+-0.830 ? audio-oscillator 89.005+-0.096 ? 89.144+-0.100 ? imaging-darkroom 93.997+-0.065 ^ 93.898+-0.009 ^ definitely 1.0011x faster imaging-desaturate 86.545+-0.472 ^ 84.000+-0.528 ^ definitely 1.0303x faster imaging-gaussian-blur 152.696+-5.794 149.450+-1.171 might be 1.0217x faster json-parse-financial 62.988+-0.275 ? 63.491+-0.336 ? json-stringify-tinderbox 38.570+-0.062 ! 38.979+-0.242 ! definitely 1.0106x slower stanford-crypto-aes 64.545+-0.928 ? 65.250+-0.637 ? might be 1.0109x slower stanford-crypto-ccm 58.422+-1.374 ? 60.002+-1.966 ? might be 1.0270x slower stanford-crypto-pbkdf2 142.699+-1.068 140.808+-0.997 might be 1.0134x faster stanford-crypto-sha256-iterative 56.398+-0.114 ! 57.012+-0.403 ! definitely 1.0109x slower <arithmetic> 95.879+-0.511 95.460+-0.231 might be 1.0044x faster og tryCatchFTL JSRegress: abc-forward-loop-equal 63.3475+-0.4160 63.2240+-0.2044 abc-postfix-backward-loop 62.8633+-0.2640 ? 63.0130+-0.4050 ? abc-simple-backward-loop 62.4372+-0.4001 ? 62.6392+-0.4136 ? abc-simple-forward-loop 62.5321+-0.2598 62.2620+-0.0832 abc-skippy-loop 43.0899+-0.2394 43.0164+-0.1408 abs-boolean 3.5862+-0.0996 3.5779+-0.0297 adapt-to-double-divide 21.9794+-0.3256 ? 21.9898+-0.3125 ? aliased-arguments-getbyval 1.6366+-0.0238 ? 1.6631+-0.0501 ? might be 1.0162x slower allocate-big-object 3.1045+-0.0752 ? 3.1634+-0.0961 ? might be 1.0190x slower arguments-named-and-reflective 15.0502+-0.3219 14.9253+-0.2813 arguments-out-of-bounds 16.5513+-0.0896 ? 16.6654+-0.3284 ? arguments-strict-mode 14.9821+-0.4023 14.7100+-0.6954 might be 1.0185x faster arguments 12.3274+-0.1512 ? 12.3915+-0.2026 ? arity-mismatch-inlining 1.3090+-0.0185 ? 1.3254+-0.0335 ? might be 1.0126x slower array-access-polymorphic-structure 10.1241+-0.0399 ? 10.1441+-0.0947 ? array-nonarray-polymorhpic-access 40.3380+-0.2734 40.3296+-0.8212 array-prototype-every 114.0440+-2.1082 111.0172+-0.9801 might be 1.0273x faster array-prototype-forEach 111.7209+-2.2576 ? 113.1471+-3.2510 ? might be 1.0128x slower array-prototype-map 121.9940+-1.4139 121.7484+-1.5580 array-prototype-reduce 107.4395+-0.4856 ? 109.5369+-3.4575 ? might be 1.0195x slower array-prototype-reduceRight 107.0463+-0.9081 ? 108.6180+-1.7984 ? might be 1.0147x slower array-prototype-some 113.1937+-2.3106 111.3853+-1.0041 might be 1.0162x faster array-splice-contiguous 37.6819+-0.4250 37.5627+-0.2990 array-with-double-add 5.6631+-0.0165 ! 5.6981+-0.0147 ! definitely 1.0062x slower array-with-double-increment 4.5035+-0.1151 4.3904+-0.0407 might be 1.0258x faster array-with-double-mul-add 6.7439+-0.0295 ! 6.8033+-0.0154 ! definitely 1.0088x slower array-with-double-sum 4.3987+-0.0319 ? 4.4326+-0.1039 ? array-with-int32-add-sub 9.3107+-0.0378 ? 9.3123+-0.0343 ? array-with-int32-or-double-sum 4.4683+-0.0294 4.4663+-0.0158 ArrayBuffer-DataView-alloc-large-long-lived 41.8414+-0.7454 41.0974+-0.6262 might be 1.0181x faster ArrayBuffer-DataView-alloc-long-lived 19.2403+-0.5667 ^ 18.4660+-0.1250 ^ definitely 1.0419x faster ArrayBuffer-Int32Array-byteOffset 5.0944+-0.0515 5.0836+-0.0223 ArrayBuffer-Int8Array-alloc-large-long-lived 42.2101+-1.0536 41.7061+-0.3487 might be 1.0121x faster ArrayBuffer-Int8Array-alloc-long-lived-buffer 30.8179+-1.4365 29.5974+-0.5716 might be 1.0412x faster ArrayBuffer-Int8Array-alloc-long-lived 17.9333+-0.7187 ^ 16.8913+-0.0931 ^ definitely 1.0617x faster ArrayBuffer-Int8Array-alloc 15.2933+-0.7130 14.5156+-0.2310 might be 1.0536x faster arrowfunction-call 15.5807+-0.1875 ? 15.6777+-0.1370 ? asmjs_bool_bug 11.1322+-0.0324 ? 11.1454+-0.0500 ? assign-custom-setter-polymorphic 4.1706+-0.0369 ? 4.1707+-0.0363 ? assign-custom-setter 5.9839+-0.0558 ! 6.1091+-0.0483 ! definitely 1.0209x slower basic-set 11.0205+-0.2735 ? 11.0829+-0.1842 ? big-int-mul 5.1796+-0.0192 5.1567+-0.0196 boolean-test 4.2112+-0.0188 4.2067+-0.0333 branch-fold 5.0700+-0.2137 5.0214+-0.0369 branch-on-string-as-boolean 26.4431+-0.3909 26.4022+-0.1342 by-val-generic 3.3008+-0.0436 ? 3.3068+-0.0369 ? call-spread-apply 39.7921+-0.4558 ? 41.9557+-2.7748 ? might be 1.0544x slower call-spread-call 32.4424+-0.1999 ! 34.0822+-0.5237 ! definitely 1.0505x slower captured-assignments 0.7687+-0.0260 ? 0.7710+-0.0099 ? cast-int-to-double 7.0543+-0.1401 7.0345+-0.0750 cell-argument 9.3176+-0.0657 9.1951+-0.2594 might be 1.0133x faster cfg-simplify 3.7974+-0.0225 3.7856+-0.0249 chain-getter-access 12.0040+-0.1887 11.9343+-0.2982 cmpeq-obj-to-obj-other 12.7351+-0.0148 ? 12.7800+-0.0463 ? constant-test 6.4984+-0.0262 ? 6.5008+-0.0217 ? create-lots-of-functions 13.2535+-0.1253 ? 13.5204+-0.2569 ? might be 1.0201x slower cse-new-array-buffer 3.0907+-0.0333 ? 3.1250+-0.0955 ? might be 1.0111x slower cse-new-array 3.1567+-0.0460 ? 3.1840+-0.1885 ? custom-setter-getter-as-put-get-by-id 0.8945+-0.0926 0.8759+-0.0327 might be 1.0213x faster DataView-custom-properties 49.8279+-0.6043 ^ 48.3618+-0.6240 ^ definitely 1.0303x faster delay-tear-off-arguments-strictmode 18.5628+-0.2356 ? 19.0715+-0.4846 ? might be 1.0274x slower deltablue-varargs 287.4734+-2.1344 ? 290.6596+-1.2205 ? might be 1.0111x slower destructuring-arguments 236.8381+-1.1515 ? 239.4278+-1.7604 ? might be 1.0109x slower destructuring-parameters-overridden-by-function 0.7963+-0.0139 0.7858+-0.0241 might be 1.0134x faster destructuring-swap 6.7498+-0.0338 ? 6.7670+-0.0508 ? direct-arguments-getbyval 1.6193+-0.0196 ? 1.6400+-0.0270 ? might be 1.0128x slower div-boolean-double 6.7556+-0.0122 ? 6.7617+-0.0264 ? div-boolean 10.2124+-0.0247 ? 10.2531+-0.1326 ? double-get-by-val-out-of-bounds 6.0294+-0.0654 ? 6.1205+-0.1200 ? might be 1.0151x slower double-pollution-getbyval 11.2878+-0.0238 ? 11.2947+-0.0185 ? double-pollution-putbyoffset 5.3757+-0.0609 5.3493+-0.0453 double-real-use 39.8454+-0.0766 ^ 39.7216+-0.0317 ^ definitely 1.0031x faster double-to-int32-typed-array-no-inline 3.1541+-0.0256 ? 3.1846+-0.0194 ? double-to-int32-typed-array 2.9898+-0.0265 2.9820+-0.0649 double-to-uint32-typed-array-no-inline 3.2617+-0.0186 ? 3.2979+-0.0270 ? might be 1.0111x slower double-to-uint32-typed-array 3.0242+-0.0325 ? 3.0438+-0.0219 ? elidable-new-object-dag 51.3011+-1.1899 50.5162+-0.5381 might be 1.0155x faster elidable-new-object-roflcopter 47.4789+-1.2456 47.1147+-0.2583 elidable-new-object-then-call 47.0069+-0.3236 ? 47.5357+-0.5389 ? might be 1.0112x slower elidable-new-object-tree 56.2869+-1.0259 56.2137+-0.8332 empty-string-plus-int 7.0761+-0.0231 ! 7.2751+-0.0655 ! definitely 1.0281x slower emscripten-cube2hash 53.6001+-0.6832 ? 53.9487+-0.6607 ? exit-length-on-plain-object 22.1904+-0.1728 22.1891+-0.1559 external-arguments-getbyval 1.8026+-0.0706 1.7785+-0.1044 might be 1.0136x faster external-arguments-putbyval 3.2903+-0.0862 ? 3.2992+-0.1041 ? fixed-typed-array-storage-var-index 1.8135+-0.0233 1.8081+-0.0228 fixed-typed-array-storage 1.4031+-0.0179 ? 1.4143+-0.0241 ? Float32Array-matrix-mult 6.6340+-0.0231 ! 6.6963+-0.0268 ! definitely 1.0094x slower Float32Array-to-Float64Array-set 70.6493+-0.1014 ! 71.9423+-0.4788 ! definitely 1.0183x slower Float64Array-alloc-long-lived 85.6441+-0.2201 ? 86.0509+-0.6267 ? Float64Array-to-Int16Array-set 89.7905+-1.4839 ^ 87.8715+-0.1910 ^ definitely 1.0218x faster fold-double-to-int 18.7237+-0.0625 ? 18.7568+-0.1217 ? fold-get-by-id-to-multi-get-by-offset-rare-int 12.3238+-0.1989 ? 12.3763+-0.1128 ? fold-get-by-id-to-multi-get-by-offset 10.6235+-0.1098 ? 10.6833+-0.0393 ? fold-multi-get-by-offset-to-get-by-offset 9.3647+-0.0458 ? 9.4112+-0.2775 ? fold-multi-get-by-offset-to-poly-get-by-offset 9.8616+-0.0534 9.8482+-0.1664 fold-multi-put-by-offset-to-poly-put-by-offset 11.9640+-0.0675 11.8901+-0.2101 fold-multi-put-by-offset-to-put-by-offset 11.2238+-0.2140 ? 11.3748+-0.0530 ? might be 1.0135x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 16.1220+-0.5298 15.7411+-0.4905 might be 1.0242x faster fold-put-by-id-to-multi-put-by-offset 13.6990+-0.4216 13.4791+-0.4680 might be 1.0163x faster fold-put-by-val-with-string-to-multi-put-by-offset 13.3940+-0.4016 ? 13.4256+-0.2782 ? fold-put-by-val-with-symbol-to-multi-put-by-offset 13.3386+-0.3677 ? 13.5568+-0.2472 ? might be 1.0164x slower fold-put-structure 8.8964+-0.1045 ? 8.9079+-0.2235 ? for-of-iterate-array-entries 15.6947+-0.2514 ? 15.9901+-0.6257 ? might be 1.0188x slower for-of-iterate-array-keys 5.3568+-0.1635 5.3110+-0.1652 for-of-iterate-array-values 5.0169+-0.1207 4.9803+-0.1505 fround 24.2715+-0.2516 ? 24.3354+-0.1045 ? ftl-library-inlining-dataview 93.0274+-0.8614 ! 99.9131+-1.3118 ! definitely 1.0740x slower ftl-library-inlining 147.8894+-6.0173 145.8124+-12.3890 might be 1.0142x faster ftl-object-sub 476.2159+-0.7933 ! 485.3692+-6.2757 ! definitely 1.0192x slower function-call 15.5151+-0.0744 15.5065+-0.0383 function-dot-apply 3.0450+-0.0220 ? 3.0503+-0.0210 ? function-test 3.9062+-0.1057 3.8826+-0.0213 function-with-eval 126.4147+-0.3327 ? 126.9628+-0.2279 ? gcse-poly-get-less-obvious 37.6977+-0.3996 37.6294+-0.3703 gcse-poly-get 38.6885+-0.2604 ? 38.7752+-0.4515 ? gcse 5.3550+-0.0169 ? 5.3710+-0.0275 ? get-by-id-bimorphic-check-structure-elimination-simple 3.6319+-0.1250 3.5868+-0.0488 might be 1.0126x faster get-by-id-bimorphic-check-structure-elimination 7.0211+-0.0145 ? 7.0369+-0.0226 ? get-by-id-chain-from-try-block 3.3831+-0.0151 ! 3.8006+-0.2193 ! definitely 1.1234x slower get-by-id-check-structure-elimination 6.0628+-0.0296 ? 6.0722+-0.0373 ? get-by-id-proto-or-self 26.5507+-1.9474 ? 27.6998+-2.1387 ? might be 1.0433x slower get-by-id-quadmorphic-check-structure-elimination-simple 3.9896+-0.0311 3.9857+-0.0148 get-by-id-self-or-proto 25.8584+-2.2019 25.8345+-1.4370 get-by-val-out-of-bounds 5.8994+-0.0292 ? 6.0230+-0.1334 ? might be 1.0210x slower get-by-val-with-string-bimorphic-check-structure-elimination-simple 3.6126+-0.0724 3.5635+-0.0238 might be 1.0138x faster get-by-val-with-string-bimorphic-check-structure-elimination 8.9789+-0.0543 8.9727+-0.1299 get-by-val-with-string-chain-from-try-block 3.4508+-0.0504 ! 3.8726+-0.1293 ! definitely 1.1222x slower get-by-val-with-string-check-structure-elimination 8.2385+-0.0331 ? 8.4088+-0.3553 ? might be 1.0207x slower get-by-val-with-string-proto-or-self 26.4005+-1.2542 ? 27.4069+-1.9019 ? might be 1.0381x slower get-by-val-with-string-quadmorphic-check-structure-elimination-simple 4.6544+-0.0988 ? 4.7969+-0.0759 ? might be 1.0306x slower get-by-val-with-string-self-or-proto 28.2591+-2.0969 26.3063+-1.3100 might be 1.0742x faster get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 4.2567+-0.1068 4.2361+-0.0786 get-by-val-with-symbol-bimorphic-check-structure-elimination 17.5234+-0.0270 ? 17.5573+-0.1736 ? get-by-val-with-symbol-chain-from-try-block 3.4372+-0.0076 ! 3.7966+-0.0178 ! definitely 1.1046x slower get-by-val-with-symbol-check-structure-elimination 16.7152+-0.0596 ? 16.7858+-0.2490 ? get-by-val-with-symbol-proto-or-self 27.2650+-1.9350 26.2987+-1.3680 might be 1.0367x faster get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 5.6559+-0.0207 ? 5.6646+-0.0154 ? get-by-val-with-symbol-self-or-proto 26.5221+-1.1958 25.9109+-1.3950 might be 1.0236x faster get_callee_monomorphic 3.2519+-0.2390 3.0885+-0.0884 might be 1.0529x faster get_callee_polymorphic 4.5540+-0.0461 ? 4.5554+-0.0475 ? getter-no-activation 6.3225+-0.0364 6.2810+-0.0410 getter-prototype 13.9897+-0.1900 ? 14.1588+-0.4235 ? might be 1.0121x slower getter-richards-try-catch 1856.7735+-54.3556 1799.2766+-60.9008 might be 1.0320x faster getter-richards 124.7777+-2.7445 124.7100+-1.2451 getter 6.9646+-0.0373 ? 7.0098+-0.0140 ? global-object-access-with-mutating-structure 7.8669+-0.1385 ? 7.9810+-0.1031 ? might be 1.0145x slower global-var-const-infer-fire-from-opt 1.1701+-0.0188 ? 1.1826+-0.0252 ? might be 1.0107x slower global-var-const-infer 1.0398+-0.0097 ? 1.0477+-0.0110 ? hard-overflow-check-equal 51.6958+-0.5245 51.4435+-0.3018 hard-overflow-check 51.0168+-0.0836 50.9966+-0.1417 HashMap-put-get-iterate-keys 32.6160+-0.2056 32.4432+-0.2519 HashMap-put-get-iterate 32.3198+-0.2830 32.1245+-0.5062 HashMap-string-put-get-iterate 34.4770+-0.5328 ? 34.7271+-0.4656 ? hoist-make-rope 14.0040+-1.0939 13.4420+-0.7762 might be 1.0418x faster hoist-poly-check-structure-effectful-loop 5.6544+-0.0255 ? 5.6994+-0.1064 ? hoist-poly-check-structure 4.2924+-0.0151 4.2805+-0.0117 imul-double-only 10.1556+-0.5690 ? 10.5302+-0.7817 ? might be 1.0369x slower imul-int-only 12.9854+-0.0801 ? 13.0387+-0.0674 ? imul-mixed 10.1923+-0.0921 10.1434+-0.0848 in-four-cases 30.3595+-0.1533 ? 30.5879+-0.3466 ? in-one-case-false 14.8798+-0.0225 14.8780+-0.0299 in-one-case-true 14.8734+-0.0503 ? 14.8863+-0.0365 ? in-two-cases 16.0429+-0.0375 ? 16.0656+-0.0493 ? indexed-properties-in-objects 3.8774+-0.0358 3.8638+-0.0195 infer-closure-const-then-mov-no-inline 5.3935+-0.0306 ^ 5.2754+-0.0149 ^ definitely 1.0224x faster infer-closure-const-then-mov 24.8385+-0.4711 24.6468+-0.3010 infer-closure-const-then-put-to-scope-no-inline 17.6757+-0.0174 ? 17.7660+-0.1735 ? infer-closure-const-then-put-to-scope 30.9547+-0.2947 30.5397+-0.7284 might be 1.0136x faster infer-closure-const-then-reenter-no-inline 76.4373+-0.1791 76.4079+-0.0813 infer-closure-const-then-reenter 31.3224+-0.4680 ? 31.4838+-0.1849 ? infer-constant-global-property 4.6881+-0.0162 ? 4.7290+-0.0382 ? infer-constant-property 3.5950+-0.0410 ? 3.5982+-0.0271 ? infer-one-time-closure-ten-vars 13.4149+-0.3159 ? 13.4872+-0.3516 ? infer-one-time-closure-two-vars 13.0015+-0.2797 12.8218+-0.1699 might be 1.0140x faster infer-one-time-closure 12.8049+-0.0298 ? 12.8207+-0.0621 ? infer-one-time-deep-closure 21.0437+-0.3197 20.8588+-0.1900 inline-arguments-access 5.2129+-0.1578 5.1299+-0.0644 might be 1.0162x faster inline-arguments-aliased-access 5.2242+-0.1564 ? 5.2301+-0.1165 ? inline-arguments-local-escape 5.1837+-0.0360 ? 5.2380+-0.1274 ? might be 1.0105x slower inline-get-scoped-var 6.1866+-0.1032 6.1549+-0.0283 inlined-put-by-id-transition 13.0531+-0.1596 13.0457+-0.0637 inlined-put-by-val-with-string-transition 63.3443+-0.2408 ! 64.2687+-0.6502 ! definitely 1.0146x slower inlined-put-by-val-with-symbol-transition 64.2622+-0.6793 63.9568+-0.4055 int-or-other-abs-then-get-by-val 6.1747+-0.0807 6.1513+-0.0102 int-or-other-abs-zero-then-get-by-val 23.2270+-0.6690 22.9088+-0.3377 might be 1.0139x faster int-or-other-add-then-get-by-val 6.0398+-0.0302 ? 6.0794+-0.0411 ? int-or-other-add 7.2456+-0.3013 7.0909+-0.0731 might be 1.0218x faster int-or-other-div-then-get-by-val 5.3155+-0.0073 ? 5.3452+-0.0551 ? int-or-other-max-then-get-by-val 5.5203+-0.0908 5.4668+-0.0202 int-or-other-min-then-get-by-val 5.5800+-0.0505 5.5340+-0.0861 int-or-other-mod-then-get-by-val 5.0626+-0.0256 ? 5.1131+-0.0773 ? int-or-other-mul-then-get-by-val 5.2667+-0.2918 5.2078+-0.1133 might be 1.0113x faster int-or-other-neg-then-get-by-val 5.9263+-0.0255 ? 6.0001+-0.2106 ? might be 1.0125x slower int-or-other-neg-zero-then-get-by-val 22.6433+-0.0223 ? 22.8769+-0.5774 ? might be 1.0103x slower int-or-other-sub-then-get-by-val 6.0096+-0.0201 ? 6.1768+-0.4171 ? might be 1.0278x slower int-or-other-sub 4.7269+-0.0700 ? 4.7401+-0.0535 ? int-overflow-local 5.8114+-0.0243 ? 5.8167+-0.0310 ? Int16Array-alloc-long-lived 62.0482+-0.4430 61.7727+-0.4723 Int16Array-bubble-sort-with-byteLength 33.8951+-0.0413 ? 33.9199+-0.0357 ? Int16Array-bubble-sort 32.3146+-0.3832 ? 32.6791+-0.6647 ? might be 1.0113x slower Int16Array-load-int-mul 2.1502+-0.0209 2.1461+-0.0113 Int16Array-to-Int32Array-set 65.5513+-0.1064 ! 66.9551+-1.0596 ! definitely 1.0214x slower Int32Array-alloc-large 23.5077+-0.7130 23.1040+-0.3614 might be 1.0175x faster Int32Array-alloc-long-lived 69.5801+-0.7921 69.3700+-0.6409 Int32Array-alloc 3.3979+-0.0467 ? 3.4143+-0.0305 ? Int32Array-Int8Array-view-alloc 9.1526+-0.3226 9.0344+-0.1482 might be 1.0131x faster int52-spill 6.9506+-0.0303 ? 7.0212+-0.0408 ? might be 1.0102x slower Int8Array-alloc-long-lived 55.0830+-0.4828 ? 55.2060+-0.3125 ? Int8Array-load-with-byteLength 4.4280+-0.0191 ? 4.4498+-0.0326 ? Int8Array-load 4.4645+-0.0530 4.4506+-0.0156 integer-divide 15.3066+-0.1551 15.2400+-0.0687 integer-modulo 2.6725+-0.0171 ? 2.6794+-0.0286 ? is-boolean-fold-tricky 5.5119+-0.0371 ? 5.5133+-0.0176 ? is-boolean-fold 3.8093+-0.1570 3.7730+-0.0435 is-function-fold-tricky-internal-function 15.1616+-0.0364 15.1263+-0.1508 is-function-fold-tricky 5.6551+-0.0173 ? 5.6635+-0.0332 ? is-function-fold 3.7857+-0.0274 ? 3.8910+-0.1526 ? might be 1.0278x slower is-number-fold-tricky 5.5328+-0.0585 5.5122+-0.0224 is-number-fold 3.7780+-0.0368 ? 3.7978+-0.0343 ? is-object-or-null-fold-functions 3.8969+-0.0306 ? 3.9042+-0.0311 ? is-object-or-null-fold-less-tricky 5.6267+-0.0195 5.6249+-0.0160 is-object-or-null-fold-tricky 7.6111+-0.0067 ? 7.6181+-0.0201 ? is-object-or-null-fold 3.8118+-0.0329 ? 3.8647+-0.0369 ? might be 1.0139x slower is-object-or-null-trickier-function 5.7387+-0.0327 ? 5.7529+-0.0192 ? is-object-or-null-trickier-internal-function 15.6639+-0.0592 ^ 15.4644+-0.0290 ^ definitely 1.0129x faster is-object-or-null-tricky-function 5.7137+-0.0620 5.6886+-0.0168 is-object-or-null-tricky-internal-function 11.6307+-0.0355 ? 11.7025+-0.1364 ? is-string-fold-tricky 5.5241+-0.0257 5.5056+-0.0237 is-string-fold 3.7583+-0.0393 ? 3.7601+-0.0331 ? is-undefined-fold-tricky 4.5741+-0.0264 ? 4.5911+-0.0320 ? is-undefined-fold 3.7713+-0.0191 3.7610+-0.0358 JSONP-negative-0 0.4697+-0.0139 ? 0.4730+-0.0177 ? large-int-captured 5.7663+-0.1180 ? 5.7776+-0.1061 ? large-int-neg 20.8974+-0.2739 ? 21.1514+-0.4169 ? might be 1.0122x slower large-int 18.7507+-0.4697 ? 18.8909+-0.6496 ? load-varargs-elimination 30.3550+-0.1425 ? 30.4761+-0.6227 ? logical-not-weird-types 4.5492+-0.0341 ? 4.5617+-0.0421 ? logical-not 6.2519+-0.0333 6.2330+-0.0223 lots-of-fields 15.5017+-0.2285 ? 15.6893+-0.2443 ? might be 1.0121x slower make-indexed-storage 3.8999+-0.1890 3.8551+-0.2423 might be 1.0116x faster make-rope-cse 4.7989+-0.1870 4.7893+-0.1253 marsaglia-larger-ints 49.0079+-0.1468 48.9558+-0.5654 marsaglia-osr-entry 30.3190+-0.2560 30.1720+-0.2764 math-with-out-of-bounds-array-values 32.3479+-0.0783 ? 33.0661+-0.8934 ? might be 1.0222x slower max-boolean 3.3234+-0.0237 3.3083+-0.0205 method-on-number 23.0535+-0.1237 ? 23.1528+-0.1567 ? min-boolean 3.3259+-0.0252 ? 3.3350+-0.0253 ? minus-boolean-double 4.2089+-0.0227 ? 4.2205+-0.0298 ? minus-boolean 3.1604+-0.0216 3.1340+-0.0180 misc-strict-eq 46.1942+-1.2908 46.1066+-0.9949 mod-boolean-double 14.1957+-0.0235 ? 14.2286+-0.0700 ? mod-boolean 10.1890+-0.0375 ? 10.1983+-0.0179 ? mul-boolean-double 4.8908+-0.0159 ? 4.8969+-0.0211 ? mul-boolean 3.8256+-0.0336 ? 3.8337+-0.0333 ? neg-boolean 4.2029+-0.0202 ? 4.2231+-0.0125 ? negative-zero-divide 0.6098+-0.0156 0.6073+-0.0085 negative-zero-modulo 0.6016+-0.0090 0.5997+-0.0140 negative-zero-negate 0.5951+-0.0118 0.5723+-0.0195 might be 1.0398x faster nested-function-parsing 66.1806+-0.6127 ? 66.8495+-0.7212 ? might be 1.0101x slower new-array-buffer-dead 126.4521+-0.4028 ? 127.7274+-2.6284 ? might be 1.0101x slower new-array-buffer-push 8.4278+-0.1918 8.3834+-0.1417 new-array-dead 24.0793+-0.6772 ? 24.2290+-0.3362 ? new-array-push 5.1333+-0.3651 5.0118+-0.3099 might be 1.0242x faster no-inline-constructor 48.2066+-0.4071 ? 48.2497+-0.3502 ? number-test 4.1570+-0.0433 ? 4.1679+-0.0305 ? object-closure-call 6.9611+-0.0260 ? 7.0278+-0.1021 ? object-get-own-property-symbols-on-large-array 5.0439+-0.0841 5.0230+-0.0890 object-test 3.8542+-0.0249 ? 3.8983+-0.0515 ? might be 1.0114x slower obvious-sink-pathology-taken 147.2171+-0.4824 ? 147.3936+-0.3548 ? obvious-sink-pathology 48.4109+-1.2648 47.2630+-0.3798 might be 1.0243x faster obviously-elidable-new-object 42.5029+-0.4969 42.3176+-0.2107 plus-boolean-arith 3.3719+-0.0189 ? 3.3982+-0.0357 ? plus-boolean-double 4.2336+-0.0109 4.2302+-0.0344 plus-boolean 3.2150+-0.0190 3.2082+-0.0244 poly-chain-access-different-prototypes-simple 3.4883+-0.0149 ? 3.4960+-0.0170 ? poly-chain-access-different-prototypes 3.5261+-0.0178 ? 3.5311+-0.0129 ? poly-chain-access-simpler 3.4964+-0.0298 ? 3.4968+-0.0216 ? poly-chain-access 3.5930+-0.2091 3.4789+-0.0135 might be 1.0328x faster poly-stricteq 85.3781+-0.1439 ^ 84.8024+-0.0402 ^ definitely 1.0068x faster polymorphic-array-call 1.9637+-0.0855 1.9196+-0.0444 might be 1.0230x faster polymorphic-get-by-id 4.5781+-0.2795 4.4572+-0.0139 might be 1.0271x faster polymorphic-put-by-id 47.8955+-0.9574 47.7018+-1.2013 polymorphic-put-by-val-with-string 48.2575+-0.1291 48.1401+-0.0890 polymorphic-put-by-val-with-symbol 48.1048+-0.1611 48.0009+-0.1271 polymorphic-structure 18.0145+-0.2035 17.9283+-0.0332 polyvariant-monomorphic-get-by-id 11.0250+-0.0192 ? 11.0368+-0.0443 ? proto-getter-access 11.8499+-0.1543 ? 11.8517+-0.1541 ? prototype-access-with-mutating-prototype 7.5888+-0.1629 ? 7.8445+-0.2496 ? might be 1.0337x slower put-by-id-replace-and-transition 11.4785+-0.2929 11.3941+-0.0875 put-by-id-slightly-polymorphic 3.7780+-0.0178 3.7751+-0.0194 put-by-id 14.5816+-0.2941 ? 14.7108+-0.2355 ? put-by-val-direct 0.6218+-0.0085 ? 0.6381+-0.0239 ? might be 1.0262x slower put-by-val-large-index-blank-indexing-type 7.2172+-0.0705 ? 7.3235+-0.0941 ? might be 1.0147x slower put-by-val-machine-int 3.4830+-0.0552 3.4661+-0.0316 put-by-val-with-string-replace-and-transition 16.4955+-0.1470 16.4267+-0.1676 put-by-val-with-string-slightly-polymorphic 4.9906+-0.0194 ? 4.9942+-0.0223 ? put-by-val-with-string 15.4738+-0.2959 ? 15.5500+-0.5163 ? put-by-val-with-symbol-replace-and-transition 17.8430+-0.1608 ? 17.8630+-0.2150 ? put-by-val-with-symbol-slightly-polymorphic 5.4245+-0.0983 5.3969+-0.0274 put-by-val-with-symbol 15.4625+-0.1829 ? 15.5842+-0.1988 ? rare-osr-exit-on-local 20.3449+-0.5166 20.1108+-0.0883 might be 1.0116x faster raytrace-with-empty-try-catch 9.0645+-0.0769 ? 9.4269+-0.3479 ? might be 1.0400x slower raytrace-with-try-catch 16.1974+-0.0928 ! 16.7918+-0.1468 ! definitely 1.0367x slower register-pressure-from-osr 26.7919+-0.0664 26.7467+-0.0362 repeat-multi-get-by-offset 31.3455+-0.2489 ? 31.3967+-0.2630 ? richards-empty-try-catch 113.0495+-0.2989 ^ 84.1128+-0.5069 ^ definitely 1.3440x faster richards-try-catch 367.6120+-0.9552 ^ 347.9143+-0.7705 ^ definitely 1.0566x faster setter-prototype 11.2856+-0.1366 11.1988+-0.1101 setter 6.9842+-0.0367 ! 7.5522+-0.0315 ! definitely 1.0813x slower simple-activation-demo 34.2698+-0.0445 ! 34.5722+-0.1346 ! definitely 1.0088x slower simple-getter-access 15.0856+-0.1264 15.0750+-0.2182 simple-poly-call-nested 10.9037+-0.0399 ? 10.9105+-0.0208 ? simple-poly-call 1.8523+-0.0123 ? 1.8658+-0.0406 ? sin-boolean 27.4172+-1.9574 ? 27.6710+-2.0016 ? singleton-scope 87.7592+-0.1571 87.7256+-0.0899 sink-function 14.3578+-0.3682 14.3050+-0.2608 sink-huge-activation 23.7119+-0.7290 ? 23.8169+-0.7180 ? sinkable-new-object-dag 80.7602+-1.0669 80.1509+-0.9389 sinkable-new-object-taken 64.9570+-0.9753 64.5273+-0.5173 sinkable-new-object 47.5326+-0.4805 47.3303+-0.3615 slow-array-profile-convergence 4.0960+-0.0319 4.0625+-0.0944 slow-convergence 3.9076+-0.0240 ? 3.9310+-0.0628 ? slow-ternaries 25.9367+-1.8601 24.0780+-0.6306 might be 1.0772x faster sorting-benchmark 26.4254+-0.2587 26.2175+-0.2076 sparse-conditional 1.7572+-0.0197 ? 1.7801+-0.0262 ? might be 1.0130x slower splice-to-remove 19.8411+-0.2623 ? 20.3963+-0.7191 ? might be 1.0280x slower string-char-code-at 21.8926+-0.1747 ? 22.0714+-0.1215 ? string-concat-object 2.8061+-0.0315 ? 2.8091+-0.0266 ? string-concat-pair-object 2.7487+-0.1042 2.7467+-0.0579 string-concat-pair-simple 13.9155+-0.1368 13.7682+-0.2026 might be 1.0107x faster string-concat-simple 14.3997+-0.1348 ? 14.4180+-0.2095 ? string-cons-repeat 9.4916+-0.0914 ? 9.5541+-0.1348 ? string-cons-tower 9.6812+-0.1287 9.5921+-0.0619 string-equality 26.3931+-0.2201 ^ 26.1519+-0.0168 ^ definitely 1.0092x faster string-get-by-val-big-char 9.4265+-0.1205 ? 9.6035+-0.4154 ? might be 1.0188x slower string-get-by-val-out-of-bounds-insane 5.0723+-0.0291 ^ 4.9451+-0.0609 ^ definitely 1.0257x faster string-get-by-val-out-of-bounds 6.7534+-0.0182 ? 6.7908+-0.1770 ? string-get-by-val 4.4754+-0.0157 ^ 4.4182+-0.0278 ^ definitely 1.0130x faster string-hash 2.7596+-0.0245 ! 2.8600+-0.0201 ! definitely 1.0364x slower string-long-ident-equality 21.6338+-0.5646 21.3616+-0.0201 might be 1.0127x faster string-out-of-bounds 17.7958+-0.3309 17.6335+-0.1310 string-repeat-arith 42.7820+-0.0756 ^ 41.9874+-0.3393 ^ definitely 1.0189x faster string-sub 55.4495+-0.5206 ! 57.6474+-0.3389 ! definitely 1.0396x slower string-test 4.0044+-0.0505 3.9931+-0.0249 string-var-equality 48.2370+-0.4813 48.0645+-0.1804 structure-hoist-over-transitions 3.1841+-0.0306 ? 3.2639+-0.2128 ? might be 1.0251x slower substring-concat-weird 52.3875+-0.2782 ? 53.1224+-0.9411 ? might be 1.0140x slower substring-concat 57.8740+-0.5279 ? 57.9377+-0.7254 ? substring 64.3088+-0.6575 ? 64.4199+-0.6815 ? switch-char-constant 3.6063+-0.0202 ? 3.6458+-0.0862 ? might be 1.0110x slower switch-char 7.8962+-0.0241 7.8239+-0.1148 switch-constant 10.0418+-0.1114 10.0325+-0.0557 switch-string-basic-big-var 26.2134+-0.2645 25.9732+-0.1420 switch-string-basic-big 23.0507+-0.1689 22.8819+-0.4930 switch-string-basic-var 21.2726+-0.1254 ? 21.2735+-0.1566 ? switch-string-basic 19.6991+-0.0633 19.6801+-0.0799 switch-string-big-length-tower-var 27.1884+-0.0928 27.1245+-0.0329 switch-string-length-tower-var 20.7887+-0.0413 ? 20.8838+-0.1592 ? switch-string-length-tower 17.7304+-0.1589 ? 17.9085+-0.4269 ? might be 1.0100x slower switch-string-short 17.9003+-0.4407 17.6361+-0.0411 might be 1.0150x faster switch 14.6163+-0.1979 ? 14.6401+-0.1343 ? tear-off-arguments-simple 4.0258+-0.0663 3.9925+-0.0359 tear-off-arguments 5.4697+-0.1217 ? 5.4714+-0.1355 ? temporal-structure 17.0435+-0.1432 ? 17.0510+-0.0782 ? to-int32-boolean 17.8025+-0.0191 ? 17.8228+-0.0356 ? try-catch-get-by-val-cloned-arguments 13.5372+-0.0931 ! 14.6710+-0.5445 ! definitely 1.0837x slower try-catch-get-by-val-direct-arguments 2.9562+-0.0134 ! 3.0598+-0.0896 ! definitely 1.0351x slower try-catch-get-by-val-scoped-arguments 6.0639+-0.0580 ! 6.4113+-0.0431 ! definitely 1.0573x slower typed-array-get-set-by-val-profiling 39.2088+-0.3736 ? 39.4321+-0.4843 ? undefined-property-access 478.5985+-6.0009 475.7620+-0.8805 undefined-test 4.0956+-0.0140 ? 4.1058+-0.0282 ? unprofiled-licm 17.5083+-0.1304 17.2962+-0.3002 might be 1.0123x faster v8-raytrace-with-empty-try-catch 75.6069+-0.5258 ! 81.1628+-0.7679 ! definitely 1.0735x slower v8-raytrace-with-try-catch 108.2109+-0.4881 ? 109.2809+-0.5843 ? varargs-call 19.1720+-0.1382 19.1426+-0.1269 varargs-construct-inline 33.4982+-0.1495 ? 33.4997+-0.2641 ? varargs-construct 28.3209+-0.5075 28.1606+-0.2136 varargs-inline 13.0551+-0.0453 13.0341+-0.0614 varargs-strict-mode 14.6184+-0.2531 14.5505+-0.0515 varargs 14.3366+-0.0595 ? 14.3532+-0.0812 ? weird-inlining-const-prop 3.0874+-0.1889 3.0166+-0.0291 might be 1.0235x faster <geometric> 11.9098+-0.0163 ? 11.9201+-0.0069 ? might be 1.0009x slower og tryCatchFTL CompressionBench: huffman 77.7389+-0.2092 77.4119+-0.5537 arithmetic-simple 459.2286+-2.4190 459.0173+-2.1644 arithmetic-precise 372.5100+-2.4770 371.9389+-2.3667 arithmetic-complex-precise 369.0174+-3.6257 ? 371.5642+-2.9929 ? arithmetic-precise-order-0 473.1260+-2.6836 ? 475.1393+-2.4583 ? arithmetic-precise-order-1 438.9898+-3.2065 ? 443.3207+-5.1113 ? arithmetic-precise-order-2 524.1101+-1.7310 ? 528.2253+-4.8734 ? arithmetic-simple-order-1 527.2271+-2.9088 ? 529.6829+-2.4231 ? arithmetic-simple-order-2 603.3105+-1.3987 601.8619+-2.0701 lz-string 396.8121+-3.6034 392.1369+-4.0209 might be 1.0119x faster <geometric> 382.7134+-0.8489 ? 383.2058+-1.0862 ? might be 1.0013x slower og tryCatchFTL Geomean of preferred means: <scaled-result> 51.8039+-0.0617 ? 51.9026+-0.0614 ? might be 1.0019x slower
Filip Pizlo
Comment 10
2015-11-04 14:40:24 PST
(In reply to
comment #9
)
> perf numbers: > Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, > JSRegress, and CompressionBench on Saams-Mac-Pro (MacPro6,1). > > VMs tested: > "og" at /Volumes/Data/WK/os-a/OpenSource/WebKitBuild/Release/jsc (
r191931
)
Does this have the try/catch patch? Note that run-jsc-benchmarks isn't smart enough to clear environment between runs, so this will see JSC_useFTLTryCatch=1 for some subset of runs. You can avoid this by explicitly giving it JSC_useFTLTryCatch=0.
> "tryCatchFTL" at /Volumes/Data/WK/os-b/OpenSource/WebKitBuild/Release/jsc > (
r191931
) > export JSC_useFTLTryCatch=1 > > Collected 8 samples per benchmark/VM, with 8 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. > > og > tryCatchFTL > SunSpider: > 3d-cube 7.7318+-0.2891 ? > 7.7646+-0.3291 ? > 3d-morph 7.6685+-0.1132 > 7.5786+-0.0166 might be 1.0119x faster > 3d-raytrace 8.7827+-0.0470 ! > 8.9757+-0.1378 ! definitely 1.0220x slower > access-binary-trees 3.1983+-0.0861 > 3.1181+-0.0286 might be 1.0257x faster > access-fannkuch 8.5316+-0.0204 > 8.5183+-0.0283 > access-nbody 4.0146+-0.0128 ! > 4.0625+-0.0229 ! definitely 1.0119x slower > access-nsieve 4.6482+-0.0631 ? > 4.7240+-0.1315 ? might be 1.0163x slower > bitops-3bit-bits-in-byte 1.7445+-0.0116 > 1.7252+-0.0289 might be 1.0112x faster > bitops-bits-in-byte 4.7152+-0.0443 > 4.6540+-0.0510 might be 1.0131x faster > bitops-bitwise-and 2.9341+-0.0209 ? > 2.9499+-0.0345 ? > bitops-nsieve-bits 4.2878+-0.0597 ? > 4.3193+-0.0485 ? > controlflow-recursive 3.3498+-0.0420 ? > 3.3818+-0.0887 ? > crypto-aes 6.4524+-0.0433 ? > 6.5012+-0.0659 ? > crypto-md5 3.7576+-0.0690 > 3.7352+-0.0274 > crypto-sha1 3.4822+-0.0216 ? > 3.4908+-0.0269 ? > date-format-tofte 13.1756+-0.1440 > 12.9432+-0.0935 might be 1.0180x faster > date-format-xparb 7.5453+-0.0446 ? > 7.8588+-0.4768 ? might be 1.0415x slower > math-cordic 4.1428+-0.0180 ! > 4.2498+-0.0103 ! definitely 1.0258x slower > math-partial-sums 7.6096+-0.0744 ? > 7.6150+-0.0378 ? > math-spectral-norm 2.8456+-0.0163 > 2.8391+-0.0195 > regexp-dna 9.5471+-0.0929 > 9.4803+-0.0436 > string-base64 6.4017+-0.0415 > 6.3494+-0.0387 > string-fasta 8.4615+-0.0677 ? > 8.5814+-0.0732 ? might be 1.0142x slower > string-tagcloud 12.0362+-0.0682 ? > 12.1867+-0.3330 ? might be 1.0125x slower > string-unpack-code 26.6557+-0.2382 ! > 27.5564+-0.2432 ! definitely 1.0338x slower > string-validate-input 6.3377+-0.0464 > 6.2983+-0.0812 > > <arithmetic> 6.9253+-0.0287 ? > 6.9791+-0.0332 ? might be 1.0078x slower
These almost-1% changes in SunSpider are often worth worrying about a bit.
> > og > tryCatchFTL > LongSpider: > 3d-cube 1188.8931+-9.5461 > 1187.4914+-11.3300 > 3d-morph 2083.0633+-1.2383 > 2082.9016+-1.3679 > 3d-raytrace 917.3685+-2.9928 ? > 925.2569+-12.5572 ? > access-binary-trees 1198.9734+-3.9164 ? > 1199.2009+-3.2474 ? > access-fannkuch 488.3999+-3.9992 ? > 492.0440+-5.3081 ? > access-nbody 802.4822+-0.1273 ? > 803.0908+-0.5761 ? > access-nsieve 582.9100+-3.6242 > 580.0134+-2.9943 > bitops-3bit-bits-in-byte 50.8018+-0.0778 ? > 51.0549+-0.4265 ? > bitops-bits-in-byte 135.2148+-2.1492 ? > 135.6178+-1.1939 ? > bitops-nsieve-bits 587.4410+-2.6615 ? > 589.9493+-0.7425 ? > controlflow-recursive 649.5424+-0.3307 ? > 649.8575+-0.7843 ? > crypto-aes 839.0770+-2.8150 ? > 843.0469+-4.8519 ? > crypto-md5 731.6777+-7.2102 ? > 742.9239+-19.8971 ? might be 1.0154x slower > crypto-sha1 975.5347+-5.6638 > 973.2252+-7.1624 > date-format-tofte 1044.2230+-11.6837 > 1020.2409+-20.7328 might be 1.0235x faster > date-format-xparb 1058.3864+-25.7146 ? > 1072.6612+-14.3662 ? might be 1.0135x slower > hash-map 225.3840+-1.7498 ^ > 219.4016+-3.2056 ^ definitely 1.0273x faster > math-cordic 737.2517+-1.0281 ? > 737.3510+-1.1992 ? > math-partial-sums 735.8625+-3.3264 ? > 738.0363+-1.7039 ? > math-spectral-norm 769.3866+-1.1700 ? > 770.1925+-2.6041 ? > string-base64 538.6395+-1.2272 ? > 539.2767+-1.3810 ? > string-fasta 548.1288+-2.6840 ? > 548.3836+-3.2819 ? > string-tagcloud 265.6915+-4.6541 ? > 267.5320+-0.9542 ? > > <geometric> 600.2040+-1.0248 ? > 600.6379+-0.9728 ? might be 1.0007x slower > > og > tryCatchFTL > V8Spider: > crypto 71.3041+-0.2318 > 71.0136+-0.2334 > deltablue 89.8814+-2.1664 > 89.3356+-2.0044 > earley-boyer 60.3759+-0.3076 ? > 60.5201+-0.2591 ? > raytrace 41.5776+-0.5643 > 41.5698+-0.6973 > regexp 98.2870+-0.3354 ? > 98.5057+-0.5341 ? > richards 73.4603+-0.3084 > 73.4511+-0.3076 > splay 49.2939+-0.8303 ? > 49.3256+-0.4574 ? > > <geometric> 66.4527+-0.3124 > 66.4037+-0.2446 might be 1.0007x faster > > og > tryCatchFTL > Octane: > encrypt 0.24868+-0.00449 > 0.24730+-0.00317 > decrypt 4.43595+-0.00982 ? > 4.44383+-0.02129 ? > deltablue x2 0.20500+-0.00132 > 0.20477+-0.00151 > earley 0.45570+-0.00212 ? > 0.45650+-0.00072 ? > boyer 6.86504+-0.02925 ? > 6.87532+-0.02627 ? > navier-stokes x2 6.90602+-0.00195 ? > 6.91146+-0.00796 ? > raytrace x2 1.32399+-0.00776 > 1.31548+-0.00246 > richards x2 0.14132+-0.00044 > 0.14124+-0.00050 > splay x2 0.48201+-0.00215 ? > 0.48402+-0.00298 ? > regexp x2 36.60402+-0.04381 > 36.57678+-0.14806 > pdfjs x2 56.05452+-0.15730 ? > 56.34902+-0.27651 ? > mandreel x2 65.60110+-0.40834 > 65.58532+-0.43011 > gbemu x2 54.22581+-0.52596 ? > 59.66801+-5.56773 ? might be 1.1004x slower
This could be a problem, but I think I remember the issue: there is one function that has try/catch and we compile it very badly with our optimizing compilers. So, tiering up is hurting us. Probably unavoidable, and probably shouldn't block landing. We can always optimize that function later.
> closure 0.99907+-0.00316 ! > 1.01165+-0.00666 ! definitely 1.0126x slower > jquery 12.95375+-0.05028 ! > 13.11738+-0.03357 ! definitely 1.0126x slower
Looks like you legitimately regressed load times.
> box2d x2 16.27456+-0.06560 ? > 16.30702+-0.04553 ? > zlib x2 525.38317+-17.48066 ? > 530.76764+-16.74861 ? might be 1.0102x slower > typescript x2 1138.17670+-9.50976 ? > 1139.33826+-4.35283 ? > > <geometric> 8.29485+-0.02249 ? > 8.36000+-0.05506 ? might be 1.0079x slower > > og > tryCatchFTL > Kraken: > ai-astar 225.313+-2.074 > 222.881+-2.281 might be 1.0109x faster > audio-beat-detection 73.704+-0.615 ? > 73.806+-0.428 ? > audio-dft 142.506+-0.299 > 142.504+-0.315 > audio-fft 54.915+-0.192 ? > 55.215+-0.830 ? > audio-oscillator 89.005+-0.096 ? > 89.144+-0.100 ? > imaging-darkroom 93.997+-0.065 ^ > 93.898+-0.009 ^ definitely 1.0011x faster > imaging-desaturate 86.545+-0.472 ^ > 84.000+-0.528 ^ definitely 1.0303x faster > imaging-gaussian-blur 152.696+-5.794 > 149.450+-1.171 might be 1.0217x faster > json-parse-financial 62.988+-0.275 ? > 63.491+-0.336 ? > json-stringify-tinderbox 38.570+-0.062 ! > 38.979+-0.242 ! definitely 1.0106x slower > stanford-crypto-aes 64.545+-0.928 ? > 65.250+-0.637 ? might be 1.0109x slower > stanford-crypto-ccm 58.422+-1.374 ? > 60.002+-1.966 ? might be 1.0270x slower > stanford-crypto-pbkdf2 142.699+-1.068 > 140.808+-0.997 might be 1.0134x faster > stanford-crypto-sha256-iterative 56.398+-0.114 ! > 57.012+-0.403 ! definitely 1.0109x slower > > <arithmetic> 95.879+-0.511 > 95.460+-0.231 might be 1.0044x faster
Based on this result, I wouldn't worry about any individual Kraken tests.
> > og > tryCatchFTL > JSRegress: > abc-forward-loop-equal 63.3475+-0.4160 > 63.2240+-0.2044 > abc-postfix-backward-loop 62.8633+-0.2640 ? > 63.0130+-0.4050 ? > abc-simple-backward-loop 62.4372+-0.4001 ? > 62.6392+-0.4136 ? > abc-simple-forward-loop 62.5321+-0.2598 > 62.2620+-0.0832 > abc-skippy-loop 43.0899+-0.2394 > 43.0164+-0.1408 > abs-boolean 3.5862+-0.0996 > 3.5779+-0.0297 > adapt-to-double-divide 21.9794+-0.3256 ? > 21.9898+-0.3125 ? > aliased-arguments-getbyval 1.6366+-0.0238 ? > 1.6631+-0.0501 ? might be 1.0162x slower > allocate-big-object 3.1045+-0.0752 ? > 3.1634+-0.0961 ? might be 1.0190x slower > arguments-named-and-reflective 15.0502+-0.3219 > 14.9253+-0.2813 > arguments-out-of-bounds 16.5513+-0.0896 ? > 16.6654+-0.3284 ? > arguments-strict-mode 14.9821+-0.4023 > 14.7100+-0.6954 might be 1.0185x faster > arguments 12.3274+-0.1512 ? > 12.3915+-0.2026 ? > arity-mismatch-inlining 1.3090+-0.0185 ? > 1.3254+-0.0335 ? might be 1.0126x slower > array-access-polymorphic-structure 10.1241+-0.0399 ? > 10.1441+-0.0947 ? > array-nonarray-polymorhpic-access 40.3380+-0.2734 > 40.3296+-0.8212 > array-prototype-every 114.0440+-2.1082 > 111.0172+-0.9801 might be 1.0273x faster > array-prototype-forEach 111.7209+-2.2576 ? > 113.1471+-3.2510 ? might be 1.0128x slower > array-prototype-map 121.9940+-1.4139 > 121.7484+-1.5580 > array-prototype-reduce 107.4395+-0.4856 ? > 109.5369+-3.4575 ? might be 1.0195x slower > array-prototype-reduceRight 107.0463+-0.9081 ? > 108.6180+-1.7984 ? might be 1.0147x slower > array-prototype-some 113.1937+-2.3106 > 111.3853+-1.0041 might be 1.0162x faster > array-splice-contiguous 37.6819+-0.4250 > 37.5627+-0.2990 > array-with-double-add 5.6631+-0.0165 ! > 5.6981+-0.0147 ! definitely 1.0062x slower > array-with-double-increment 4.5035+-0.1151 > 4.3904+-0.0407 might be 1.0258x faster > array-with-double-mul-add 6.7439+-0.0295 ! > 6.8033+-0.0154 ! definitely 1.0088x slower > array-with-double-sum 4.3987+-0.0319 ? > 4.4326+-0.1039 ? > array-with-int32-add-sub 9.3107+-0.0378 ? > 9.3123+-0.0343 ? > array-with-int32-or-double-sum 4.4683+-0.0294 > 4.4663+-0.0158 > ArrayBuffer-DataView-alloc-large-long-lived > 41.8414+-0.7454 > 41.0974+-0.6262 might be 1.0181x faster > ArrayBuffer-DataView-alloc-long-lived 19.2403+-0.5667 ^ > 18.4660+-0.1250 ^ definitely 1.0419x faster > ArrayBuffer-Int32Array-byteOffset 5.0944+-0.0515 > 5.0836+-0.0223 > ArrayBuffer-Int8Array-alloc-large-long-lived > 42.2101+-1.0536 > 41.7061+-0.3487 might be 1.0121x faster > ArrayBuffer-Int8Array-alloc-long-lived-buffer > 30.8179+-1.4365 > 29.5974+-0.5716 might be 1.0412x faster > ArrayBuffer-Int8Array-alloc-long-lived 17.9333+-0.7187 ^ > 16.8913+-0.0931 ^ definitely 1.0617x faster > ArrayBuffer-Int8Array-alloc 15.2933+-0.7130 > 14.5156+-0.2310 might be 1.0536x faster > arrowfunction-call 15.5807+-0.1875 ? > 15.6777+-0.1370 ? > asmjs_bool_bug 11.1322+-0.0324 ? > 11.1454+-0.0500 ? > assign-custom-setter-polymorphic 4.1706+-0.0369 ? > 4.1707+-0.0363 ? > assign-custom-setter 5.9839+-0.0558 ! > 6.1091+-0.0483 ! definitely 1.0209x slower > basic-set 11.0205+-0.2735 ? > 11.0829+-0.1842 ? > big-int-mul 5.1796+-0.0192 > 5.1567+-0.0196 > boolean-test 4.2112+-0.0188 > 4.2067+-0.0333 > branch-fold 5.0700+-0.2137 > 5.0214+-0.0369 > branch-on-string-as-boolean 26.4431+-0.3909 > 26.4022+-0.1342 > by-val-generic 3.3008+-0.0436 ? > 3.3068+-0.0369 ? > call-spread-apply 39.7921+-0.4558 ? > 41.9557+-2.7748 ? might be 1.0544x slower > call-spread-call 32.4424+-0.1999 ! > 34.0822+-0.5237 ! definitely 1.0505x slower > captured-assignments 0.7687+-0.0260 ? > 0.7710+-0.0099 ? > cast-int-to-double 7.0543+-0.1401 > 7.0345+-0.0750 > cell-argument 9.3176+-0.0657 > 9.1951+-0.2594 might be 1.0133x faster > cfg-simplify 3.7974+-0.0225 > 3.7856+-0.0249 > chain-getter-access 12.0040+-0.1887 > 11.9343+-0.2982 > cmpeq-obj-to-obj-other 12.7351+-0.0148 ? > 12.7800+-0.0463 ? > constant-test 6.4984+-0.0262 ? > 6.5008+-0.0217 ? > create-lots-of-functions 13.2535+-0.1253 ? > 13.5204+-0.2569 ? might be 1.0201x slower > cse-new-array-buffer 3.0907+-0.0333 ? > 3.1250+-0.0955 ? might be 1.0111x slower > cse-new-array 3.1567+-0.0460 ? > 3.1840+-0.1885 ? > custom-setter-getter-as-put-get-by-id 0.8945+-0.0926 > 0.8759+-0.0327 might be 1.0213x faster > DataView-custom-properties 49.8279+-0.6043 ^ > 48.3618+-0.6240 ^ definitely 1.0303x faster > delay-tear-off-arguments-strictmode 18.5628+-0.2356 ? > 19.0715+-0.4846 ? might be 1.0274x slower > deltablue-varargs 287.4734+-2.1344 ? > 290.6596+-1.2205 ? might be 1.0111x slower > destructuring-arguments 236.8381+-1.1515 ? > 239.4278+-1.7604 ? might be 1.0109x slower > destructuring-parameters-overridden-by-function > 0.7963+-0.0139 > 0.7858+-0.0241 might be 1.0134x faster > destructuring-swap 6.7498+-0.0338 ? > 6.7670+-0.0508 ? > direct-arguments-getbyval 1.6193+-0.0196 ? > 1.6400+-0.0270 ? might be 1.0128x slower > div-boolean-double 6.7556+-0.0122 ? > 6.7617+-0.0264 ? > div-boolean 10.2124+-0.0247 ? > 10.2531+-0.1326 ? > double-get-by-val-out-of-bounds 6.0294+-0.0654 ? > 6.1205+-0.1200 ? might be 1.0151x slower > double-pollution-getbyval 11.2878+-0.0238 ? > 11.2947+-0.0185 ? > double-pollution-putbyoffset 5.3757+-0.0609 > 5.3493+-0.0453 > double-real-use 39.8454+-0.0766 ^ > 39.7216+-0.0317 ^ definitely 1.0031x faster > double-to-int32-typed-array-no-inline 3.1541+-0.0256 ? > 3.1846+-0.0194 ? > double-to-int32-typed-array 2.9898+-0.0265 > 2.9820+-0.0649 > double-to-uint32-typed-array-no-inline 3.2617+-0.0186 ? > 3.2979+-0.0270 ? might be 1.0111x slower > double-to-uint32-typed-array 3.0242+-0.0325 ? > 3.0438+-0.0219 ? > elidable-new-object-dag 51.3011+-1.1899 > 50.5162+-0.5381 might be 1.0155x faster > elidable-new-object-roflcopter 47.4789+-1.2456 > 47.1147+-0.2583 > elidable-new-object-then-call 47.0069+-0.3236 ? > 47.5357+-0.5389 ? might be 1.0112x slower > elidable-new-object-tree 56.2869+-1.0259 > 56.2137+-0.8332 > empty-string-plus-int 7.0761+-0.0231 ! > 7.2751+-0.0655 ! definitely 1.0281x slower > emscripten-cube2hash 53.6001+-0.6832 ? > 53.9487+-0.6607 ? > exit-length-on-plain-object 22.1904+-0.1728 > 22.1891+-0.1559 > external-arguments-getbyval 1.8026+-0.0706 > 1.7785+-0.1044 might be 1.0136x faster > external-arguments-putbyval 3.2903+-0.0862 ? > 3.2992+-0.1041 ? > fixed-typed-array-storage-var-index 1.8135+-0.0233 > 1.8081+-0.0228 > fixed-typed-array-storage 1.4031+-0.0179 ? > 1.4143+-0.0241 ? > Float32Array-matrix-mult 6.6340+-0.0231 ! > 6.6963+-0.0268 ! definitely 1.0094x slower > Float32Array-to-Float64Array-set 70.6493+-0.1014 ! > 71.9423+-0.4788 ! definitely 1.0183x slower > Float64Array-alloc-long-lived 85.6441+-0.2201 ? > 86.0509+-0.6267 ? > Float64Array-to-Int16Array-set 89.7905+-1.4839 ^ > 87.8715+-0.1910 ^ definitely 1.0218x faster > fold-double-to-int 18.7237+-0.0625 ? > 18.7568+-0.1217 ? > fold-get-by-id-to-multi-get-by-offset-rare-int > 12.3238+-0.1989 ? > 12.3763+-0.1128 ? > fold-get-by-id-to-multi-get-by-offset 10.6235+-0.1098 ? > 10.6833+-0.0393 ? > fold-multi-get-by-offset-to-get-by-offset > 9.3647+-0.0458 ? > 9.4112+-0.2775 ? > fold-multi-get-by-offset-to-poly-get-by-offset > 9.8616+-0.0534 > 9.8482+-0.1664 > fold-multi-put-by-offset-to-poly-put-by-offset > 11.9640+-0.0675 > 11.8901+-0.2101 > fold-multi-put-by-offset-to-put-by-offset > 11.2238+-0.2140 ? > 11.3748+-0.0530 ? might be 1.0135x slower > fold-multi-put-by-offset-to-replace-or-transition-put-by-offset > 16.1220+-0.5298 > 15.7411+-0.4905 might be 1.0242x faster > fold-put-by-id-to-multi-put-by-offset 13.6990+-0.4216 > 13.4791+-0.4680 might be 1.0163x faster > fold-put-by-val-with-string-to-multi-put-by-offset > 13.3940+-0.4016 ? > 13.4256+-0.2782 ? > fold-put-by-val-with-symbol-to-multi-put-by-offset > 13.3386+-0.3677 ? > 13.5568+-0.2472 ? might be 1.0164x slower > fold-put-structure 8.8964+-0.1045 ? > 8.9079+-0.2235 ? > for-of-iterate-array-entries 15.6947+-0.2514 ? > 15.9901+-0.6257 ? might be 1.0188x slower > for-of-iterate-array-keys 5.3568+-0.1635 > 5.3110+-0.1652 > for-of-iterate-array-values 5.0169+-0.1207 > 4.9803+-0.1505 > fround 24.2715+-0.2516 ? > 24.3354+-0.1045 ? > ftl-library-inlining-dataview 93.0274+-0.8614 ! > 99.9131+-1.3118 ! definitely 1.0740x slower > ftl-library-inlining 147.8894+-6.0173 > 145.8124+-12.3890 might be 1.0142x faster > ftl-object-sub 476.2159+-0.7933 ! > 485.3692+-6.2757 ! definitely 1.0192x slower > function-call 15.5151+-0.0744 > 15.5065+-0.0383 > function-dot-apply 3.0450+-0.0220 ? > 3.0503+-0.0210 ? > function-test 3.9062+-0.1057 > 3.8826+-0.0213 > function-with-eval 126.4147+-0.3327 ? > 126.9628+-0.2279 ? > gcse-poly-get-less-obvious 37.6977+-0.3996 > 37.6294+-0.3703 > gcse-poly-get 38.6885+-0.2604 ? > 38.7752+-0.4515 ? > gcse 5.3550+-0.0169 ? > 5.3710+-0.0275 ? > get-by-id-bimorphic-check-structure-elimination-simple > 3.6319+-0.1250 > 3.5868+-0.0488 might be 1.0126x faster > get-by-id-bimorphic-check-structure-elimination > 7.0211+-0.0145 ? > 7.0369+-0.0226 ? > get-by-id-chain-from-try-block 3.3831+-0.0151 ! > 3.8006+-0.2193 ! definitely 1.1234x slower > get-by-id-check-structure-elimination 6.0628+-0.0296 ? > 6.0722+-0.0373 ? > get-by-id-proto-or-self 26.5507+-1.9474 ? > 27.6998+-2.1387 ? might be 1.0433x slower > get-by-id-quadmorphic-check-structure-elimination-simple > 3.9896+-0.0311 > 3.9857+-0.0148 > get-by-id-self-or-proto 25.8584+-2.2019 > 25.8345+-1.4370 > get-by-val-out-of-bounds 5.8994+-0.0292 ? > 6.0230+-0.1334 ? might be 1.0210x slower > get-by-val-with-string-bimorphic-check-structure-elimination-simple > 3.6126+-0.0724 > 3.5635+-0.0238 might be 1.0138x faster > get-by-val-with-string-bimorphic-check-structure-elimination > 8.9789+-0.0543 > 8.9727+-0.1299 > get-by-val-with-string-chain-from-try-block > 3.4508+-0.0504 ! > 3.8726+-0.1293 ! definitely 1.1222x slower > get-by-val-with-string-check-structure-elimination > 8.2385+-0.0331 ? > 8.4088+-0.3553 ? might be 1.0207x slower > get-by-val-with-string-proto-or-self 26.4005+-1.2542 ? > 27.4069+-1.9019 ? might be 1.0381x slower > get-by-val-with-string-quadmorphic-check-structure-elimination-simple > 4.6544+-0.0988 ? > 4.7969+-0.0759 ? might be 1.0306x slower > get-by-val-with-string-self-or-proto 28.2591+-2.0969 > 26.3063+-1.3100 might be 1.0742x faster > get-by-val-with-symbol-bimorphic-check-structure-elimination-simple > 4.2567+-0.1068 > 4.2361+-0.0786 > get-by-val-with-symbol-bimorphic-check-structure-elimination > 17.5234+-0.0270 ? > 17.5573+-0.1736 ? > get-by-val-with-symbol-chain-from-try-block > 3.4372+-0.0076 ! > 3.7966+-0.0178 ! definitely 1.1046x slower > get-by-val-with-symbol-check-structure-elimination > 16.7152+-0.0596 ? > 16.7858+-0.2490 ? > get-by-val-with-symbol-proto-or-self 27.2650+-1.9350 > 26.2987+-1.3680 might be 1.0367x faster > get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple > 5.6559+-0.0207 ? > 5.6646+-0.0154 ? > get-by-val-with-symbol-self-or-proto 26.5221+-1.1958 > 25.9109+-1.3950 might be 1.0236x faster > get_callee_monomorphic 3.2519+-0.2390 > 3.0885+-0.0884 might be 1.0529x faster > get_callee_polymorphic 4.5540+-0.0461 ? > 4.5554+-0.0475 ? > getter-no-activation 6.3225+-0.0364 > 6.2810+-0.0410 > getter-prototype 13.9897+-0.1900 ? > 14.1588+-0.4235 ? might be 1.0121x slower > getter-richards-try-catch 1856.7735+-54.3556 > 1799.2766+-60.9008 might be 1.0320x faster > getter-richards 124.7777+-2.7445 > 124.7100+-1.2451 > getter 6.9646+-0.0373 ? > 7.0098+-0.0140 ? > global-object-access-with-mutating-structure > 7.8669+-0.1385 ? > 7.9810+-0.1031 ? might be 1.0145x slower > global-var-const-infer-fire-from-opt 1.1701+-0.0188 ? > 1.1826+-0.0252 ? might be 1.0107x slower > global-var-const-infer 1.0398+-0.0097 ? > 1.0477+-0.0110 ? > hard-overflow-check-equal 51.6958+-0.5245 > 51.4435+-0.3018 > hard-overflow-check 51.0168+-0.0836 > 50.9966+-0.1417 > HashMap-put-get-iterate-keys 32.6160+-0.2056 > 32.4432+-0.2519 > HashMap-put-get-iterate 32.3198+-0.2830 > 32.1245+-0.5062 > HashMap-string-put-get-iterate 34.4770+-0.5328 ? > 34.7271+-0.4656 ? > hoist-make-rope 14.0040+-1.0939 > 13.4420+-0.7762 might be 1.0418x faster > hoist-poly-check-structure-effectful-loop > 5.6544+-0.0255 ? > 5.6994+-0.1064 ? > hoist-poly-check-structure 4.2924+-0.0151 > 4.2805+-0.0117 > imul-double-only 10.1556+-0.5690 ? > 10.5302+-0.7817 ? might be 1.0369x slower > imul-int-only 12.9854+-0.0801 ? > 13.0387+-0.0674 ? > imul-mixed 10.1923+-0.0921 > 10.1434+-0.0848 > in-four-cases 30.3595+-0.1533 ? > 30.5879+-0.3466 ? > in-one-case-false 14.8798+-0.0225 > 14.8780+-0.0299 > in-one-case-true 14.8734+-0.0503 ? > 14.8863+-0.0365 ? > in-two-cases 16.0429+-0.0375 ? > 16.0656+-0.0493 ? > indexed-properties-in-objects 3.8774+-0.0358 > 3.8638+-0.0195 > infer-closure-const-then-mov-no-inline 5.3935+-0.0306 ^ > 5.2754+-0.0149 ^ definitely 1.0224x faster > infer-closure-const-then-mov 24.8385+-0.4711 > 24.6468+-0.3010 > infer-closure-const-then-put-to-scope-no-inline > 17.6757+-0.0174 ? > 17.7660+-0.1735 ? > infer-closure-const-then-put-to-scope 30.9547+-0.2947 > 30.5397+-0.7284 might be 1.0136x faster > infer-closure-const-then-reenter-no-inline > 76.4373+-0.1791 > 76.4079+-0.0813 > infer-closure-const-then-reenter 31.3224+-0.4680 ? > 31.4838+-0.1849 ? > infer-constant-global-property 4.6881+-0.0162 ? > 4.7290+-0.0382 ? > infer-constant-property 3.5950+-0.0410 ? > 3.5982+-0.0271 ? > infer-one-time-closure-ten-vars 13.4149+-0.3159 ? > 13.4872+-0.3516 ? > infer-one-time-closure-two-vars 13.0015+-0.2797 > 12.8218+-0.1699 might be 1.0140x faster > infer-one-time-closure 12.8049+-0.0298 ? > 12.8207+-0.0621 ? > infer-one-time-deep-closure 21.0437+-0.3197 > 20.8588+-0.1900 > inline-arguments-access 5.2129+-0.1578 > 5.1299+-0.0644 might be 1.0162x faster > inline-arguments-aliased-access 5.2242+-0.1564 ? > 5.2301+-0.1165 ? > inline-arguments-local-escape 5.1837+-0.0360 ? > 5.2380+-0.1274 ? might be 1.0105x slower > inline-get-scoped-var 6.1866+-0.1032 > 6.1549+-0.0283 > inlined-put-by-id-transition 13.0531+-0.1596 > 13.0457+-0.0637 > inlined-put-by-val-with-string-transition > 63.3443+-0.2408 ! > 64.2687+-0.6502 ! definitely 1.0146x slower > inlined-put-by-val-with-symbol-transition > 64.2622+-0.6793 > 63.9568+-0.4055 > int-or-other-abs-then-get-by-val 6.1747+-0.0807 > 6.1513+-0.0102 > int-or-other-abs-zero-then-get-by-val 23.2270+-0.6690 > 22.9088+-0.3377 might be 1.0139x faster > int-or-other-add-then-get-by-val 6.0398+-0.0302 ? > 6.0794+-0.0411 ? > int-or-other-add 7.2456+-0.3013 > 7.0909+-0.0731 might be 1.0218x faster > int-or-other-div-then-get-by-val 5.3155+-0.0073 ? > 5.3452+-0.0551 ? > int-or-other-max-then-get-by-val 5.5203+-0.0908 > 5.4668+-0.0202 > int-or-other-min-then-get-by-val 5.5800+-0.0505 > 5.5340+-0.0861 > int-or-other-mod-then-get-by-val 5.0626+-0.0256 ? > 5.1131+-0.0773 ? > int-or-other-mul-then-get-by-val 5.2667+-0.2918 > 5.2078+-0.1133 might be 1.0113x faster > int-or-other-neg-then-get-by-val 5.9263+-0.0255 ? > 6.0001+-0.2106 ? might be 1.0125x slower > int-or-other-neg-zero-then-get-by-val 22.6433+-0.0223 ? > 22.8769+-0.5774 ? might be 1.0103x slower > int-or-other-sub-then-get-by-val 6.0096+-0.0201 ? > 6.1768+-0.4171 ? might be 1.0278x slower > int-or-other-sub 4.7269+-0.0700 ? > 4.7401+-0.0535 ? > int-overflow-local 5.8114+-0.0243 ? > 5.8167+-0.0310 ? > Int16Array-alloc-long-lived 62.0482+-0.4430 > 61.7727+-0.4723 > Int16Array-bubble-sort-with-byteLength 33.8951+-0.0413 ? > 33.9199+-0.0357 ? > Int16Array-bubble-sort 32.3146+-0.3832 ? > 32.6791+-0.6647 ? might be 1.0113x slower > Int16Array-load-int-mul 2.1502+-0.0209 > 2.1461+-0.0113 > Int16Array-to-Int32Array-set 65.5513+-0.1064 ! > 66.9551+-1.0596 ! definitely 1.0214x slower > Int32Array-alloc-large 23.5077+-0.7130 > 23.1040+-0.3614 might be 1.0175x faster > Int32Array-alloc-long-lived 69.5801+-0.7921 > 69.3700+-0.6409 > Int32Array-alloc 3.3979+-0.0467 ? > 3.4143+-0.0305 ? > Int32Array-Int8Array-view-alloc 9.1526+-0.3226 > 9.0344+-0.1482 might be 1.0131x faster > int52-spill 6.9506+-0.0303 ? > 7.0212+-0.0408 ? might be 1.0102x slower > Int8Array-alloc-long-lived 55.0830+-0.4828 ? > 55.2060+-0.3125 ? > Int8Array-load-with-byteLength 4.4280+-0.0191 ? > 4.4498+-0.0326 ? > Int8Array-load 4.4645+-0.0530 > 4.4506+-0.0156 > integer-divide 15.3066+-0.1551 > 15.2400+-0.0687 > integer-modulo 2.6725+-0.0171 ? > 2.6794+-0.0286 ? > is-boolean-fold-tricky 5.5119+-0.0371 ? > 5.5133+-0.0176 ? > is-boolean-fold 3.8093+-0.1570 > 3.7730+-0.0435 > is-function-fold-tricky-internal-function > 15.1616+-0.0364 > 15.1263+-0.1508 > is-function-fold-tricky 5.6551+-0.0173 ? > 5.6635+-0.0332 ? > is-function-fold 3.7857+-0.0274 ? > 3.8910+-0.1526 ? might be 1.0278x slower > is-number-fold-tricky 5.5328+-0.0585 > 5.5122+-0.0224 > is-number-fold 3.7780+-0.0368 ? > 3.7978+-0.0343 ? > is-object-or-null-fold-functions 3.8969+-0.0306 ? > 3.9042+-0.0311 ? > is-object-or-null-fold-less-tricky 5.6267+-0.0195 > 5.6249+-0.0160 > is-object-or-null-fold-tricky 7.6111+-0.0067 ? > 7.6181+-0.0201 ? > is-object-or-null-fold 3.8118+-0.0329 ? > 3.8647+-0.0369 ? might be 1.0139x slower > is-object-or-null-trickier-function 5.7387+-0.0327 ? > 5.7529+-0.0192 ? > is-object-or-null-trickier-internal-function > 15.6639+-0.0592 ^ > 15.4644+-0.0290 ^ definitely 1.0129x faster > is-object-or-null-tricky-function 5.7137+-0.0620 > 5.6886+-0.0168 > is-object-or-null-tricky-internal-function > 11.6307+-0.0355 ? > 11.7025+-0.1364 ? > is-string-fold-tricky 5.5241+-0.0257 > 5.5056+-0.0237 > is-string-fold 3.7583+-0.0393 ? > 3.7601+-0.0331 ? > is-undefined-fold-tricky 4.5741+-0.0264 ? > 4.5911+-0.0320 ? > is-undefined-fold 3.7713+-0.0191 > 3.7610+-0.0358 > JSONP-negative-0 0.4697+-0.0139 ? > 0.4730+-0.0177 ? > large-int-captured 5.7663+-0.1180 ? > 5.7776+-0.1061 ? > large-int-neg 20.8974+-0.2739 ? > 21.1514+-0.4169 ? might be 1.0122x slower > large-int 18.7507+-0.4697 ? > 18.8909+-0.6496 ? > load-varargs-elimination 30.3550+-0.1425 ? > 30.4761+-0.6227 ? > logical-not-weird-types 4.5492+-0.0341 ? > 4.5617+-0.0421 ? > logical-not 6.2519+-0.0333 > 6.2330+-0.0223 > lots-of-fields 15.5017+-0.2285 ? > 15.6893+-0.2443 ? might be 1.0121x slower > make-indexed-storage 3.8999+-0.1890 > 3.8551+-0.2423 might be 1.0116x faster > make-rope-cse 4.7989+-0.1870 > 4.7893+-0.1253 > marsaglia-larger-ints 49.0079+-0.1468 > 48.9558+-0.5654 > marsaglia-osr-entry 30.3190+-0.2560 > 30.1720+-0.2764 > math-with-out-of-bounds-array-values 32.3479+-0.0783 ? > 33.0661+-0.8934 ? might be 1.0222x slower > max-boolean 3.3234+-0.0237 > 3.3083+-0.0205 > method-on-number 23.0535+-0.1237 ? > 23.1528+-0.1567 ? > min-boolean 3.3259+-0.0252 ? > 3.3350+-0.0253 ? > minus-boolean-double 4.2089+-0.0227 ? > 4.2205+-0.0298 ? > minus-boolean 3.1604+-0.0216 > 3.1340+-0.0180 > misc-strict-eq 46.1942+-1.2908 > 46.1066+-0.9949 > mod-boolean-double 14.1957+-0.0235 ? > 14.2286+-0.0700 ? > mod-boolean 10.1890+-0.0375 ? > 10.1983+-0.0179 ? > mul-boolean-double 4.8908+-0.0159 ? > 4.8969+-0.0211 ? > mul-boolean 3.8256+-0.0336 ? > 3.8337+-0.0333 ? > neg-boolean 4.2029+-0.0202 ? > 4.2231+-0.0125 ? > negative-zero-divide 0.6098+-0.0156 > 0.6073+-0.0085 > negative-zero-modulo 0.6016+-0.0090 > 0.5997+-0.0140 > negative-zero-negate 0.5951+-0.0118 > 0.5723+-0.0195 might be 1.0398x faster > nested-function-parsing 66.1806+-0.6127 ? > 66.8495+-0.7212 ? might be 1.0101x slower > new-array-buffer-dead 126.4521+-0.4028 ? > 127.7274+-2.6284 ? might be 1.0101x slower > new-array-buffer-push 8.4278+-0.1918 > 8.3834+-0.1417 > new-array-dead 24.0793+-0.6772 ? > 24.2290+-0.3362 ? > new-array-push 5.1333+-0.3651 > 5.0118+-0.3099 might be 1.0242x faster > no-inline-constructor 48.2066+-0.4071 ? > 48.2497+-0.3502 ? > number-test 4.1570+-0.0433 ? > 4.1679+-0.0305 ? > object-closure-call 6.9611+-0.0260 ? > 7.0278+-0.1021 ? > object-get-own-property-symbols-on-large-array > 5.0439+-0.0841 > 5.0230+-0.0890 > object-test 3.8542+-0.0249 ? > 3.8983+-0.0515 ? might be 1.0114x slower > obvious-sink-pathology-taken 147.2171+-0.4824 ? > 147.3936+-0.3548 ? > obvious-sink-pathology 48.4109+-1.2648 > 47.2630+-0.3798 might be 1.0243x faster > obviously-elidable-new-object 42.5029+-0.4969 > 42.3176+-0.2107 > plus-boolean-arith 3.3719+-0.0189 ? > 3.3982+-0.0357 ? > plus-boolean-double 4.2336+-0.0109 > 4.2302+-0.0344 > plus-boolean 3.2150+-0.0190 > 3.2082+-0.0244 > poly-chain-access-different-prototypes-simple > 3.4883+-0.0149 ? > 3.4960+-0.0170 ? > poly-chain-access-different-prototypes 3.5261+-0.0178 ? > 3.5311+-0.0129 ? > poly-chain-access-simpler 3.4964+-0.0298 ? > 3.4968+-0.0216 ? > poly-chain-access 3.5930+-0.2091 > 3.4789+-0.0135 might be 1.0328x faster > poly-stricteq 85.3781+-0.1439 ^ > 84.8024+-0.0402 ^ definitely 1.0068x faster > polymorphic-array-call 1.9637+-0.0855 > 1.9196+-0.0444 might be 1.0230x faster > polymorphic-get-by-id 4.5781+-0.2795 > 4.4572+-0.0139 might be 1.0271x faster > polymorphic-put-by-id 47.8955+-0.9574 > 47.7018+-1.2013 > polymorphic-put-by-val-with-string 48.2575+-0.1291 > 48.1401+-0.0890 > polymorphic-put-by-val-with-symbol 48.1048+-0.1611 > 48.0009+-0.1271 > polymorphic-structure 18.0145+-0.2035 > 17.9283+-0.0332 > polyvariant-monomorphic-get-by-id 11.0250+-0.0192 ? > 11.0368+-0.0443 ? > proto-getter-access 11.8499+-0.1543 ? > 11.8517+-0.1541 ? > prototype-access-with-mutating-prototype 7.5888+-0.1629 ? > 7.8445+-0.2496 ? might be 1.0337x slower > put-by-id-replace-and-transition 11.4785+-0.2929 > 11.3941+-0.0875 > put-by-id-slightly-polymorphic 3.7780+-0.0178 > 3.7751+-0.0194 > put-by-id 14.5816+-0.2941 ? > 14.7108+-0.2355 ? > put-by-val-direct 0.6218+-0.0085 ? > 0.6381+-0.0239 ? might be 1.0262x slower > put-by-val-large-index-blank-indexing-type > 7.2172+-0.0705 ? > 7.3235+-0.0941 ? might be 1.0147x slower > put-by-val-machine-int 3.4830+-0.0552 > 3.4661+-0.0316 > put-by-val-with-string-replace-and-transition > 16.4955+-0.1470 > 16.4267+-0.1676 > put-by-val-with-string-slightly-polymorphic > 4.9906+-0.0194 ? > 4.9942+-0.0223 ? > put-by-val-with-string 15.4738+-0.2959 ? > 15.5500+-0.5163 ? > put-by-val-with-symbol-replace-and-transition > 17.8430+-0.1608 ? > 17.8630+-0.2150 ? > put-by-val-with-symbol-slightly-polymorphic > 5.4245+-0.0983 > 5.3969+-0.0274 > put-by-val-with-symbol 15.4625+-0.1829 ? > 15.5842+-0.1988 ? > rare-osr-exit-on-local 20.3449+-0.5166 > 20.1108+-0.0883 might be 1.0116x faster > raytrace-with-empty-try-catch 9.0645+-0.0769 ? > 9.4269+-0.3479 ? might be 1.0400x slower > raytrace-with-try-catch 16.1974+-0.0928 ! > 16.7918+-0.1468 ! definitely 1.0367x slower > register-pressure-from-osr 26.7919+-0.0664 > 26.7467+-0.0362 > repeat-multi-get-by-offset 31.3455+-0.2489 ? > 31.3967+-0.2630 ? > richards-empty-try-catch 113.0495+-0.2989 ^ > 84.1128+-0.5069 ^ definitely 1.3440x faster > richards-try-catch 367.6120+-0.9552 ^ > 347.9143+-0.7705 ^ definitely 1.0566x faster > setter-prototype 11.2856+-0.1366 > 11.1988+-0.1101 > setter 6.9842+-0.0367 ! > 7.5522+-0.0315 ! definitely 1.0813x slower > simple-activation-demo 34.2698+-0.0445 ! > 34.5722+-0.1346 ! definitely 1.0088x slower > simple-getter-access 15.0856+-0.1264 > 15.0750+-0.2182 > simple-poly-call-nested 10.9037+-0.0399 ? > 10.9105+-0.0208 ? > simple-poly-call 1.8523+-0.0123 ? > 1.8658+-0.0406 ? > sin-boolean 27.4172+-1.9574 ? > 27.6710+-2.0016 ? > singleton-scope 87.7592+-0.1571 > 87.7256+-0.0899 > sink-function 14.3578+-0.3682 > 14.3050+-0.2608 > sink-huge-activation 23.7119+-0.7290 ? > 23.8169+-0.7180 ? > sinkable-new-object-dag 80.7602+-1.0669 > 80.1509+-0.9389 > sinkable-new-object-taken 64.9570+-0.9753 > 64.5273+-0.5173 > sinkable-new-object 47.5326+-0.4805 > 47.3303+-0.3615 > slow-array-profile-convergence 4.0960+-0.0319 > 4.0625+-0.0944 > slow-convergence 3.9076+-0.0240 ? > 3.9310+-0.0628 ? > slow-ternaries 25.9367+-1.8601 > 24.0780+-0.6306 might be 1.0772x faster > sorting-benchmark 26.4254+-0.2587 > 26.2175+-0.2076 > sparse-conditional 1.7572+-0.0197 ? > 1.7801+-0.0262 ? might be 1.0130x slower > splice-to-remove 19.8411+-0.2623 ? > 20.3963+-0.7191 ? might be 1.0280x slower > string-char-code-at 21.8926+-0.1747 ? > 22.0714+-0.1215 ? > string-concat-object 2.8061+-0.0315 ? > 2.8091+-0.0266 ? > string-concat-pair-object 2.7487+-0.1042 > 2.7467+-0.0579 > string-concat-pair-simple 13.9155+-0.1368 > 13.7682+-0.2026 might be 1.0107x faster > string-concat-simple 14.3997+-0.1348 ? > 14.4180+-0.2095 ? > string-cons-repeat 9.4916+-0.0914 ? > 9.5541+-0.1348 ? > string-cons-tower 9.6812+-0.1287 > 9.5921+-0.0619 > string-equality 26.3931+-0.2201 ^ > 26.1519+-0.0168 ^ definitely 1.0092x faster > string-get-by-val-big-char 9.4265+-0.1205 ? > 9.6035+-0.4154 ? might be 1.0188x slower > string-get-by-val-out-of-bounds-insane 5.0723+-0.0291 ^ > 4.9451+-0.0609 ^ definitely 1.0257x faster > string-get-by-val-out-of-bounds 6.7534+-0.0182 ? > 6.7908+-0.1770 ? > string-get-by-val 4.4754+-0.0157 ^ > 4.4182+-0.0278 ^ definitely 1.0130x faster > string-hash 2.7596+-0.0245 ! > 2.8600+-0.0201 ! definitely 1.0364x slower > string-long-ident-equality 21.6338+-0.5646 > 21.3616+-0.0201 might be 1.0127x faster > string-out-of-bounds 17.7958+-0.3309 > 17.6335+-0.1310 > string-repeat-arith 42.7820+-0.0756 ^ > 41.9874+-0.3393 ^ definitely 1.0189x faster > string-sub 55.4495+-0.5206 ! > 57.6474+-0.3389 ! definitely 1.0396x slower > string-test 4.0044+-0.0505 > 3.9931+-0.0249 > string-var-equality 48.2370+-0.4813 > 48.0645+-0.1804 > structure-hoist-over-transitions 3.1841+-0.0306 ? > 3.2639+-0.2128 ? might be 1.0251x slower > substring-concat-weird 52.3875+-0.2782 ? > 53.1224+-0.9411 ? might be 1.0140x slower > substring-concat 57.8740+-0.5279 ? > 57.9377+-0.7254 ? > substring 64.3088+-0.6575 ? > 64.4199+-0.6815 ? > switch-char-constant 3.6063+-0.0202 ? > 3.6458+-0.0862 ? might be 1.0110x slower > switch-char 7.8962+-0.0241 > 7.8239+-0.1148 > switch-constant 10.0418+-0.1114 > 10.0325+-0.0557 > switch-string-basic-big-var 26.2134+-0.2645 > 25.9732+-0.1420 > switch-string-basic-big 23.0507+-0.1689 > 22.8819+-0.4930 > switch-string-basic-var 21.2726+-0.1254 ? > 21.2735+-0.1566 ? > switch-string-basic 19.6991+-0.0633 > 19.6801+-0.0799 > switch-string-big-length-tower-var 27.1884+-0.0928 > 27.1245+-0.0329 > switch-string-length-tower-var 20.7887+-0.0413 ? > 20.8838+-0.1592 ? > switch-string-length-tower 17.7304+-0.1589 ? > 17.9085+-0.4269 ? might be 1.0100x slower > switch-string-short 17.9003+-0.4407 > 17.6361+-0.0411 might be 1.0150x faster > switch 14.6163+-0.1979 ? > 14.6401+-0.1343 ? > tear-off-arguments-simple 4.0258+-0.0663 > 3.9925+-0.0359 > tear-off-arguments 5.4697+-0.1217 ? > 5.4714+-0.1355 ? > temporal-structure 17.0435+-0.1432 ? > 17.0510+-0.0782 ? > to-int32-boolean 17.8025+-0.0191 ? > 17.8228+-0.0356 ? > try-catch-get-by-val-cloned-arguments 13.5372+-0.0931 ! > 14.6710+-0.5445 ! definitely 1.0837x slower > try-catch-get-by-val-direct-arguments 2.9562+-0.0134 ! > 3.0598+-0.0896 ! definitely 1.0351x slower > try-catch-get-by-val-scoped-arguments 6.0639+-0.0580 ! > 6.4113+-0.0431 ! definitely 1.0573x slower > typed-array-get-set-by-val-profiling 39.2088+-0.3736 ? > 39.4321+-0.4843 ? > undefined-property-access 478.5985+-6.0009 > 475.7620+-0.8805 > undefined-test 4.0956+-0.0140 ? > 4.1058+-0.0282 ? > unprofiled-licm 17.5083+-0.1304 > 17.2962+-0.3002 might be 1.0123x faster > v8-raytrace-with-empty-try-catch 75.6069+-0.5258 ! > 81.1628+-0.7679 ! definitely 1.0735x slower > v8-raytrace-with-try-catch 108.2109+-0.4881 ? > 109.2809+-0.5843 ? > varargs-call 19.1720+-0.1382 > 19.1426+-0.1269 > varargs-construct-inline 33.4982+-0.1495 ? > 33.4997+-0.2641 ? > varargs-construct 28.3209+-0.5075 > 28.1606+-0.2136 > varargs-inline 13.0551+-0.0453 > 13.0341+-0.0614 > varargs-strict-mode 14.6184+-0.2531 > 14.5505+-0.0515 > varargs 14.3366+-0.0595 ? > 14.3532+-0.0812 ? > weird-inlining-const-prop 3.0874+-0.1889 > 3.0166+-0.0291 might be 1.0235x faster > > <geometric> 11.9098+-0.0163 ? > 11.9201+-0.0069 ? might be 1.0009x slower > > og > tryCatchFTL > CompressionBench: > huffman 77.7389+-0.2092 > 77.4119+-0.5537 > arithmetic-simple 459.2286+-2.4190 > 459.0173+-2.1644 > arithmetic-precise 372.5100+-2.4770 > 371.9389+-2.3667 > arithmetic-complex-precise 369.0174+-3.6257 ? > 371.5642+-2.9929 ? > arithmetic-precise-order-0 473.1260+-2.6836 ? > 475.1393+-2.4583 ? > arithmetic-precise-order-1 438.9898+-3.2065 ? > 443.3207+-5.1113 ? > arithmetic-precise-order-2 524.1101+-1.7310 ? > 528.2253+-4.8734 ? > arithmetic-simple-order-1 527.2271+-2.9088 ? > 529.6829+-2.4231 ? > arithmetic-simple-order-2 603.3105+-1.3987 > 601.8619+-2.0701 > lz-string 396.8121+-3.6034 > 392.1369+-4.0209 might be 1.0119x faster > > <geometric> 382.7134+-0.8489 ? > 383.2058+-1.0862 ? might be 1.0013x slower > > og > tryCatchFTL > Geomean of preferred means: > <scaled-result> 51.8039+-0.0617 ? > 51.9026+-0.0614 ? might be 1.0019x slower
Where's AsmBench? That's a good sanity check.
Saam Barati
Comment 11
2015-11-04 15:51:20 PST
here is ASM bench. It's neutral. Benchmark report for AsmBench on Saams-Mac-Pro (MacPro6,1). VMs tested: "og" at /Volumes/Data/WK/os-a/OpenSource/WebKitBuild/Release/jsc (
r191931
) "tryCatchFTL" at /Volumes/Data/WK/os-b/OpenSource/WebKitBuild/Release/jsc (
r191931
) export JSC_useFTLTryCatch=1 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. og tryCatchFTL bigfib.cpp 909.8264+-2.9855 ? 912.8022+-3.9850 ? cray.c 774.2484+-3.8192 ? 779.4747+-9.9393 ? dry.c 883.5072+-15.3538 ? 896.9960+-0.6456 ? might be 1.0153x slower FloatMM.c 1326.2950+-0.4510 ? 1326.4975+-0.6081 ? gcc-loops.cpp 7473.3141+-3.0764 7472.1599+-2.6711 n-body.c 1806.7973+-1.0544 1806.0887+-1.4620 Quicksort.c 769.9672+-12.8966 768.2434+-13.4217 stepanov_container.cpp 6762.3447+-13.1186 6755.4569+-20.7452 Towers.c 464.0003+-0.8146 ? 464.0826+-1.1481 ? <geometric> 1441.7882+-4.8548 ? 1445.2672+-3.0119 ? might be 1.0024x slower
Saam Barati
Comment 12
2015-11-04 15:51:44 PST
I'll investigate the code load regression. Maybe it's the same thing that sun spider is telling us.
Saam Barati
Comment 13
2015-11-09 22:16:37 PST
Performance looks better. I've sped up the check to see if some code origin is inside a try block and I think that's likely the cause for things that looked like compilation slow downs. I'll land this patch tonight or tomorrow. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on Saams-Mac-Pro (MacPro6,1). VMs tested: "og" at /Volumes/Data/WK/os-a/OpenSource/WebKitBuild/Release/jsc (
r192196
) "ftlTryCatch" at /Volumes/Data/WK/os-b/OpenSource/WebKitBuild/Release/jsc (
r192196
) Collected 8 samples per benchmark/VM, with 8 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. og ftlTryCatch SunSpider: 3d-cube 8.4981+-0.3380 ? 8.5496+-0.4494 ? 3d-morph 8.1915+-0.0222 8.1803+-0.0225 3d-raytrace 9.4692+-0.0564 ? 9.5887+-0.1972 ? might be 1.0126x slower access-binary-trees 3.3643+-0.0305 3.3432+-0.0428 access-fannkuch 9.3833+-0.3482 9.2307+-0.0639 might be 1.0165x faster access-nbody 4.3631+-0.0154 4.3549+-0.0210 access-nsieve 5.0500+-0.0483 ? 5.0838+-0.0789 ? bitops-3bit-bits-in-byte 1.8691+-0.0497 ? 1.8880+-0.0592 ? might be 1.0101x slower bitops-bits-in-byte 5.0339+-0.0395 ? 5.0652+-0.0866 ? bitops-bitwise-and 3.2529+-0.1589 3.1945+-0.0309 might be 1.0183x faster bitops-nsieve-bits 4.5660+-0.0158 ? 4.5710+-0.0156 ? controlflow-recursive 3.6506+-0.0676 ? 3.6615+-0.0354 ? crypto-aes 7.0855+-0.0405 7.0330+-0.0494 crypto-md5 4.0619+-0.0215 ! 4.4467+-0.0481 ! definitely 1.0948x slower crypto-sha1 3.8334+-0.0431 3.7945+-0.0336 might be 1.0103x faster date-format-tofte 13.8677+-0.1749 13.8257+-0.1049 date-format-xparb 8.0154+-0.1203 ? 8.2043+-0.2516 ? might be 1.0236x slower math-cordic 4.5558+-0.1022 4.4944+-0.0209 might be 1.0136x faster math-partial-sums 8.3026+-0.0234 ^ 8.2269+-0.0225 ^ definitely 1.0092x faster math-spectral-norm 3.0713+-0.0201 ? 3.0903+-0.0319 ? regexp-dna 10.1929+-0.0687 ? 10.4523+-0.3575 ? might be 1.0255x slower string-base64 6.8287+-0.0389 6.7626+-0.0546 string-fasta 9.1246+-0.0643 ? 9.2132+-0.0595 ? string-tagcloud 13.2585+-0.1176 13.1477+-0.1719 string-unpack-code 29.9255+-0.6432 29.0290+-0.8258 might be 1.0309x faster string-validate-input 6.8239+-0.0588 ? 6.9374+-0.1161 ? might be 1.0166x slower <arithmetic> 7.5246+-0.0261 7.5142+-0.0379 might be 1.0014x faster og ftlTryCatch LongSpider: 3d-cube 1295.0750+-5.0640 1294.7685+-8.2947 3d-morph 2249.8728+-1.6380 ? 2250.2562+-1.7628 ? 3d-raytrace 989.8434+-3.9063 ? 989.9005+-3.9798 ? access-binary-trees 1297.8524+-4.3057 ? 1298.7193+-4.9930 ? access-fannkuch 527.5297+-4.2924 525.8252+-9.9937 access-nbody 868.9314+-0.7719 868.3622+-0.5845 access-nsieve 611.8965+-4.4053 ? 617.0673+-3.3186 ? bitops-3bit-bits-in-byte 54.8996+-0.2953 ? 55.3448+-0.5425 ? bitops-bits-in-byte 146.3968+-1.2250 ? 147.4812+-0.9583 ? bitops-nsieve-bits 634.6776+-2.5010 ? 634.8929+-2.6515 ? controlflow-recursive 701.9906+-0.3520 701.8401+-0.5240 crypto-aes 914.4079+-6.7099 909.0817+-5.8829 crypto-md5 777.4681+-7.1980 773.0992+-3.6902 crypto-sha1 1050.2581+-4.6645 1045.7713+-2.3446 date-format-tofte 1088.6526+-13.0293 ? 1088.7452+-14.4978 ? date-format-xparb 1184.4429+-21.3143 1181.4425+-23.7742 hash-map 243.7809+-3.4281 242.5660+-2.0392 math-cordic 795.6278+-0.3448 ? 795.7533+-0.9344 ? math-partial-sums 805.0616+-1.5709 802.9088+-1.8922 math-spectral-norm 832.4614+-0.9510 ? 833.6912+-1.8184 ? string-base64 583.6586+-1.3522 583.3463+-1.4057 string-fasta 579.9218+-1.8203 ! 591.4506+-1.6278 ! definitely 1.0199x slower string-tagcloud 288.8521+-1.6080 286.0590+-3.6082 <geometric> 647.7558+-0.5351 ? 647.9185+-1.4218 ? might be 1.0003x slower og ftlTryCatch V8Spider: crypto 76.9450+-0.5342 76.4299+-0.2643 deltablue 95.5699+-2.6844 95.2594+-2.1895 earley-boyer 65.4193+-0.3580 65.3155+-0.5964 raytrace 44.6074+-0.4759 44.4297+-0.5202 regexp 106.7997+-0.5251 105.9537+-0.3444 richards 78.9201+-0.2870 ? 79.0007+-0.4201 ? splay 53.1720+-0.8982 ? 53.2796+-0.7278 ? <geometric> 71.5609+-0.2683 71.3541+-0.2593 might be 1.0029x faster og ftlTryCatch Octane: encrypt 0.26636+-0.00230 ? 0.26831+-0.00400 ? decrypt 4.79901+-0.01566 4.79764+-0.01032 deltablue x2 0.22232+-0.00171 0.22145+-0.00123 earley 0.49281+-0.00113 0.49163+-0.00208 boyer 7.50000+-0.03723 7.49661+-0.01950 navier-stokes x2 7.45808+-0.00139 ? 7.46436+-0.00862 ? raytrace x2 1.42425+-0.01254 ? 1.42478+-0.00918 ? richards x2 0.15275+-0.00118 0.15226+-0.00082 splay x2 0.50792+-0.00502 ? 0.51009+-0.00212 ? regexp x2 39.76163+-0.09623 39.58335+-0.09921 pdfjs x2 61.01531+-0.27408 60.78518+-0.17852 mandreel x2 72.90392+-0.12917 ^ 72.55345+-0.15781 ^ definitely 1.0048x faster gbemu x2 62.40061+-3.00036 ? 62.65394+-5.33677 ? closure 1.08545+-0.00504 ? 1.08920+-0.00442 ? jquery 14.03493+-0.09878 ? 14.05310+-0.06087 ? box2d x2 18.04630+-0.08728 ? 18.11127+-0.09488 ? zlib x2 572.13880+-14.15864 ? 576.94055+-16.16401 ? typescript x2 1230.73663+-23.82416 1227.13876+-8.92983 <geometric> 9.03308+-0.03824 ? 9.03332+-0.04452 ? might be 1.0000x slower og ftlTryCatch Kraken: ai-astar 241.668+-1.976 240.972+-2.133 audio-beat-detection 79.699+-0.335 ? 79.817+-0.714 ? audio-dft 153.492+-0.439 ? 153.829+-0.300 ? audio-fft 59.408+-0.641 59.028+-0.561 audio-oscillator 96.129+-0.109 ? 96.238+-0.300 ? imaging-darkroom 101.531+-0.064 101.498+-0.017 imaging-desaturate 94.474+-0.366 94.053+-0.740 imaging-gaussian-blur 162.236+-0.329 162.143+-0.384 json-parse-financial 70.319+-1.154 68.989+-0.500 might be 1.0193x faster json-stringify-tinderbox 41.931+-0.094 ? 42.024+-0.615 ? stanford-crypto-aes 69.915+-1.096 69.887+-0.546 stanford-crypto-ccm 63.201+-2.735 ? 63.685+-1.418 ? stanford-crypto-pbkdf2 153.242+-0.969 152.388+-1.782 stanford-crypto-sha256-iterative 61.027+-0.277 61.019+-0.321 <arithmetic> 103.448+-0.243 103.255+-0.309 might be 1.0019x faster og ftlTryCatch JSRegress: abc-forward-loop-equal 68.6479+-0.4358 68.3855+-0.2242 abc-postfix-backward-loop 68.0349+-0.4465 ? 68.4200+-0.6350 ? abc-simple-backward-loop 67.4612+-0.3767 ? 67.4798+-0.5162 ? abc-simple-forward-loop 67.4218+-0.1129 ? 67.4717+-0.1941 ? abc-skippy-loop 46.5434+-0.2706 46.5200+-0.3904 abs-boolean 3.8878+-0.0443 ? 3.9691+-0.2435 ? might be 1.0209x slower adapt-to-double-divide 23.6427+-0.1806 ? 23.8215+-0.2551 ? aliased-arguments-getbyval 1.7535+-0.0259 1.7474+-0.0111 allocate-big-object 3.2970+-0.0784 ? 3.3569+-0.0873 ? might be 1.0182x slower arguments-named-and-reflective 16.2192+-0.2546 16.1519+-0.4170 arguments-out-of-bounds 17.8940+-0.1591 ? 17.9528+-0.1993 ? arguments-strict-mode 15.2461+-0.2909 ? 15.4096+-0.2676 ? might be 1.0107x slower arguments 13.4468+-0.1913 13.2722+-0.0999 might be 1.0132x faster arity-mismatch-inlining 1.4572+-0.0258 1.4460+-0.0115 array-access-polymorphic-structure 11.0847+-0.2003 ? 11.3582+-0.9132 ? might be 1.0247x slower array-nonarray-polymorhpic-access 43.5098+-0.3298 43.4700+-0.2732 array-prototype-every 123.3109+-2.7186 ? 123.3951+-1.3106 ? array-prototype-forEach 120.8754+-1.2687 ? 122.1719+-2.9598 ? might be 1.0107x slower array-prototype-map 132.6558+-1.9751 ? 134.3283+-1.2995 ? might be 1.0126x slower array-prototype-reduce 115.9856+-0.4974 ? 116.7597+-0.5070 ? array-prototype-reduceRight 116.5284+-1.7294 ? 117.7384+-2.4637 ? might be 1.0104x slower array-prototype-some 122.5771+-1.2801 ? 123.2189+-1.3286 ? array-splice-contiguous 44.3923+-0.3101 ^ 40.9171+-0.6896 ^ definitely 1.0849x faster array-with-double-add 6.1462+-0.0237 6.1136+-0.0559 array-with-double-increment 4.8239+-0.0248 4.8124+-0.0280 array-with-double-mul-add 7.2834+-0.0375 ? 7.2893+-0.0588 ? array-with-double-sum 4.7822+-0.0202 ? 4.7858+-0.0406 ? array-with-int32-add-sub 10.1933+-0.3195 10.0708+-0.0235 might be 1.0122x faster array-with-int32-or-double-sum 4.8599+-0.0147 ? 4.8678+-0.0187 ? ArrayBuffer-DataView-alloc-large-long-lived 44.2783+-0.7615 44.0936+-0.1941 ArrayBuffer-DataView-alloc-long-lived 20.3133+-0.4532 ? 20.7979+-1.2232 ? might be 1.0239x slower ArrayBuffer-Int32Array-byteOffset 5.5238+-0.0131 ? 5.5495+-0.1070 ? ArrayBuffer-Int8Array-alloc-large-long-lived 44.8175+-0.4200 ? 45.4143+-0.3902 ? might be 1.0133x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 31.4607+-0.0909 ? 32.3026+-1.0389 ? might be 1.0268x slower ArrayBuffer-Int8Array-alloc-long-lived 18.3311+-0.2703 ? 18.5620+-0.5942 ? might be 1.0126x slower ArrayBuffer-Int8Array-alloc 15.5868+-0.0929 ! 16.3544+-0.6513 ! definitely 1.0492x slower arrowfunction-call 17.0258+-0.2764 16.7236+-0.0695 might be 1.0181x faster asmjs_bool_bug 12.0728+-0.1473 11.9774+-0.1583 assign-custom-setter-polymorphic 4.4941+-0.0384 4.4782+-0.0314 assign-custom-setter 6.5809+-0.0602 ? 6.7494+-0.3568 ? might be 1.0256x slower basic-set 11.8000+-0.1285 ? 11.8335+-0.1112 ? big-int-mul 5.7530+-0.3954 ? 5.8632+-0.4302 ? might be 1.0191x slower boolean-test 4.5345+-0.0174 ? 4.5932+-0.0688 ? might be 1.0129x slower branch-fold 5.3815+-0.0384 ? 5.3976+-0.1051 ? branch-on-string-as-boolean 28.9403+-0.5358 28.7603+-0.5247 by-val-generic 3.5358+-0.0318 ? 3.5973+-0.0587 ? might be 1.0174x slower call-spread-apply 43.5923+-0.8065 42.6909+-0.3647 might be 1.0211x faster call-spread-call 35.4232+-0.6551 34.8853+-0.2449 might be 1.0154x faster captured-assignments 0.8684+-0.0187 0.8534+-0.0111 might be 1.0176x faster cast-int-to-double 7.5681+-0.0243 7.5553+-0.0509 cell-argument 9.8773+-0.1493 ? 9.9372+-0.1607 ? cfg-simplify 4.0798+-0.0251 ? 4.0956+-0.0413 ? chain-getter-access 12.9186+-0.1483 ? 13.0825+-0.3132 ? might be 1.0127x slower cmpeq-obj-to-obj-other 14.6172+-0.4833 14.3825+-0.0543 might be 1.0163x faster constant-test 7.0488+-0.1384 7.0329+-0.0756 create-lots-of-functions 14.3209+-0.2072 14.2917+-0.1686 cse-new-array-buffer 3.3272+-0.0865 3.3199+-0.0454 cse-new-array 3.4209+-0.0343 3.3975+-0.0302 DataView-custom-properties 53.3251+-1.5895 51.4781+-0.2773 might be 1.0359x faster delay-tear-off-arguments-strictmode 20.3141+-0.3402 19.9325+-0.2204 might be 1.0191x faster deltablue-varargs 304.9130+-2.8165 302.1101+-12.4392 destructuring-arguments 258.1306+-1.3515 ? 259.2330+-4.8181 ? destructuring-parameters-overridden-by-function 0.8327+-0.0100 ? 0.8333+-0.0127 ? destructuring-swap 7.2911+-0.0321 7.2853+-0.0490 direct-arguments-getbyval 1.7924+-0.0671 1.7724+-0.0210 might be 1.0113x faster div-boolean-double 7.3200+-0.0254 7.2889+-0.0095 div-boolean 11.0456+-0.0372 11.0266+-0.0244 double-get-by-val-out-of-bounds 6.5846+-0.0375 ^ 6.4862+-0.0574 ^ definitely 1.0152x faster double-pollution-getbyval 12.2228+-0.1532 12.1615+-0.0199 double-pollution-putbyoffset 5.7251+-0.0291 ? 5.7998+-0.0770 ? might be 1.0130x slower double-real-use 43.1645+-0.4532 43.1157+-0.4865 double-to-int32-typed-array-no-inline 3.3939+-0.0185 3.3886+-0.0298 double-to-int32-typed-array 3.2063+-0.0309 ? 3.2115+-0.0375 ? double-to-uint32-typed-array-no-inline 3.5207+-0.0250 ? 3.5552+-0.0423 ? double-to-uint32-typed-array 3.2027+-0.0160 3.1981+-0.0326 elidable-new-object-dag 54.0302+-0.6511 ? 54.4548+-0.9588 ? elidable-new-object-roflcopter 51.4409+-0.9758 51.1798+-1.7615 elidable-new-object-then-call 50.9148+-0.9146 50.8526+-0.6858 elidable-new-object-tree 60.2544+-0.4477 ? 60.3597+-0.9304 ? empty-string-plus-int 7.7272+-0.0715 ? 7.7290+-0.0208 ? emscripten-cube2hash 56.7263+-0.4273 ? 56.9870+-0.7980 ? exit-length-on-plain-object 23.7288+-0.2047 ? 23.7366+-0.2225 ? external-arguments-getbyval 2.0728+-0.1328 2.0010+-0.0887 might be 1.0359x faster external-arguments-putbyval 3.5134+-0.0559 3.4708+-0.0360 might be 1.0123x faster fixed-typed-array-storage-var-index 1.9541+-0.0215 1.9346+-0.0139 might be 1.0101x faster fixed-typed-array-storage 1.5332+-0.0086 ? 1.5704+-0.1111 ? might be 1.0243x slower Float32Array-matrix-mult 7.1799+-0.0275 7.1703+-0.0340 Float32Array-to-Float64Array-set 79.1064+-0.1130 ^ 77.4350+-0.1387 ^ definitely 1.0216x faster Float64Array-alloc-long-lived 91.9246+-0.5413 ? 92.4516+-1.3974 ? Float64Array-to-Int16Array-set 96.1245+-0.6411 95.9178+-0.1577 fold-double-to-int 20.4092+-0.5753 20.2585+-0.1476 fold-get-by-id-to-multi-get-by-offset-rare-int 13.4241+-0.1728 ? 13.4655+-0.1747 ? fold-get-by-id-to-multi-get-by-offset 11.5534+-0.0501 ? 11.6177+-0.1444 ? fold-multi-get-by-offset-to-get-by-offset 9.9893+-0.3097 ? 9.9980+-0.3185 ? fold-multi-get-by-offset-to-poly-get-by-offset 10.7080+-0.0357 10.5794+-0.2513 might be 1.0122x faster fold-multi-put-by-offset-to-poly-put-by-offset 12.9651+-0.0298 ? 13.0049+-0.1421 ? fold-multi-put-by-offset-to-put-by-offset 12.1522+-0.2064 ? 12.1632+-0.2201 ? fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 17.4780+-0.0841 17.1332+-0.4775 might be 1.0201x faster fold-put-by-id-to-multi-put-by-offset 14.8513+-0.3354 14.6827+-0.4343 might be 1.0115x faster fold-put-by-val-with-string-to-multi-put-by-offset 14.6523+-0.5304 14.5151+-0.3702 fold-put-by-val-with-symbol-to-multi-put-by-offset 14.7121+-0.3595 14.6277+-0.4079 fold-put-structure 9.5219+-0.0932 ? 9.5583+-0.0754 ? for-of-iterate-array-entries 17.4117+-0.5974 17.0608+-0.0921 might be 1.0206x faster for-of-iterate-array-keys 5.7491+-0.0448 ? 5.7491+-0.0992 ? for-of-iterate-array-values 5.3867+-0.1774 ? 5.4963+-0.2291 ? might be 1.0203x slower fround 26.3141+-0.3220 26.0214+-0.1657 might be 1.0113x faster ftl-library-inlining-dataview 102.2464+-1.2467 ? 104.4132+-1.6726 ? might be 1.0212x slower ftl-library-inlining 166.0524+-6.8950 160.4786+-7.0118 might be 1.0347x faster function-call 16.8612+-0.4604 ? 16.8889+-0.3230 ? function-dot-apply 3.3182+-0.0404 3.3043+-0.0349 function-test 4.1913+-0.0257 ? 4.1981+-0.0545 ? function-with-eval 135.5319+-0.8219 135.3693+-0.5417 gcse-poly-get-less-obvious 40.5550+-0.3706 ? 40.8477+-0.3487 ? gcse-poly-get 41.7665+-0.2807 ? 41.9327+-0.0342 ? gcse 5.7589+-0.0258 ? 5.7709+-0.0409 ? get-by-id-bimorphic-check-structure-elimination-simple 3.8595+-0.0305 ? 3.9019+-0.0715 ? might be 1.0110x slower get-by-id-bimorphic-check-structure-elimination 7.6118+-0.0206 ? 7.6434+-0.0254 ? get-by-id-chain-from-try-block 3.6387+-0.0256 ! 3.9825+-0.0152 ! definitely 1.0945x slower get-by-id-check-structure-elimination 6.5596+-0.0115 6.5445+-0.0173 get-by-id-proto-or-self 28.8024+-1.9243 ? 29.1106+-2.3331 ? might be 1.0107x slower get-by-id-quadmorphic-check-structure-elimination-simple 4.2823+-0.0222 ? 4.3004+-0.0125 ? get-by-id-self-or-proto 28.2912+-2.2309 ? 28.5925+-2.0037 ? might be 1.0107x slower get-by-val-out-of-bounds 6.3539+-0.0274 ? 6.3576+-0.1044 ? get-by-val-with-string-bimorphic-check-structure-elimination-simple 3.8989+-0.0256 ? 4.1175+-0.2969 ? might be 1.0561x slower get-by-val-with-string-bimorphic-check-structure-elimination 9.8220+-0.0260 ? 9.8566+-0.0222 ? get-by-val-with-string-chain-from-try-block 3.7454+-0.0314 ! 4.0640+-0.0174 ! definitely 1.0851x slower get-by-val-with-string-check-structure-elimination 8.8920+-0.0336 8.8857+-0.0246 get-by-val-with-string-proto-or-self 29.8017+-1.8176 29.6752+-2.0641 get-by-val-with-string-quadmorphic-check-structure-elimination-simple 5.1317+-0.0473 5.0025+-0.1080 might be 1.0258x faster get-by-val-with-string-self-or-proto 28.6436+-1.4561 28.6262+-1.3682 get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 4.6360+-0.1007 4.5844+-0.0400 might be 1.0113x faster get-by-val-with-symbol-bimorphic-check-structure-elimination 19.0193+-0.1561 18.9594+-0.0710 get-by-val-with-symbol-chain-from-try-block 3.7543+-0.0611 ! 4.0748+-0.0263 ! definitely 1.0854x slower get-by-val-with-symbol-check-structure-elimination 18.1030+-0.1484 18.0848+-0.1438 get-by-val-with-symbol-proto-or-self 29.5174+-2.1053 28.6266+-1.4266 might be 1.0311x faster get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 6.1060+-0.0085 ? 6.1151+-0.0291 ? get-by-val-with-symbol-self-or-proto 28.8914+-1.8763 28.6772+-1.9660 get_callee_monomorphic 3.3156+-0.0647 ? 3.3271+-0.0324 ? get_callee_polymorphic 4.9327+-0.0579 ? 4.9952+-0.1655 ? might be 1.0127x slower getter-no-activation 6.7681+-0.0275 ? 6.7911+-0.0251 ? getter-prototype 15.1134+-0.1463 15.0501+-0.1091 getter-richards-try-catch 1870.1387+-69.9861 1864.3440+-62.4338 getter-richards 134.2158+-2.1738 ? 134.7987+-2.0508 ? getter 7.5230+-0.0252 7.5125+-0.0144 global-object-access-with-mutating-structure 8.5840+-0.0718 ? 8.6278+-0.0972 ? global-var-const-infer-fire-from-opt 1.2727+-0.0169 1.2601+-0.0099 might be 1.0100x faster global-var-const-infer 1.1393+-0.0115 ? 1.1439+-0.0435 ? hard-overflow-check-equal 55.7414+-0.5813 55.5410+-0.5327 hard-overflow-check 55.0785+-0.1224 ? 55.3795+-0.4965 ? HashMap-put-get-iterate-keys 35.2813+-0.7416 35.0245+-0.2935 HashMap-put-get-iterate 34.9133+-0.6077 34.8022+-0.5673 HashMap-string-put-get-iterate 37.4821+-0.5637 ? 37.5777+-0.6590 ? hoist-make-rope 14.3650+-0.8142 14.1235+-0.5333 might be 1.0171x faster hoist-poly-check-structure-effectful-loop 6.1369+-0.0343 ? 6.1399+-0.0177 ? hoist-poly-check-structure 4.7804+-0.3442 4.6731+-0.0811 might be 1.0230x faster imul-double-only 11.6418+-0.7567 11.1224+-0.3677 might be 1.0467x faster imul-int-only 13.7286+-0.5239 13.2067+-1.0251 might be 1.0395x faster imul-mixed 11.0979+-0.6299 ? 11.2597+-0.2936 ? might be 1.0146x slower in-four-cases 32.8134+-0.4025 32.6750+-0.4599 in-one-case-false 16.1927+-0.1024 16.1294+-0.0560 in-one-case-true 16.1504+-0.0494 ? 16.3423+-0.5340 ? might be 1.0119x slower in-two-cases 17.3976+-0.1941 17.3130+-0.0340 indexed-properties-in-objects 4.2146+-0.0383 ? 4.2178+-0.0131 ? infer-closure-const-then-mov-no-inline 5.6752+-0.0540 ! 5.8690+-0.1253 ! definitely 1.0341x slower infer-closure-const-then-mov 26.4984+-0.2540 26.3781+-0.3077 infer-closure-const-then-put-to-scope-no-inline 19.1555+-0.0815 19.0784+-0.0229 infer-closure-const-then-put-to-scope 33.4886+-0.1321 ? 33.9130+-0.4879 ? might be 1.0127x slower infer-closure-const-then-reenter-no-inline 83.2848+-0.5207 ? 83.4138+-0.7336 ? infer-closure-const-then-reenter 33.6777+-0.9208 ? 33.8130+-0.3056 ? infer-constant-global-property 5.1165+-0.0325 5.1116+-0.0392 infer-constant-property 3.9057+-0.0146 ? 3.9081+-0.0122 ? infer-one-time-closure-ten-vars 14.3982+-0.2095 ? 14.4559+-0.2140 ? infer-one-time-closure-two-vars 13.8418+-0.3003 ? 13.9475+-0.2584 ? infer-one-time-closure 13.7076+-0.1182 ? 13.7498+-0.2085 ? infer-one-time-deep-closure 22.6681+-0.1515 22.6146+-0.0934 inline-arguments-access 5.5244+-0.0478 ? 5.6437+-0.1755 ? might be 1.0216x slower inline-arguments-aliased-access 5.6864+-0.1856 ? 5.7124+-0.0947 ? inline-arguments-local-escape 5.5634+-0.0628 5.5350+-0.0576 inline-get-scoped-var 6.6423+-0.0355 6.6045+-0.0455 inlined-put-by-id-transition 14.1938+-0.3420 13.9316+-0.0843 might be 1.0188x faster inlined-put-by-val-with-string-transition 70.0074+-2.2253 68.5771+-1.3127 might be 1.0209x faster inlined-put-by-val-with-symbol-transition 69.0124+-0.9006 ? 69.5269+-2.5078 ? int-or-other-abs-then-get-by-val 6.6487+-0.0332 ? 6.6537+-0.0295 ? int-or-other-abs-zero-then-get-by-val 24.5043+-0.1337 ? 24.9112+-0.4230 ? might be 1.0166x slower int-or-other-add-then-get-by-val 6.5730+-0.0188 ? 6.5910+-0.0687 ? int-or-other-add 7.6464+-0.0223 ? 7.6485+-0.0358 ? int-or-other-div-then-get-by-val 5.7783+-0.0129 5.7773+-0.0228 int-or-other-max-then-get-by-val 5.9312+-0.0450 5.9265+-0.0182 int-or-other-min-then-get-by-val 5.9487+-0.0609 ? 5.9548+-0.0650 ? int-or-other-mod-then-get-by-val 5.4964+-0.0375 5.4768+-0.0344 int-or-other-mul-then-get-by-val 5.6390+-0.0691 5.5814+-0.0054 might be 1.0103x faster int-or-other-neg-then-get-by-val 6.4544+-0.0954 6.4026+-0.0323 int-or-other-neg-zero-then-get-by-val 24.2410+-0.0599 ! 25.0129+-0.2402 ! definitely 1.0318x slower int-or-other-sub-then-get-by-val 6.5179+-0.0161 6.5120+-0.0149 int-or-other-sub 5.0608+-0.0983 ? 5.1800+-0.1908 ? might be 1.0235x slower int-overflow-local 6.2792+-0.0386 6.2636+-0.0123 Int16Array-alloc-long-lived 66.4665+-0.2307 66.0540+-0.2087 Int16Array-bubble-sort-with-byteLength 37.3459+-0.3587 ? 37.4466+-0.3034 ? Int16Array-bubble-sort 36.1155+-0.1279 ? 37.3836+-1.9672 ? might be 1.0351x slower Int16Array-load-int-mul 2.3021+-0.0108 ? 2.3124+-0.0061 ? Int16Array-to-Int32Array-set 70.9501+-0.2458 ? 71.0643+-0.6816 ? Int32Array-alloc-large 24.7376+-0.6315 24.6752+-0.9684 Int32Array-alloc-long-lived 74.7989+-0.5668 74.4100+-0.3471 Int32Array-alloc 3.7001+-0.0545 3.6989+-0.0601 Int32Array-Int8Array-view-alloc 10.0502+-0.4725 9.8254+-0.2423 might be 1.0229x faster int52-spill 7.5794+-0.1256 ? 7.6393+-0.1201 ? Int8Array-alloc-long-lived 59.4588+-0.2531 59.2479+-0.2786 Int8Array-load-with-byteLength 4.8062+-0.0260 ? 4.8218+-0.0350 ? Int8Array-load 4.8056+-0.0245 ? 4.8337+-0.0231 ? integer-divide 16.5186+-0.1049 ? 16.5897+-0.2297 ? integer-modulo 2.9445+-0.0163 ? 2.9608+-0.0306 ? is-boolean-fold-tricky 5.9893+-0.0242 5.9767+-0.0337 is-boolean-fold 4.1237+-0.0295 4.1072+-0.0277 is-function-fold-tricky-internal-function 16.6972+-0.1498 16.5627+-0.0172 is-function-fold-tricky 6.1254+-0.0366 ? 6.2771+-0.3212 ? might be 1.0248x slower is-function-fold 4.1505+-0.0486 4.1465+-0.0362 is-number-fold-tricky 5.9962+-0.0590 5.9914+-0.1165 is-number-fold 4.1047+-0.0301 4.0786+-0.0428 is-object-or-null-fold-functions 4.2348+-0.0583 ? 4.3218+-0.1831 ? might be 1.0206x slower is-object-or-null-fold-less-tricky 6.0994+-0.0285 ? 6.1040+-0.0576 ? is-object-or-null-fold-tricky 8.2373+-0.0373 ? 8.2391+-0.0228 ? is-object-or-null-fold 4.1617+-0.0370 4.1442+-0.0442 is-object-or-null-trickier-function 6.2416+-0.0334 6.2290+-0.0213 is-object-or-null-trickier-internal-function 16.9395+-0.0560 ? 17.0083+-0.1841 ? is-object-or-null-tricky-function 6.1932+-0.0408 6.1547+-0.0105 is-object-or-null-tricky-internal-function 12.7987+-0.0391 ? 12.8287+-0.1420 ? is-string-fold-tricky 5.9853+-0.0536 5.9618+-0.0225 is-string-fold 4.2124+-0.2802 4.1169+-0.0582 might be 1.0232x faster is-undefined-fold-tricky 5.0199+-0.1584 4.9664+-0.0283 might be 1.0108x faster is-undefined-fold 4.0912+-0.0185 ? 4.1039+-0.0446 ? JSONP-negative-0 0.5252+-0.0449 0.5052+-0.0107 might be 1.0395x faster large-int-captured 6.1976+-0.0599 ? 6.2953+-0.1172 ? might be 1.0158x slower large-int-neg 22.9172+-0.4669 22.5513+-0.1776 might be 1.0162x faster large-int 20.6276+-0.3874 20.3119+-0.3381 might be 1.0155x faster load-varargs-elimination 32.5995+-0.2996 ? 32.9308+-0.6288 ? might be 1.0102x slower logical-not-weird-types 4.9291+-0.0232 ? 4.9536+-0.0415 ? logical-not 6.8466+-0.0449 6.8434+-0.0471 lots-of-fields 16.8601+-0.2185 ? 16.8761+-0.1879 ? make-indexed-storage 4.3077+-0.2181 ? 4.3248+-0.2791 ? make-rope-cse 5.0444+-0.0586 ? 5.0462+-0.0530 ? marsaglia-larger-ints 52.9128+-0.1717 ? 53.0232+-0.3269 ? marsaglia-osr-entry 32.5551+-0.1743 32.4532+-0.1518 math-with-out-of-bounds-array-values 35.3060+-0.2474 ? 35.9518+-0.7310 ? might be 1.0183x slower max-boolean 3.5998+-0.0814 ? 3.6320+-0.0275 ? method-on-number 25.1010+-0.4190 24.8434+-0.1139 might be 1.0104x faster min-boolean 3.6135+-0.0322 ? 3.6691+-0.0251 ? might be 1.0154x slower minus-boolean-double 4.5515+-0.0383 ? 4.5540+-0.0208 ? minus-boolean 3.4004+-0.0310 ? 3.4149+-0.0189 ? misc-strict-eq 50.3940+-0.7094 49.5806+-1.9255 might be 1.0164x faster mod-boolean-double 15.3607+-0.0362 ? 15.5790+-0.4649 ? might be 1.0142x slower mod-boolean 11.0150+-0.0396 10.9890+-0.0210 mul-boolean-double 5.3095+-0.0375 5.2993+-0.0308 mul-boolean 4.1471+-0.0157 4.1462+-0.0153 neg-boolean 4.5807+-0.0332 4.5560+-0.0174 negative-zero-divide 0.6781+-0.0230 0.6724+-0.0055 negative-zero-modulo 0.6724+-0.0241 0.6481+-0.0174 might be 1.0375x faster negative-zero-negate 0.6346+-0.0126 ? 0.6393+-0.0144 ? nested-function-parsing 71.0327+-0.6498 ^ 69.3320+-0.5226 ^ definitely 1.0245x faster new-array-buffer-dead 136.7739+-2.6853 135.8597+-0.5147 new-array-buffer-push 9.1641+-0.3122 9.0615+-0.1954 might be 1.0113x faster new-array-dead 25.8010+-0.6691 ? 25.9115+-0.6712 ? new-array-push 5.5897+-0.3182 5.4299+-0.3296 might be 1.0294x faster no-inline-constructor 51.6239+-0.4986 ? 51.7477+-0.6987 ? number-test 4.5034+-0.0370 4.4937+-0.0193 object-closure-call 7.5679+-0.0759 7.5538+-0.0189 object-get-own-property-symbols-on-large-array 5.3756+-0.1009 ? 5.4712+-0.1056 ? might be 1.0178x slower object-test 4.1789+-0.0134 ? 4.1976+-0.0267 ? obvious-sink-pathology-taken 157.4008+-1.2094 157.3849+-1.0780 obvious-sink-pathology 50.7453+-0.5219 ? 50.7794+-0.2623 ? obviously-elidable-new-object 45.4500+-0.3307 45.2374+-0.2762 plus-boolean-arith 3.6351+-0.0107 3.6311+-0.0139 plus-boolean-double 4.5582+-0.0195 ? 4.5719+-0.0208 ? plus-boolean 3.4980+-0.0222 3.4713+-0.0244 poly-chain-access-different-prototypes-simple 3.7990+-0.0324 3.7673+-0.0116 poly-chain-access-different-prototypes 3.8078+-0.0334 3.8050+-0.0265 poly-chain-access-simpler 3.7893+-0.0220 3.7683+-0.0265 poly-chain-access 3.7632+-0.0146 ? 3.8610+-0.2134 ? might be 1.0260x slower poly-stricteq 91.5854+-0.0826 ? 91.6396+-0.1185 ? polymorphic-array-call 2.0868+-0.0494 2.0607+-0.0497 might be 1.0126x faster polymorphic-get-by-id 4.8297+-0.0154 4.8203+-0.0132 polymorphic-put-by-id 52.0236+-0.6187 51.3921+-0.8107 might be 1.0123x faster polymorphic-put-by-val-with-string 52.1907+-0.2282 ? 52.3078+-0.4663 ? polymorphic-put-by-val-with-symbol 52.1076+-0.4977 ? 52.8072+-1.4808 ? might be 1.0134x slower polymorphic-structure 19.3704+-0.0427 ? 19.3777+-0.1768 ? polyvariant-monomorphic-get-by-id 11.9708+-0.0618 ? 11.9958+-0.1861 ? proto-getter-access 13.0066+-0.3483 12.8970+-0.1686 prototype-access-with-mutating-prototype 8.2982+-0.2350 ? 8.3592+-0.2093 ? put-by-id-replace-and-transition 12.3503+-0.2141 12.2558+-0.2325 put-by-id-slightly-polymorphic 4.1145+-0.0298 4.0736+-0.0168 might be 1.0100x faster put-by-id 15.6458+-0.2494 15.6456+-0.3687 put-by-val-direct 0.6734+-0.0088 ? 0.6781+-0.0238 ? put-by-val-large-index-blank-indexing-type 7.9946+-0.1090 7.8265+-0.1543 might be 1.0215x faster put-by-val-machine-int 3.8170+-0.1590 3.7843+-0.0713 put-by-val-with-string-replace-and-transition 17.4609+-0.1070 ? 17.5715+-0.0635 ? put-by-val-with-string-slightly-polymorphic 5.4100+-0.0380 5.3891+-0.0149 put-by-val-with-string 16.5839+-0.6078 16.5372+-0.5327 put-by-val-with-symbol-replace-and-transition 19.0431+-0.3243 18.7678+-0.1287 might be 1.0147x faster put-by-val-with-symbol-slightly-polymorphic 5.7996+-0.0146 5.7827+-0.0144 put-by-val-with-symbol 16.6856+-0.3784 16.4890+-0.1980 might be 1.0119x faster rare-osr-exit-on-local 21.6786+-0.1149 21.6671+-0.1223 raytrace-with-empty-try-catch 9.6935+-0.0436 ! 9.9341+-0.0798 ! definitely 1.0248x slower raytrace-with-try-catch 17.7987+-0.5406 ? 18.0579+-0.1999 ? might be 1.0146x slower register-pressure-from-osr 29.0639+-0.5171 28.8796+-0.0365 repeat-multi-get-by-offset 33.7936+-0.1687 33.7242+-0.1668 richards-empty-try-catch 122.4336+-0.8095 ^ 90.4892+-0.6195 ^ definitely 1.3530x faster richards-try-catch 399.7264+-1.2792 ^ 375.1357+-0.8240 ^ definitely 1.0656x faster setter-prototype 12.2536+-0.1653 12.2076+-0.1057 setter 7.6783+-0.2618 7.5256+-0.0174 might be 1.0203x faster simple-activation-demo 37.0419+-0.0572 ? 37.2278+-0.4748 ? simple-getter-access 16.2344+-0.2092 16.2269+-0.1998 simple-poly-call-nested 11.7894+-0.0425 ? 11.8098+-0.0178 ? simple-poly-call 2.0040+-0.0145 1.9996+-0.0128 sin-boolean 29.3145+-1.8669 27.6581+-1.4455 might be 1.0599x faster singleton-scope 94.7394+-0.1547 ? 94.9641+-0.4632 ? sink-function 15.0571+-0.2413 ? 15.1237+-0.1376 ? sink-huge-activation 24.7854+-1.0357 23.8591+-1.0645 might be 1.0388x faster sinkable-new-object-dag 86.3230+-0.9776 86.2346+-0.7046 sinkable-new-object-taken 69.2958+-0.4143 ? 69.5146+-0.4381 ? sinkable-new-object 50.9557+-0.6048 50.6478+-0.4427 slow-array-profile-convergence 4.4060+-0.0812 4.3650+-0.1113 slow-convergence 4.1987+-0.0251 4.1734+-0.0147 slow-ternaries 26.5315+-1.8516 26.4625+-1.9151 sorting-benchmark 28.3883+-0.3145 ? 28.6322+-0.4623 ? sparse-conditional 1.9095+-0.0324 1.8959+-0.0150 splice-to-remove 21.5979+-0.1242 ? 21.6539+-0.2118 ? string-char-code-at 23.2804+-0.2690 23.2059+-0.1542 string-concat-object 3.0804+-0.0584 ? 3.1008+-0.1125 ? string-concat-pair-object 2.9462+-0.0365 ? 3.0466+-0.2330 ? might be 1.0341x slower string-concat-pair-simple 14.7628+-0.1582 ? 14.8768+-0.3005 ? string-concat-simple 15.4043+-0.1056 15.2892+-0.0928 string-cons-repeat 10.1652+-0.0786 10.1555+-0.1569 string-cons-tower 10.4726+-0.4072 10.2951+-0.1555 might be 1.0172x faster string-equality 28.1293+-0.0509 ? 28.3587+-0.5182 ? string-get-by-val-big-char 10.3381+-0.4721 10.1259+-0.0364 might be 1.0210x faster string-get-by-val-out-of-bounds-insane 5.2511+-0.0852 ! 5.5583+-0.1622 ! definitely 1.0585x slower string-get-by-val-out-of-bounds 7.3152+-0.0184 7.3046+-0.0149 string-get-by-val 4.7300+-0.0281 ! 4.8795+-0.0067 ! definitely 1.0316x slower string-hash 2.9864+-0.0184 2.9779+-0.0183 string-long-ident-equality 23.3358+-0.1861 23.1939+-0.0619 string-out-of-bounds 19.0833+-0.2352 19.0661+-0.1702 string-repeat-arith 44.7087+-0.1152 44.5767+-0.3256 string-sub 62.7926+-0.4682 ^ 60.1677+-0.6877 ^ definitely 1.0436x faster string-test 4.2957+-0.0342 ? 4.2993+-0.0283 ? string-var-equality 51.8596+-0.0914 ? 52.0982+-0.4469 ? structure-hoist-over-transitions 3.4660+-0.0334 3.4451+-0.0330 substring-concat-weird 56.7899+-0.8706 56.7745+-0.5777 substring-concat 62.0999+-0.3912 ? 62.4218+-0.5862 ? substring 68.9284+-0.2005 ? 69.2074+-0.3038 ? switch-char-constant 3.8890+-0.0469 3.8806+-0.0217 switch-char 8.5053+-0.0182 ? 8.5162+-0.0447 ? switch-constant 10.8789+-0.2570 10.8077+-0.1746 switch-string-basic-big-var 28.4442+-0.3508 28.1883+-0.2185 switch-string-basic-big 24.9869+-0.4139 ? 25.3825+-0.3706 ? might be 1.0158x slower switch-string-basic-var 23.0173+-0.0573 ? 23.3120+-0.4290 ? might be 1.0128x slower switch-string-basic 21.1713+-0.1870 ? 21.2091+-0.1865 ? switch-string-big-length-tower-var 29.1825+-0.0338 ? 29.2374+-0.0581 ? switch-string-length-tower-var 22.5876+-0.2338 ? 22.5924+-0.2054 ? switch-string-length-tower 19.3107+-0.4555 19.2202+-0.0822 switch-string-short 19.0660+-0.0408 ? 19.0806+-0.0624 ? switch 15.7552+-0.1146 15.7283+-0.1383 tear-off-arguments-simple 4.3555+-0.0641 4.3528+-0.0723 tear-off-arguments 5.8740+-0.0816 ? 5.9778+-0.1569 ? might be 1.0177x slower temporal-structure 18.6786+-0.4146 ? 18.6893+-0.1988 ? to-int32-boolean 19.2125+-0.0196 19.2117+-0.0242 try-catch-get-by-val-cloned-arguments 14.9093+-0.1495 ^ 14.5811+-0.0798 ^ definitely 1.0225x faster try-catch-get-by-val-direct-arguments 3.1863+-0.0401 ? 3.2602+-0.0345 ? might be 1.0232x slower try-catch-get-by-val-scoped-arguments 6.5813+-0.0891 ! 6.9121+-0.0426 ! definitely 1.0503x slower typed-array-get-set-by-val-profiling 42.6086+-0.5064 42.4781+-0.4834 undefined-property-access 514.3839+-0.7014 ? 514.5535+-0.5463 ? undefined-test 4.4510+-0.0324 ? 4.4643+-0.0607 ? unprofiled-licm 18.9864+-0.2788 18.7829+-0.2014 might be 1.0108x faster v8-raytrace-with-empty-try-catch 82.0640+-0.5641 ! 86.6988+-0.4571 ! definitely 1.0565x slower v8-raytrace-with-try-catch 118.1038+-0.5443 ? 118.5107+-0.9642 ? varargs-call 20.3959+-0.0808 ? 20.5775+-0.3677 ? varargs-construct-inline 35.9178+-0.3370 ? 36.0191+-0.2834 ? varargs-construct 30.2556+-0.0640 ? 30.2693+-0.1125 ? varargs-inline 13.9916+-0.0900 ? 14.1214+-0.0631 ? varargs-strict-mode 15.6438+-0.0457 15.5703+-0.0873 varargs 15.4666+-0.0257 ? 15.5222+-0.1852 ? weird-inlining-const-prop 3.3014+-0.0531 3.2827+-0.0749 <geometric> 12.8300+-0.0151 12.8209+-0.0080 might be 1.0007x faster og ftlTryCatch AsmBench: bigfib.cpp 730.9815+-2.4785 729.1859+-3.3442 cray.c 620.8268+-2.5730 ? 623.0887+-2.6117 ? dry.c 714.8593+-6.0441 709.7355+-9.1338 FloatMM.c 1061.6207+-0.8239 1061.4532+-0.3197 gcc-loops.cpp 5982.9512+-4.2550 5980.1173+-3.4851 n-body.c 1446.6202+-1.1786 ? 1446.8936+-0.9711 ? Quicksort.c 621.8454+-0.7185 ^ 611.8690+-7.3304 ^ definitely 1.0163x faster stepanov_container.cpp 5393.9252+-15.7115 ? 5400.6274+-17.9596 ? Towers.c 375.9210+-0.5808 375.8098+-0.3801 <geometric> 1158.4793+-1.6571 1155.6720+-1.9524 might be 1.0024x faster og ftlTryCatch CompressionBench: huffman 82.4093+-0.5053 82.2625+-0.4126 arithmetic-simple 490.6205+-1.4659 ? 491.2704+-1.5450 ? arithmetic-precise 399.4070+-2.3886 ? 401.2843+-3.2933 ? arithmetic-complex-precise 398.0493+-2.4813 ? 399.4567+-1.2182 ? arithmetic-precise-order-0 507.1405+-0.9587 506.0706+-0.4088 arithmetic-precise-order-1 473.5144+-1.8129 ? 474.4021+-3.5032 ? arithmetic-precise-order-2 566.5544+-3.8521 563.4081+-2.5039 arithmetic-simple-order-1 569.0065+-2.5374 567.6103+-1.6439 arithmetic-simple-order-2 650.5322+-2.3931 ? 650.6514+-2.1461 ? lz-string 432.4509+-13.6772 427.6992+-3.6884 might be 1.0111x faster <geometric> 411.6987+-0.9557 411.2540+-0.9576 might be 1.0011x faster og ftlTryCatch Geomean of preferred means: <scaled-result> 81.7479+-0.1057 81.6447+-0.1039 might be 1.0013x faster
Saam Barati
Comment 14
2015-11-09 23:49:23 PST
landed in:
http://trac.webkit.org/changeset/192203
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