Bug 149409 - Implement try/catch in the FTL
Summary: Implement try/catch in the FTL
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Saam Barati
URL:
Keywords:
Depends on: 145295 149601 149970 150039 150104 150760
Blocks:
  Show dependency treegraph
 
Reported: 2015-09-21 11:15 PDT by Saam Barati
Modified: 2015-11-09 23:49 PST (History)
11 users (show)

See Also:


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

Note You need to log in before you can comment on or make changes to this bug.
Description Saam Barati 2015-09-21 11:15:02 PDT
...
Comment 1 Saam Barati 2015-10-12 11:24:06 PDT
Created attachment 262908 [details]
WIP
Comment 2 Saam Barati 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.
Comment 3 Saam Barati 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
Comment 4 Saam Barati 2015-11-02 18:29:22 PST
Created attachment 264653 [details]
patch
Comment 5 WebKit Commit Bot 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.
Comment 6 Saam Barati 2015-11-02 18:34:37 PST
Created attachment 264654 [details]
patch
Comment 7 WebKit Commit Bot 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.
Comment 8 Filip Pizlo 2015-11-03 15:59:27 PST
Comment on attachment 264654 [details]
patch

Let's do this!
Comment 9 Saam Barati 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
Comment 10 Filip Pizlo 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.
Comment 11 Saam Barati 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
Comment 12 Saam Barati 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.
Comment 13 Saam Barati 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
Comment 14 Saam Barati 2015-11-09 23:49:23 PST
landed in:
http://trac.webkit.org/changeset/192203