Bug 148323 - DFG::NodeOrigin should have a flag determining if exiting is OK right now
Summary: DFG::NodeOrigin should have a flag determining if exiting is OK right now
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: Other
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on:
Blocks: 145204
  Show dependency treegraph
 
Reported: 2015-08-21 12:37 PDT by Filip Pizlo
Modified: 2015-08-21 13:49 PDT (History)
11 users (show)

See Also:


Attachments
the patch (12.06 KB, patch)
2015-08-21 12:41 PDT, Filip Pizlo
saam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2015-08-21 12:37:49 PDT
This allows us to separate the "can I exit?" question from the "would I know where I exit if I could?" question.
Comment 1 Filip Pizlo 2015-08-21 12:41:58 PDT
Created attachment 259645 [details]
the patch
Comment 2 Filip Pizlo 2015-08-21 13:08:40 PDT
So, this approach looks like it's fine.
Comment 3 Filip Pizlo 2015-08-21 13:08:57 PDT
Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on shakezilla (MacBookPro11,3).

VMs tested:
"TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r188751)
"BetterNodeOrigin" at /Volumes/Data/quartary/OpenSource/WebKitBuild/Release/jsc (r188751)

Collected 7 samples per benchmark/VM, with 7 VM invocations per benchmark. Emitted a call to gc() between sample measurements.
Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level
timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                        TipOfTree              BetterNodeOrigin                                 
SunSpider:
   3d-cube                                            4.5413+-0.1654     ?      4.7584+-0.1491        ? might be 1.0478x slower
   3d-morph                                           5.2160+-0.1095     ^      4.9596+-0.1342        ^ definitely 1.0517x faster
   3d-raytrace                                        5.0456+-0.1293     ?      5.0732+-0.0426        ?
   access-binary-trees                                1.9592+-0.0529            1.9524+-0.0680        
   access-fannkuch                                    5.1925+-0.0363     ?      5.2421+-0.0817        ?
   access-nbody                                       2.3879+-0.0206     ?      2.3929+-0.0374        ?
   access-nsieve                                      2.9907+-0.0477            2.9663+-0.0163        
   bitops-3bit-bits-in-byte                           1.4406+-0.0433     ?      1.4522+-0.0757        ?
   bitops-bits-in-byte                                3.1776+-0.0448     ?      3.2200+-0.0547        ? might be 1.0133x slower
   bitops-bitwise-and                                 1.9488+-0.0365     ?      1.9608+-0.0499        ?
   bitops-nsieve-bits                                 2.9211+-0.0616            2.8985+-0.0401        
   controlflow-recursive                              2.0565+-0.0898            1.9774+-0.0986          might be 1.0400x faster
   crypto-aes                                         3.7225+-0.0627     ?      3.7307+-0.1363        ?
   crypto-md5                                         2.3701+-0.1695            2.2899+-0.0316          might be 1.0350x faster
   crypto-sha1                                        2.2240+-0.1232            2.1957+-0.0791          might be 1.0129x faster
   date-format-tofte                                  6.7156+-0.4762            6.4824+-0.1468          might be 1.0360x faster
   date-format-xparb                                  4.4908+-0.2056            4.3705+-0.1083          might be 1.0275x faster
   math-cordic                                        2.7206+-0.0724            2.7154+-0.0636        
   math-partial-sums                                  5.1407+-0.1244     ^      4.9267+-0.0491        ^ definitely 1.0434x faster
   math-spectral-norm                                 1.7443+-0.0201     ?      1.7860+-0.0485        ? might be 1.0239x slower
   regexp-dna                                         6.8688+-1.0380            6.4928+-0.2613          might be 1.0579x faster
   string-base64                                      4.2482+-0.0308     ?      4.2697+-0.0767        ?
   string-fasta                                       5.7249+-0.0612     ?      5.8695+-0.2520        ? might be 1.0253x slower
   string-tagcloud                                    8.0379+-0.1021     ?      8.1050+-0.1945        ?
   string-unpack-code                                17.9857+-0.7187           17.7494+-0.4471          might be 1.0133x faster
   string-validate-input                              4.4434+-0.0735     ?      4.5387+-0.0729        ? might be 1.0214x slower

   <arithmetic>                                       4.4352+-0.0672            4.3991+-0.0419          might be 1.0082x faster

                                                        TipOfTree              BetterNodeOrigin                                 
LongSpider:
   3d-cube                                          795.9048+-3.8712     ?    802.1626+-8.5342        ?
   3d-morph                                        1495.2937+-5.2605     ?   1497.4363+-4.4805        ?
   3d-raytrace                                      593.7916+-7.6536     ?    596.2236+-4.2410        ?
   access-binary-trees                              792.1899+-3.4583     ?    795.5823+-7.2012        ?
   access-fannkuch                                  274.3227+-4.6991     ?    275.3023+-5.8722        ?
   access-nbody                                     511.7256+-3.3917     ?    512.3590+-2.7202        ?
   access-nsieve                                    361.7614+-11.9698         356.8143+-9.9749          might be 1.0139x faster
   bitops-3bit-bits-in-byte                          38.1833+-0.4510     ?     38.2896+-1.6657        ?
   bitops-bits-in-byte                               74.9761+-1.2290           74.6446+-0.9831        
   bitops-nsieve-bits                               407.4301+-7.7800          402.9662+-5.4157          might be 1.0111x faster
   controlflow-recursive                            443.5131+-1.7259     ?    444.9030+-4.2338        ?
   crypto-aes                                       564.7191+-8.7236     ?    572.3733+-8.5373        ? might be 1.0136x slower
   crypto-md5                                       491.6247+-5.0637          489.4072+-6.0464        
   crypto-sha1                                      646.5979+-11.8603         628.4386+-9.0969          might be 1.0289x faster
   date-format-tofte                                499.8803+-10.0772    ?    500.7067+-11.5570       ?
   date-format-xparb                                622.2130+-8.9110          617.5103+-9.8105        
   hash-map                                         153.1165+-1.9305     ?    154.4846+-1.3467        ?
   math-cordic                                      482.5176+-2.1755          482.3534+-1.8977        
   math-partial-sums                                467.0928+-1.9516          463.9428+-5.0349        
   math-spectral-norm                               548.2729+-1.8376     ?    548.5327+-2.8350        ?
   string-base64                                    352.1690+-3.7258     ?    352.7799+-7.5592        ?
   string-fasta                                     370.7886+-5.0309          370.3703+-3.3105        
   string-tagcloud                                  175.1012+-1.4385          174.7286+-2.0831        

   <geometric>                                      388.2535+-1.2180          387.8096+-1.9338          might be 1.0011x faster

                                                        TipOfTree              BetterNodeOrigin                                 
V8Spider:
   crypto                                            47.3064+-0.8823           46.9679+-1.4315        
   deltablue                                         89.1716+-4.0658           84.7729+-2.6758          might be 1.0519x faster
   earley-boyer                                      39.3339+-1.0677     ?     39.5831+-0.4428        ?
   raytrace                                          30.9839+-0.9144     ?     35.5893+-11.1285       ? might be 1.1486x slower
   regexp                                            61.8405+-2.1210           60.5487+-0.8168          might be 1.0213x faster
   richards                                          64.7102+-2.8314           64.2883+-0.7162        
   splay                                             36.1547+-1.6990     ?     36.4871+-1.3697        ?

   <geometric>                                       49.6244+-0.8225     ?     49.8910+-1.5626        ? might be 1.0054x slower

                                                        TipOfTree              BetterNodeOrigin                                 
Octane:
   encrypt                                           0.17243+-0.00207          0.16995+-0.00260         might be 1.0146x faster
   decrypt                                           3.27300+-0.01704          3.26692+-0.00731       
   deltablue                                x2       0.15370+-0.00162          0.15321+-0.00127       
   earley                                            0.27410+-0.00275    ?     0.27446+-0.00429       ?
   boyer                                             4.18466+-0.05974    ?     4.19764+-0.12352       ?
   navier-stokes                            x2       4.85402+-0.02238    ^     4.81629+-0.01249       ^ definitely 1.0078x faster
   raytrace                                 x2       0.98215+-0.03847    ?     1.08993+-0.18065       ? might be 1.1097x slower
   richards                                 x2       0.10844+-0.00158          0.10836+-0.00101       
   splay                                    x2       0.33240+-0.00255          0.33176+-0.00557       
   regexp                                   x2      24.54254+-0.44209    ?    24.61627+-0.21539       ?
   pdfjs                                    x2      36.65500+-0.34493         36.43956+-0.55216       
   mandreel                                 x2      44.22225+-0.83063         43.83783+-0.79604       
   gbemu                                    x2      34.17593+-1.59655    ?    34.86157+-2.75094       ? might be 1.0201x slower
   closure                                           0.55530+-0.00281          0.55310+-0.00145       
   jquery                                            7.07723+-0.07925          7.07683+-0.03844       
   box2d                                    x2       9.91120+-0.06927          9.86419+-0.09900       
   zlib                                     x2     382.62213+-6.73212    ?   383.31353+-11.69601      ?
   typescript                               x2     633.40747+-7.45312    ?   647.86897+-10.69427      ? might be 1.0228x slower

   <geometric>                                       5.52704+-0.02430    ?     5.56349+-0.07971       ? might be 1.0066x slower

                                                        TipOfTree              BetterNodeOrigin                                 
Kraken:
   ai-astar                                          223.778+-9.099            218.455+-1.387           might be 1.0244x faster
   audio-beat-detection                               50.141+-0.505             50.103+-0.508         
   audio-dft                                          94.973+-1.320      ?      95.614+-1.711         ?
   audio-fft                                          34.510+-0.082      ?      34.534+-0.094         ?
   audio-oscillator                                   58.443+-0.282      ?      58.660+-0.657         ?
   imaging-darkroom                                   64.288+-9.051             60.668+-0.225           might be 1.0597x faster
   imaging-desaturate                                 49.969+-2.250             49.841+-2.198         
   imaging-gaussian-blur                              84.234+-1.089             83.431+-0.600         
   json-parse-financial                               37.274+-0.858      ?      37.583+-0.594         ?
   json-stringify-tinderbox                           23.232+-0.673             22.094+-0.683           might be 1.0515x faster
   stanford-crypto-aes                                41.127+-2.721             39.819+-0.257           might be 1.0329x faster
   stanford-crypto-ccm                                33.912+-0.710      ?      34.007+-0.971         ?
   stanford-crypto-pbkdf2                             93.272+-0.233      ?      93.734+-0.395         ?
   stanford-crypto-sha256-iterative                   36.053+-0.911             35.893+-0.348         

   <arithmetic>                                       66.086+-0.819             65.317+-0.228           might be 1.0118x faster

                                                        TipOfTree              BetterNodeOrigin                                 
JSRegress:
   abc-forward-loop-equal                            29.0638+-0.2828     ?     29.4178+-0.4602        ? might be 1.0122x slower
   abc-postfix-backward-loop                         29.0695+-0.3778     ?     29.0980+-0.3585        ?
   abc-simple-backward-loop                          28.8041+-0.2030           28.6400+-0.1316        
   abc-simple-forward-loop                           28.6824+-0.2449     ?     29.1112+-0.6767        ? might be 1.0150x slower
   abc-skippy-loop                                   20.3898+-0.1630     ?     20.6015+-0.2880        ? might be 1.0104x slower
   abs-boolean                                        2.4103+-0.0483     ?      2.4541+-0.0643        ? might be 1.0182x slower
   adapt-to-double-divide                            16.4771+-0.6903           15.9010+-0.1781          might be 1.0362x faster
   aliased-arguments-getbyval                         1.1587+-0.0805     ?      1.1639+-0.0499        ?
   allocate-big-object                                2.3806+-0.2413     ?      2.4150+-0.1306        ? might be 1.0145x slower
   arguments-named-and-reflective                    10.5886+-0.1570     ?     10.8143+-0.1923        ? might be 1.0213x slower
   arguments-out-of-bounds                            9.0502+-0.0933     ?      9.3137+-0.5056        ? might be 1.0291x slower
   arguments-strict-mode                              9.6526+-0.2336     ?      9.7957+-0.3246        ? might be 1.0148x slower
   arguments                                          8.4360+-0.0443     ?      8.6004+-0.2643        ? might be 1.0195x slower
   arity-mismatch-inlining                            0.7868+-0.0374     ?      0.9095+-0.3232        ? might be 1.1559x slower
   array-access-polymorphic-structure                 5.8257+-0.3322            5.7288+-0.0961          might be 1.0169x faster
   array-nonarray-polymorhpic-access                 24.4309+-0.8421           23.9834+-0.2541          might be 1.0187x faster
   array-prototype-every                             74.2883+-0.5591     ?     76.0384+-1.7936        ? might be 1.0236x slower
   array-prototype-forEach                           72.4685+-0.1377     !     73.6671+-0.9119        ! definitely 1.0165x slower
   array-prototype-map                               81.0415+-0.3956     ?     81.6445+-0.7838        ?
   array-prototype-reduce                            70.6771+-1.5471           70.6175+-1.3604        
   array-prototype-reduceRight                       70.3811+-0.9746     ?     71.0672+-1.1859        ?
   array-prototype-some                              74.8760+-1.9390     ?     75.2468+-1.6682        ?
   array-splice-contiguous                           19.4797+-0.1257     !     20.4046+-0.0878        ! definitely 1.0475x slower
   array-with-double-add                              3.4072+-0.0661            3.3285+-0.0389          might be 1.0236x faster
   array-with-double-increment                        3.0068+-0.0752            2.9934+-0.0110        
   array-with-double-mul-add                          4.7004+-0.0745     ?      4.7119+-0.0756        ?
   array-with-double-sum                              3.3234+-0.0405     ?      3.3330+-0.0967        ?
   array-with-int32-add-sub                           6.9784+-0.1068     ?      6.9867+-0.1634        ?
   array-with-int32-or-double-sum                     3.1488+-0.0210     ?      3.1700+-0.0344        ?
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     25.3948+-0.2550     ?     25.4997+-0.2810        ?
   ArrayBuffer-DataView-alloc-long-lived             11.5281+-0.0887     ?     11.5984+-0.2463        ?
   ArrayBuffer-Int32Array-byteOffset                  3.5354+-0.0699            3.4777+-0.0294          might be 1.0166x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     30.0004+-0.8481           29.9960+-0.5153        
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     19.9809+-0.1602     ?     20.0822+-0.2294        ?
   ArrayBuffer-Int8Array-alloc-long-lived            11.9165+-0.0637     ?     12.1301+-0.1910        ? might be 1.0179x slower
   ArrayBuffer-Int8Array-alloc                        9.4510+-0.1153     ?      9.6790+-0.6108        ? might be 1.0241x slower
   arrowfunction-call                                11.6264+-2.8014           10.5462+-0.0540          might be 1.1024x faster
   asmjs_bool_bug                                     7.0390+-0.0499            7.0282+-0.0298        
   assign-custom-setter-polymorphic                   2.2659+-0.0286     ?      2.2905+-0.0337        ? might be 1.0109x slower
   assign-custom-setter                               3.1657+-0.0425     ?      3.1795+-0.0390        ?
   basic-set                                          8.7880+-0.5580     ?      9.7221+-2.0339        ? might be 1.1063x slower
   big-int-mul                                        3.3800+-0.0272     ?      3.4076+-0.0133        ?
   boolean-test                                       2.8591+-0.0639            2.8384+-0.0297        
   branch-fold                                        3.5453+-0.0335            3.5423+-0.0374        
   branch-on-string-as-boolean                       16.2467+-0.0966     ?     16.4848+-0.3843        ? might be 1.0147x slower
   by-val-generic                                     2.3157+-0.0898     ?      2.3187+-0.0991        ?
   call-spread-apply                                 25.3475+-0.4661           24.9995+-0.1397          might be 1.0139x faster
   call-spread-call                                  20.7326+-0.5998     ?     20.9043+-0.7118        ?
   captured-assignments                               0.4208+-0.0128            0.4169+-0.0060        
   cast-int-to-double                                 4.9739+-0.0415     ?      4.9798+-0.0208        ?
   cell-argument                                      6.3618+-0.2679     ?      6.4556+-0.6137        ? might be 1.0147x slower
   cfg-simplify                                       2.6830+-0.0110     ?      2.6947+-0.0429        ?
   chain-getter-access                                8.3017+-0.1394            8.1808+-0.1268          might be 1.0148x faster
   cmpeq-obj-to-obj-other                            11.5347+-1.1595           11.3896+-1.0131          might be 1.0127x faster
   constant-test                                      4.7191+-0.0308     ?      4.7410+-0.0214        ?
   create-lots-of-functions                           9.6313+-0.9390     ?      9.6527+-0.6450        ?
   cse-new-array-buffer                               2.1258+-0.1904     ?      2.1304+-0.0785        ?
   cse-new-array                                      2.1860+-0.0340     ?      2.2162+-0.2868        ? might be 1.0138x slower
   DataView-custom-properties                        30.1216+-0.2375     ?     30.7803+-0.9405        ? might be 1.0219x slower
   delay-tear-off-arguments-strictmode               12.0564+-0.6187     ?     12.2154+-0.2262        ? might be 1.0132x slower
   deltablue-varargs                                157.9064+-1.7741     ?    158.4551+-2.4953        ?
   destructuring-arguments                          161.9882+-4.8000          159.7320+-1.4943          might be 1.0141x faster
   destructuring-parameters-overridden-by-function   
                                                      0.4776+-0.0967            0.4445+-0.0270          might be 1.0744x faster
   destructuring-swap                                 4.6306+-0.0458            4.5729+-0.0299          might be 1.0126x faster
   direct-arguments-getbyval                          1.1231+-0.0390     ?      1.1568+-0.0539        ? might be 1.0300x slower
   div-boolean-double                                 5.2545+-0.0909     ?      5.3113+-0.0485        ? might be 1.0108x slower
   div-boolean                                        8.0541+-0.0368     ?      8.0670+-0.0235        ?
   double-get-by-val-out-of-bounds                    4.0174+-0.0466     ^      3.9380+-0.0251        ^ definitely 1.0202x faster
   double-pollution-getbyval                          8.5988+-0.0366     ?      8.6229+-0.0805        ?
   double-pollution-putbyoffset                       3.7260+-0.0356     ?      3.8123+-0.1810        ? might be 1.0232x slower
   double-real-use                                   23.4354+-0.3914           23.4061+-0.2111        
   double-to-int32-typed-array-no-inline              1.9576+-0.0371     ?      1.9715+-0.0396        ?
   double-to-int32-typed-array                        1.7627+-0.0466            1.7502+-0.0222        
   double-to-uint32-typed-array-no-inline             2.0250+-0.0391            2.0153+-0.0437        
   double-to-uint32-typed-array                       1.8662+-0.0570            1.8283+-0.0135          might be 1.0208x faster
   elidable-new-object-dag                           33.2395+-0.4521     ?     33.2689+-0.3763        ?
   elidable-new-object-roflcopter                    32.6683+-0.5255     ?     32.7742+-0.3329        ?
   elidable-new-object-then-call                     31.2894+-0.8530     ?     31.7666+-0.5417        ? might be 1.0153x slower
   elidable-new-object-tree                          37.1651+-0.7979           36.8817+-0.4853        
   empty-string-plus-int                              4.5108+-0.0569     ?      4.5150+-0.0579        ?
   emscripten-cube2hash                              25.7342+-1.1173           25.0226+-1.3962          might be 1.0284x faster
   exit-length-on-plain-object                       12.0525+-0.0923     ^     11.8264+-0.1021        ^ definitely 1.0191x faster
   external-arguments-getbyval                        1.1408+-0.0488            1.1375+-0.0429        
   external-arguments-putbyval                        2.1161+-0.0963     ?      2.1204+-0.0892        ?
   fixed-typed-array-storage-var-index                1.0894+-0.0144     ?      1.0973+-0.0176        ?
   fixed-typed-array-storage                          0.8289+-0.0508            0.8168+-0.0232          might be 1.0149x faster
   Float32Array-matrix-mult                           3.7555+-0.0667     ?      3.7564+-0.0132        ?
   Float32Array-to-Float64Array-set                  45.7307+-0.7201           45.4910+-0.3070        
   Float64Array-alloc-long-lived                     67.6374+-0.7043           67.2691+-0.4622        
   Float64Array-to-Int16Array-set                    55.3056+-0.1554     ?     56.4387+-1.0685        ? might be 1.0205x slower
   fold-double-to-int                                11.7945+-0.1015           11.7146+-0.0753        
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     11.8528+-0.9787           10.8605+-0.7125          might be 1.0914x faster
   fold-get-by-id-to-multi-get-by-offset             11.9667+-1.9151           10.6425+-1.5578          might be 1.1244x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.2088+-1.3269     ?      9.5037+-0.5221        ? might be 1.1577x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      8.6027+-1.5659            7.6311+-1.3287          might be 1.1273x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      8.4823+-0.6573            8.3536+-0.9036          might be 1.0154x faster
   fold-multi-put-by-offset-to-put-by-offset   
                                                      4.3515+-0.8774            3.8646+-0.3347          might be 1.1260x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      7.9818+-0.1943            7.8625+-0.2143          might be 1.0152x faster
   fold-put-by-id-to-multi-put-by-offset             10.1424+-1.4085            9.3406+-0.2238          might be 1.0858x faster
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                     10.5788+-1.4356           10.2902+-0.8733          might be 1.0280x faster
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                      9.6845+-0.6998     ?      9.7968+-0.7253        ? might be 1.0116x slower
   fold-put-structure                                 4.8432+-0.9088     ?      4.9147+-0.8816        ? might be 1.0148x slower
   for-of-iterate-array-entries                      10.7535+-0.2029     ?     10.7714+-0.1190        ?
   for-of-iterate-array-keys                          3.3347+-0.1733            3.2762+-0.0279          might be 1.0179x faster
   for-of-iterate-array-values                        3.2131+-0.0590     ?      3.3423+-0.2141        ? might be 1.0402x slower
   fround                                            18.9166+-0.8221     ?     18.9314+-0.2335        ?
   ftl-library-inlining-dataview                     55.3078+-0.5726           54.9510+-0.0889        
   ftl-library-inlining                              87.6084+-4.5405           86.0035+-1.3964          might be 1.0187x faster
   function-call                                     10.7166+-0.1258           10.5603+-0.1362          might be 1.0148x faster
   function-dot-apply                                 1.9997+-0.0640            1.9860+-0.0803        
   function-test                                      2.6684+-0.0592     ?      2.7824+-0.3411        ? might be 1.0428x slower
   function-with-eval                               104.0928+-1.2840          102.9821+-1.5645          might be 1.0108x faster
   gcse-poly-get-less-obvious                        14.2357+-0.7892           13.8836+-0.0513          might be 1.0254x faster
   gcse-poly-get                                     15.9726+-0.9269           15.5199+-0.0792          might be 1.0292x faster
   gcse                                               3.8007+-0.1218            3.7724+-0.0409        
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.5556+-0.0264     ?      2.5588+-0.0780        ?
   get-by-id-bimorphic-check-structure-elimination   
                                                      5.6172+-0.0129     ?      5.6320+-0.0906        ?
   get-by-id-chain-from-try-block                     5.4611+-0.2159            5.4168+-0.0820        
   get-by-id-check-structure-elimination              4.2862+-0.0373     ?      4.2875+-0.0324        ?
   get-by-id-proto-or-self                           14.6596+-0.8092           14.5082+-0.4705          might be 1.0104x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.8397+-0.0557            2.8364+-0.0287        
   get-by-id-self-or-proto                           14.2941+-0.2744     ?     14.8570+-0.7445        ? might be 1.0394x slower
   get-by-val-out-of-bounds                           3.8463+-0.0275            3.8203+-0.0657        
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      2.7525+-0.0458     ?      2.7758+-0.0529        ?
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                      5.8607+-0.0621     ?      5.8778+-0.0358        ?
   get-by-val-with-string-chain-from-try-block   
                                                      5.4464+-0.0651            5.4211+-0.0893        
   get-by-val-with-string-check-structure-elimination   
                                                      5.1183+-0.2638            5.0146+-0.0307          might be 1.0207x faster
   get-by-val-with-string-proto-or-self              14.6846+-0.4675           14.3778+-0.2298          might be 1.0213x faster
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      3.1178+-0.0347     ?      3.1282+-0.0752        ?
   get-by-val-with-string-self-or-proto              15.1405+-0.9902     ?     16.6457+-3.8766        ? might be 1.0994x slower
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      3.0137+-0.0772            2.9849+-0.0423        
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     12.1414+-0.1014           12.1091+-0.0292        
   get-by-val-with-symbol-chain-from-try-block   
                                                      5.5957+-0.1865            5.3889+-0.0370          might be 1.0384x faster
   get-by-val-with-symbol-check-structure-elimination   
                                                     10.9048+-0.0330     ?     10.9880+-0.1200        ?
   get-by-val-with-symbol-proto-or-self              16.1063+-3.6942           14.8893+-0.6203          might be 1.0817x faster
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      3.8351+-0.0284     ?      3.8789+-0.0828        ? might be 1.0114x slower
   get-by-val-with-symbol-self-or-proto              14.5466+-0.2533     ?     14.6444+-0.4636        ?
   get_callee_monomorphic                             2.2635+-0.0280     ?      2.2967+-0.0711        ? might be 1.0147x slower
   get_callee_polymorphic                             3.3388+-0.2224            3.1939+-0.0342          might be 1.0454x faster
   getter-no-activation                               4.6781+-0.1984     ?      4.8097+-0.1651        ? might be 1.0281x slower
   getter-prototype                                   8.8122+-0.1744     ?      8.8633+-0.3124        ?
   getter-richards                                  115.0604+-4.5825     ?    117.2139+-5.4469        ? might be 1.0187x slower
   getter                                             5.1244+-0.3582     ?      5.7591+-0.6460        ? might be 1.1239x slower
   global-object-access-with-mutating-structure   
                                                      5.4633+-0.0513     ?      5.5793+-0.0693        ? might be 1.0212x slower
   global-var-const-infer-fire-from-opt               0.7776+-0.0211     ?      0.8069+-0.0419        ? might be 1.0377x slower
   global-var-const-infer                             0.5652+-0.0094     ?      0.5818+-0.0234        ? might be 1.0293x slower
   hard-overflow-check-equal                         32.6585+-0.7544           32.4177+-0.3888        
   hard-overflow-check                               32.5133+-0.3610           32.4125+-0.2540        
   HashMap-put-get-iterate-keys                      23.4854+-1.4765           23.2868+-1.2983        
   HashMap-put-get-iterate                           28.6874+-2.0548     ?     29.6574+-6.2766        ? might be 1.0338x slower
   HashMap-string-put-get-iterate                    23.6944+-2.0800           23.5474+-0.7945        
   hoist-make-rope                                    8.0046+-0.6364     ?      8.2372+-0.7075        ? might be 1.0291x slower
   hoist-poly-check-structure-effectful-loop   
                                                      4.0204+-0.0442     ?      4.1307+-0.2373        ? might be 1.0274x slower
   hoist-poly-check-structure                         3.2260+-0.0395            3.2219+-0.0319        
   imul-double-only                                   7.5090+-0.1126     ?      7.5166+-0.0933        ?
   imul-int-only                                      8.5610+-1.1911            8.5003+-0.6702        
   imul-mixed                                         6.5911+-0.3734     ?      6.6618+-0.0747        ? might be 1.0107x slower
   in-four-cases                                     16.6248+-0.1384     ?     16.6347+-0.2535        ?
   in-one-case-false                                  9.1915+-0.1885     ?      9.2116+-0.2064        ?
   in-one-case-true                                   9.2945+-0.2861            9.1452+-0.1038          might be 1.0163x faster
   in-two-cases                                       9.5404+-0.2035     ?      9.5785+-0.1251        ?
   indexed-properties-in-objects                      2.6844+-0.0285     ?      2.6973+-0.0590        ?
   infer-closure-const-then-mov-no-inline             2.9818+-0.0201            2.9802+-0.0191        
   infer-closure-const-then-mov                      17.7456+-0.3002     ?     18.0708+-0.5125        ? might be 1.0183x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     10.7764+-0.1673     ?     10.8105+-0.3084        ?
   infer-closure-const-then-put-to-scope             20.6167+-0.3399           20.3789+-0.0435          might be 1.0117x faster
   infer-closure-const-then-reenter-no-inline   
                                                     49.0720+-0.3849     ?     49.1754+-0.2477        ?
   infer-closure-const-then-reenter                  21.0137+-0.4639     ?     21.1844+-0.5144        ?
   infer-constant-global-property                     3.3478+-0.0488     ?      3.3486+-0.0187        ?
   infer-constant-property                            2.5424+-0.0197     ?      2.5748+-0.0402        ? might be 1.0127x slower
   infer-one-time-closure-ten-vars                    7.5525+-0.2238     ?      7.8120+-0.3737        ? might be 1.0344x slower
   infer-one-time-closure-two-vars                    7.1821+-0.2339            7.0724+-0.1789          might be 1.0155x faster
   infer-one-time-closure                             7.1272+-0.2851            7.0811+-0.1715        
   infer-one-time-deep-closure                       10.4603+-0.1331     ?     10.5658+-0.6527        ? might be 1.0101x slower
   inline-arguments-access                            3.6215+-0.0812            3.5955+-0.0669        
   inline-arguments-aliased-access                    3.5964+-0.0910            3.5807+-0.0622        
   inline-arguments-local-escape                      3.7923+-0.1522     ?      3.9592+-0.1635        ? might be 1.0440x slower
   inline-get-scoped-var                              4.4432+-0.1145     ?      4.5253+-0.1980        ? might be 1.0185x slower
   inlined-put-by-id-transition                       9.7841+-0.3899            9.5407+-0.4169          might be 1.0255x faster
   inlined-put-by-val-with-string-transition   
                                                     70.5015+-1.0172     ?     71.6805+-1.5979        ? might be 1.0167x slower
   inlined-put-by-val-with-symbol-transition   
                                                     69.7083+-0.8390           69.5151+-1.2443        
   int-or-other-abs-then-get-by-val                   4.7844+-0.2295            4.7074+-0.0411          might be 1.0164x faster
   int-or-other-abs-zero-then-get-by-val             15.3157+-0.0565     ?     15.6718+-0.4508        ? might be 1.0233x slower
   int-or-other-add-then-get-by-val                   4.0107+-0.1266            3.9392+-0.0686          might be 1.0182x faster
   int-or-other-add                                   4.7912+-0.0421     ?      4.8139+-0.0556        ?
   int-or-other-div-then-get-by-val                   3.5986+-0.0321     ?      3.6079+-0.0290        ?
   int-or-other-max-then-get-by-val                   3.8314+-0.0270            3.8162+-0.0295        
   int-or-other-min-then-get-by-val                   3.8140+-0.0342     ?      3.9175+-0.1419        ? might be 1.0272x slower
   int-or-other-mod-then-get-by-val                   3.4217+-0.0830            3.4133+-0.1130        
   int-or-other-mul-then-get-by-val                   3.5294+-0.0532            3.5237+-0.0458        
   int-or-other-neg-then-get-by-val                   4.3786+-0.0737            4.3471+-0.0591        
   int-or-other-neg-zero-then-get-by-val             15.4926+-0.2824     ?     15.7586+-0.7325        ? might be 1.0172x slower
   int-or-other-sub-then-get-by-val                   3.9668+-0.0480     ?      3.9810+-0.0758        ?
   int-or-other-sub                                   3.3262+-0.0348            3.3185+-0.0148        
   int-overflow-local                                 4.2141+-0.0895            4.1925+-0.0638        
   Int16Array-alloc-long-lived                       46.0607+-1.1016           45.1130+-0.3251          might be 1.0210x faster
   Int16Array-bubble-sort-with-byteLength            17.3273+-0.8495           17.0721+-0.2020          might be 1.0149x faster
   Int16Array-bubble-sort                            17.1060+-0.1918     ?     17.1841+-0.3676        ?
   Int16Array-load-int-mul                            1.3789+-0.0086     ?      1.3818+-0.0090        ?
   Int16Array-to-Int32Array-set                      43.7358+-0.3908     ?     44.3448+-1.4962        ? might be 1.0139x slower
   Int32Array-alloc-large                            11.7945+-0.3251     ?     11.9523+-0.4336        ? might be 1.0134x slower
   Int32Array-alloc-long-lived                       53.1719+-0.0604     ?     53.8047+-1.3744        ? might be 1.0119x slower
   Int32Array-alloc                                   2.9035+-0.0824            2.8067+-0.1654          might be 1.0345x faster
   Int32Array-Int8Array-view-alloc                    5.9920+-0.1729            5.9631+-0.0731        
   int52-spill                                        4.5046+-0.1031            4.4325+-0.0766          might be 1.0163x faster
   Int8Array-alloc-long-lived                        40.9935+-0.9693     ?     41.0313+-0.7080        ?
   Int8Array-load-with-byteLength                     3.3156+-0.0416            3.3110+-0.0329        
   Int8Array-load                                     3.3285+-0.0243     ?      3.5945+-0.4605        ? might be 1.0799x slower
   integer-divide                                    10.2147+-0.0838     ?     10.2914+-0.2696        ?
   integer-modulo                                     1.5087+-0.0354     ?      1.5454+-0.1176        ? might be 1.0243x slower
   is-boolean-fold-tricky                             3.6994+-0.0216     ?      3.7406+-0.0585        ? might be 1.0111x slower
   is-boolean-fold                                    2.5731+-0.0282     ?      2.5739+-0.0415        ?
   is-function-fold-tricky-internal-function   
                                                      9.6626+-0.1115            9.6085+-0.0397        
   is-function-fold-tricky                            4.0522+-0.0268            4.0437+-0.0299        
   is-function-fold                                   2.6273+-0.0451            2.6197+-0.0450        
   is-number-fold-tricky                              4.0374+-0.1158     ?      4.0550+-0.1548        ?
   is-number-fold                                     2.5877+-0.0321            2.5703+-0.0464        
   is-object-or-null-fold-functions                   2.6361+-0.0716     ?      2.6467+-0.0683        ?
   is-object-or-null-fold-less-tricky                 4.0219+-0.0597     ?      4.0698+-0.0588        ? might be 1.0119x slower
   is-object-or-null-fold-tricky                      5.0003+-0.1178     ?      5.0886+-0.0442        ? might be 1.0177x slower
   is-object-or-null-fold                             2.6135+-0.0243            2.6014+-0.0129        
   is-object-or-null-trickier-function                4.0605+-0.0374            4.0144+-0.0417          might be 1.0115x faster
   is-object-or-null-trickier-internal-function   
                                                     10.1417+-0.0406     ?     10.1741+-0.0472        ?
   is-object-or-null-tricky-function                  4.0531+-0.0697     ?      4.0638+-0.1085        ?
   is-object-or-null-tricky-internal-function   
                                                      7.6518+-0.0451            7.5762+-0.0945        
   is-string-fold-tricky                              3.9806+-0.0255     ?      3.9930+-0.0343        ?
   is-string-fold                                     2.6152+-0.0788            2.5668+-0.0246          might be 1.0189x faster
   is-undefined-fold-tricky                           3.3135+-0.0783            3.3031+-0.0437        
   is-undefined-fold                                  2.5965+-0.0761            2.5891+-0.0562        
   JSONP-negative-0                                   0.2339+-0.0072     ?      0.2382+-0.0125        ? might be 1.0185x slower
   large-int-captured                                 3.8629+-0.1550            3.7720+-0.0799          might be 1.0241x faster
   large-int-neg                                     13.4146+-0.0749     ?     13.5300+-0.2186        ?
   large-int                                         12.4308+-0.1638           12.2634+-0.1404          might be 1.0137x faster
   load-varargs-elimination                          20.7453+-0.6817           20.3266+-0.2301          might be 1.0206x faster
   logical-not-weird-types                            2.8289+-0.0658     ?      2.8598+-0.0992        ? might be 1.0109x slower
   logical-not                                        4.2447+-0.1243            4.1981+-0.0816          might be 1.0111x faster
   lots-of-fields                                     9.2033+-0.2135     ?      9.2402+-0.0698        ?
   make-indexed-storage                               2.8004+-0.0968            2.7653+-0.1917          might be 1.0127x faster
   make-rope-cse                                      3.5610+-0.0671     ?      3.7273+-0.3721        ? might be 1.0467x slower
   marsaglia-larger-ints                             31.1121+-0.2591           31.0150+-0.3037        
   marsaglia-osr-entry                               20.5086+-0.2876     ?     20.7721+-0.3191        ? might be 1.0128x slower
   math-with-out-of-bounds-array-values              21.2155+-0.6620           20.7806+-0.0494          might be 1.0209x faster
   max-boolean                                        2.6540+-0.0260            2.6179+-0.0241          might be 1.0138x faster
   method-on-number                                  15.3192+-0.0536     ?     15.8216+-0.7695        ? might be 1.0328x slower
   min-boolean                                        2.6531+-0.1642            2.6360+-0.0347        
   minus-boolean-double                               3.0988+-0.0731            3.0490+-0.0202          might be 1.0163x faster
   minus-boolean                                      2.3182+-0.0560     ?      2.3255+-0.0438        ?
   misc-strict-eq                                    31.2414+-1.3887           30.3660+-0.5037          might be 1.0288x faster
   mod-boolean-double                                11.0235+-0.1688           10.9827+-0.0651        
   mod-boolean                                        8.1938+-0.0469     ?      8.1960+-0.0164        ?
   mul-boolean-double                                 3.5466+-0.0167     ?      3.6127+-0.1523        ? might be 1.0186x slower
   mul-boolean                                        2.7503+-0.0339     ?      2.7871+-0.0714        ? might be 1.0134x slower
   neg-boolean                                        3.0738+-0.0361     ?      3.0777+-0.0548        ?
   negative-zero-divide                               0.3372+-0.0275            0.3186+-0.0066          might be 1.0581x faster
   negative-zero-modulo                               0.3642+-0.0385            0.3320+-0.0194          might be 1.0970x faster
   negative-zero-negate                               0.3095+-0.0101            0.3008+-0.0060          might be 1.0291x faster
   nested-function-parsing                           43.0414+-0.2280     ?     43.0541+-0.2928        ?
   new-array-buffer-dead                             87.7669+-1.0390           87.0509+-0.6081        
   new-array-buffer-push                              5.9836+-0.2683     ?      6.0164+-0.3012        ?
   new-array-dead                                    15.1150+-0.2240           14.6520+-1.1369          might be 1.0316x faster
   new-array-push                                     3.2756+-0.0508     ?      3.4158+-0.1605        ? might be 1.0428x slower
   no-inline-constructor                             31.2361+-1.6512           30.5743+-0.2279          might be 1.0216x faster
   number-test                                        2.8235+-0.0397            2.8196+-0.0071        
   object-closure-call                                4.7849+-0.1616            4.7094+-0.0523          might be 1.0160x faster
   object-get-own-property-symbols-on-large-array   
                                                      4.2340+-0.1165            4.1859+-0.2484          might be 1.0115x faster
   object-test                                        2.5940+-0.0204            2.5666+-0.0234          might be 1.0107x faster
   obvious-sink-pathology-taken                      99.9798+-1.6103           98.4559+-0.5493          might be 1.0155x faster
   obvious-sink-pathology                            92.6983+-0.4362     ?     93.3418+-0.8966        ?
   obviously-elidable-new-object                     28.1271+-0.2076     ?     28.4603+-0.5899        ? might be 1.0118x slower
   plus-boolean-arith                                 2.3325+-0.0121     ?      2.4060+-0.0969        ? might be 1.0315x slower
   plus-boolean-double                                3.2055+-0.3375            3.0879+-0.0610          might be 1.0381x faster
   plus-boolean                                       2.5099+-0.0391     ?      2.5236+-0.0833        ?
   poly-chain-access-different-prototypes-simple   
                                                      3.2078+-0.0552     ?      3.2598+-0.1521        ? might be 1.0162x slower
   poly-chain-access-different-prototypes             2.8287+-0.0315     ?      2.9034+-0.2172        ? might be 1.0264x slower
   poly-chain-access-simpler                          3.1949+-0.0401     ?      3.2096+-0.0325        ?
   poly-chain-access                                  3.2342+-0.0656            3.2281+-0.0695        
   poly-stricteq                                     49.2184+-0.4384     ?     50.4599+-2.1350        ? might be 1.0252x slower
   polymorphic-array-call                             1.2460+-0.0775            1.2030+-0.0447          might be 1.0358x faster
   polymorphic-get-by-id                              2.7590+-0.0292            2.7423+-0.0129        
   polymorphic-put-by-id                             24.2499+-1.1018     ?     24.6989+-0.8290        ? might be 1.0185x slower
   polymorphic-put-by-val-with-string                25.4427+-0.9280           25.0579+-1.8229          might be 1.0154x faster
   polymorphic-put-by-val-with-symbol                25.6676+-0.9393           25.0919+-0.6759          might be 1.0229x faster
   polymorphic-structure                             12.8545+-0.4926           12.7795+-0.1362        
   polyvariant-monomorphic-get-by-id                  6.7143+-0.9925     ?      7.2959+-1.2872        ? might be 1.0866x slower
   proto-getter-access                                8.1506+-0.2038            8.1364+-0.0878        
   prototype-access-with-mutating-prototype           5.4062+-0.2760     ?      5.5414+-0.2783        ? might be 1.0250x slower
   put-by-id-replace-and-transition                   7.8639+-0.6218            7.4642+-0.1918          might be 1.0536x faster
   put-by-id-slightly-polymorphic                     2.5727+-0.0239     ?      2.6495+-0.0741        ? might be 1.0299x slower
   put-by-id                                          9.3699+-0.1500     ?      9.5504+-0.3046        ? might be 1.0193x slower
   put-by-val-direct                                  0.3391+-0.0362            0.3171+-0.0061          might be 1.0692x faster
   put-by-val-large-index-blank-indexing-type   
                                                      5.3554+-0.0789     ?      5.3717+-0.1312        ?
   put-by-val-machine-int                             2.2908+-0.0784            2.2623+-0.0929          might be 1.0126x faster
   put-by-val-with-string-replace-and-transition   
                                                      9.6938+-0.0893            9.6828+-0.0718        
   put-by-val-with-string-slightly-polymorphic   
                                                      2.7967+-0.0194     ?      2.8865+-0.2151        ? might be 1.0321x slower
   put-by-val-with-string                            10.2572+-0.4970            9.9411+-0.2194          might be 1.0318x faster
   put-by-val-with-symbol-replace-and-transition   
                                                     11.2427+-0.1753     ?     11.3769+-0.3278        ? might be 1.0119x slower
   put-by-val-with-symbol-slightly-polymorphic   
                                                      2.9816+-0.0095            2.9735+-0.0126        
   put-by-val-with-symbol                             9.8827+-0.1375     ?     10.0149+-0.2660        ? might be 1.0134x slower
   rare-osr-exit-on-local                            14.4666+-0.1255           14.3394+-0.1940        
   register-pressure-from-osr                        15.9889+-0.0951     ?     16.5663+-1.2520        ? might be 1.0361x slower
   repeat-multi-get-by-offset                        20.9466+-0.1361           20.9314+-0.2137        
   setter-prototype                                   7.4682+-0.1552     ?      7.5248+-0.1108        ?
   setter                                             5.4310+-0.4778     ?      5.5669+-0.6003        ? might be 1.0250x slower
   simple-activation-demo                            23.5344+-0.2652     ?     23.8083+-1.0681        ? might be 1.0116x slower
   simple-getter-access                              10.4102+-0.1432     ?     10.4474+-0.1596        ?
   simple-poly-call-nested                            8.6742+-0.7648            7.7768+-0.6829          might be 1.1154x faster
   simple-poly-call                                   1.1451+-0.0198     ?      1.1587+-0.0197        ? might be 1.0118x slower
   sin-boolean                                       18.7744+-1.7670     ?     20.3601+-1.8433        ? might be 1.0845x slower
   singleton-scope                                   59.3486+-0.2842     ?     59.5993+-1.0301        ?
   sink-function                                     10.0396+-0.2794            9.6503+-0.3707          might be 1.0403x faster
   sink-huge-activation                              16.3284+-0.4477           16.2236+-0.6244        
   sinkable-new-object-dag                           52.8471+-0.8935     ?     53.2695+-0.7067        ?
   sinkable-new-object-taken                         43.8405+-1.5318           43.1814+-1.0885          might be 1.0153x faster
   sinkable-new-object                               29.2833+-0.3396     ?     29.3173+-0.2789        ?
   slow-array-profile-convergence                     2.3216+-0.0741            2.3091+-0.0797        
   slow-convergence                                   2.2730+-0.1356            2.2015+-0.0193          might be 1.0325x faster
   slow-ternaries                                    17.1104+-0.6193     ?     17.7142+-1.7607        ? might be 1.0353x slower
   sorting-benchmark                                 16.3154+-0.3326           16.1729+-0.4739        
   sparse-conditional                                 1.0810+-0.0230     ?      1.0892+-0.0238        ?
   splice-to-remove                                  11.9929+-0.0757           11.9701+-0.1559        
   string-char-code-at                               13.8354+-0.1991           13.7718+-0.0648        
   string-concat-object                               2.0719+-0.0541     ?      2.2245+-0.2277        ? might be 1.0736x slower
   string-concat-pair-object                          2.1531+-0.1057            2.0420+-0.0987          might be 1.0544x faster
   string-concat-pair-simple                          9.2519+-0.5406            8.8948+-0.1265          might be 1.0401x faster
   string-concat-simple                               9.3300+-0.2780     ?      9.3325+-0.3235        ?
   string-cons-repeat                                 6.3292+-0.3561            6.1364+-0.0506          might be 1.0314x faster
   string-cons-tower                                  6.3697+-0.0514     ?      6.3966+-0.1058        ?
   string-equality                                   15.0746+-0.7289           14.6572+-0.1295          might be 1.0285x faster
   string-get-by-val-big-char                         6.4367+-0.0701     !      6.5755+-0.0497        ! definitely 1.0216x slower
   string-get-by-val-out-of-bounds-insane             3.1294+-0.0578     ?      3.1673+-0.1868        ? might be 1.0121x slower
   string-get-by-val-out-of-bounds                    4.0995+-0.3033     ?      4.2205+-0.5930        ? might be 1.0295x slower
   string-get-by-val                                  2.7836+-0.0255            2.7801+-0.0134        
   string-hash                                        1.8148+-0.1044            1.7696+-0.0238          might be 1.0255x faster
   string-long-ident-equality                        12.1288+-0.0624     ?     12.2015+-0.1203        ?
   string-out-of-bounds                              10.4116+-0.8754     ?     10.7363+-1.7412        ? might be 1.0312x slower
   string-repeat-arith                               26.2251+-0.3852           25.9062+-0.4741          might be 1.0123x faster
   string-sub                                        52.1999+-1.0450           52.0824+-0.1520        
   string-test                                        2.7009+-0.0318            2.6722+-0.0154          might be 1.0107x faster
   string-var-equality                               25.5200+-0.6660           25.0155+-0.4336          might be 1.0202x faster
   structure-hoist-over-transitions                   2.3495+-0.0925            2.3191+-0.0634          might be 1.0131x faster
   substring-concat-weird                            36.7699+-0.5243           36.3555+-0.2822          might be 1.0114x faster
   substring-concat                                  39.6393+-0.6832           39.4037+-0.7354        
   substring                                         45.3419+-2.9255           44.2080+-0.2246          might be 1.0256x faster
   switch-char-constant                               2.5640+-0.0380     ?      2.6018+-0.0216        ? might be 1.0147x slower
   switch-char                                        5.9107+-0.9067            5.6619+-0.8331          might be 1.0439x faster
   switch-constant                                    8.4246+-0.6283     ?      8.7864+-0.6750        ? might be 1.0429x slower
   switch-string-basic-big-var                       13.5616+-0.0418     ?     13.6811+-0.1509        ?
   switch-string-basic-big                           14.1120+-0.1018     ?     14.2493+-0.3413        ?
   switch-string-basic-var                           12.7639+-0.3560     ?     13.1205+-1.0676        ? might be 1.0279x slower
   switch-string-basic                               12.3003+-0.0386     ?     12.3623+-0.0677        ?
   switch-string-big-length-tower-var                17.4817+-0.0520     ?     17.8080+-0.6531        ? might be 1.0187x slower
   switch-string-length-tower-var                    13.4237+-0.1535     ?     13.9589+-1.3824        ? might be 1.0399x slower
   switch-string-length-tower                        12.6003+-2.7949           11.4287+-0.1518          might be 1.1025x faster
   switch-string-short                               11.4483+-0.0829     ?     11.5819+-0.2594        ? might be 1.0117x slower
   switch                                            11.1274+-0.1503           11.0908+-0.3580        
   tear-off-arguments-simple                          2.9958+-0.0893            2.9481+-0.1132          might be 1.0162x faster
   tear-off-arguments                                 3.9220+-0.1368            3.8833+-0.0521        
   temporal-structure                                11.8124+-0.2475           11.7484+-0.1552        
   to-int32-boolean                                  12.2358+-0.0999           12.2149+-0.1206        
   try-catch-get-by-val-cloned-arguments             13.2247+-0.1016     !     13.6847+-0.2252        ! definitely 1.0348x slower
   try-catch-get-by-val-direct-arguments              6.2656+-0.0895            6.2077+-0.1435        
   try-catch-get-by-val-scoped-arguments              7.5455+-0.2674            7.2786+-0.0943          might be 1.0367x faster
   typed-array-get-set-by-val-profiling              26.7421+-1.0327           26.3918+-0.3711          might be 1.0133x faster
   undefined-property-access                        222.6511+-1.0912     ?    223.8125+-1.5774        ?
   undefined-test                                     2.8483+-0.0883            2.8483+-0.0557        
   unprofiled-licm                                   13.6898+-0.3632     ?     14.2082+-1.2831        ? might be 1.0379x slower
   varargs-call                                      13.1042+-0.1624           13.0749+-0.1244        
   varargs-construct-inline                          21.7938+-0.1282     ?     21.9529+-0.4909        ?
   varargs-construct                                 19.4144+-0.4428     ?     21.4516+-4.6726        ? might be 1.1049x slower
   varargs-inline                                     8.2771+-0.0403     ?      9.2131+-2.0952        ? might be 1.1131x slower
   varargs-strict-mode                                8.8630+-0.1108            8.8560+-0.0218        
   varargs                                            8.8161+-0.0490     ?      8.9058+-0.2449        ? might be 1.0102x slower
   weird-inlining-const-prop                          2.6333+-0.1671            2.5916+-0.2251          might be 1.0161x faster

   <geometric>                                        7.6729+-0.0187     ?      7.6764+-0.0181        ? might be 1.0005x slower

                                                        TipOfTree              BetterNodeOrigin                                 
AsmBench:
   bigfib.cpp                                       448.5059+-5.1930     ?    452.6486+-8.9662        ?
   cray.c                                           397.8228+-3.0332     ?    398.0834+-2.9925        ?
   dry.c                                            425.0640+-7.2702     ?    425.8344+-7.9413        ?
   FloatMM.c                                        684.3753+-3.9563          683.8740+-2.4857        
   gcc-loops.cpp                                   3420.2200+-12.4996    ?   3420.3003+-11.5332       ?
   n-body.c                                         823.1715+-3.3997     ?    823.2854+-3.7652        ?
   Quicksort.c                                      407.9977+-5.7474          403.1648+-3.5230          might be 1.0120x faster
   stepanov_container.cpp                          3576.7224+-33.9335        3547.0458+-22.4680       
   Towers.c                                         233.3327+-1.6046     ?    236.2612+-7.5210        ? might be 1.0126x slower

   <geometric>                                      716.4544+-2.4065     ?    716.6823+-3.7049        ? might be 1.0003x slower

                                                        TipOfTree              BetterNodeOrigin                                 
CompressionBench:
   huffman                                           59.5610+-1.2837     ?     60.2004+-1.9224        ? might be 1.0107x slower
   arithmetic-simple                                270.0619+-0.8556     ?    271.1015+-1.4948        ?
   arithmetic-precise                               244.6134+-3.0700     ?    245.5301+-4.5504        ?
   arithmetic-complex-precise                       245.8313+-6.0585          241.9283+-1.2557          might be 1.0161x faster
   arithmetic-precise-order-0                       282.6973+-3.5471     ?    283.9946+-8.6371        ?
   arithmetic-precise-order-1                       306.5167+-7.9570          303.6981+-2.4258        
   arithmetic-precise-order-2                       354.6087+-4.6245          352.3367+-2.5976        
   arithmetic-simple-order-1                        331.1409+-7.4445     ?    358.7324+-75.0263       ? might be 1.0833x slower
   arithmetic-simple-order-2                        384.2340+-5.8287          383.0826+-5.3712        
   lz-string                                        309.2750+-5.3001          307.4274+-3.2608        

   <geometric>                                      255.1156+-1.1705     ?    256.3116+-5.0011        ? might be 1.0047x slower

                                                        TipOfTree              BetterNodeOrigin                                 
Geomean of preferred means:
   <scaled-result>                                   50.7147+-0.1554           50.6886+-0.1743          might be 1.0005x faster
Comment 4 Saam Barati 2015-08-21 13:45:21 PDT
Comment on attachment 259645 [details]
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=259645&action=review

r=me

> Source/JavaScriptCore/dfg/DFGNodeOrigin.h:51
> +    NodeOrigin withSemantic(CodeOrigin semantic)

This function is nice.
Comment 5 Filip Pizlo 2015-08-21 13:49:36 PDT
Landed in http://trac.webkit.org/changeset/188771