Bug 145137 - Add SpecBoolInt32 type that means "I'm an int and I'm either 0 or 1"
Summary: Add SpecBoolInt32 type that means "I'm an int and I'm either 0 or 1"
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on:
Blocks: 144136
  Show dependency treegraph
 
Reported: 2015-05-18 13:45 PDT by Filip Pizlo
Modified: 2015-05-18 19:30 PDT (History)
1 user (show)

See Also:


Attachments
probably ok (7.37 KB, patch)
2015-05-18 14:00 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (9.16 KB, patch)
2015-05-18 17:51 PDT, Filip Pizlo
benjamin: 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-05-18 13:45:51 PDT
This will help with some boolean-to-int and vice-versa logic.
Comment 1 Filip Pizlo 2015-05-18 14:00:28 PDT
Created attachment 253340 [details]
probably ok

Still testing it though.
Comment 2 WebKit Commit Bot 2015-05-18 14:02:29 PDT
Attachment 253340 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:261:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:262:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Filip Pizlo 2015-05-18 17:42:34 PDT
This is what performance looks like.  I need to investigate SunSpider more.


Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on dethklok (MacBookPro9,1).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r184521)
"BoolIntSpec" at /Volumes/Data/pizlo/primary/OpenSource/WebKitBuild/Release/jsc (r184521)

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.

                                                        TipOfTree                BoolIntSpec                                    
SunSpider:
   3d-cube                                            5.4031+-0.3197            5.2798+-0.1462          might be 1.0234x faster
   3d-morph                                           6.1037+-0.7057            5.7879+-0.1011          might be 1.0546x faster
   3d-raytrace                                        6.5071+-0.1425     ?      6.5597+-0.1181        ?
   access-binary-trees                                2.3120+-0.0802     ?      2.3247+-0.0889        ?
   access-fannkuch                                    6.0389+-0.0413     ?      6.0768+-0.1875        ?
   access-nbody                                       3.0261+-0.1058     ?      3.2293+-0.4201        ? might be 1.0671x slower
   access-nsieve                                      3.3164+-0.1871     ?      3.5837+-0.7430        ? might be 1.0806x slower
   bitops-3bit-bits-in-byte                           1.5800+-0.0783     ?      1.6634+-0.2397        ? might be 1.0528x slower
   bitops-bits-in-byte                                3.6764+-0.1184     ?      3.7819+-0.3380        ? might be 1.0287x slower
   bitops-bitwise-and                                 2.3108+-0.2792            2.1405+-0.0064          might be 1.0796x faster
   bitops-nsieve-bits                                 3.2943+-0.1808     ?      3.4073+-0.0449        ? might be 1.0343x slower
   controlflow-recursive                              2.3724+-0.1403     ?      2.3975+-0.0794        ? might be 1.0106x slower
   crypto-aes                                         5.0265+-1.3898            4.6824+-0.4825          might be 1.0735x faster
   crypto-md5                                         3.1058+-0.2371            3.0319+-0.1621          might be 1.0244x faster
   crypto-sha1                                        2.8967+-0.3008     ?      3.0030+-0.1760        ? might be 1.0367x slower
   date-format-tofte                                  9.4204+-0.7927     ?      9.5173+-0.2906        ? might be 1.0103x slower
   date-format-xparb                                  5.9120+-0.3028     ?      6.0533+-0.2597        ? might be 1.0239x slower
   math-cordic                                        3.1530+-0.0301     ?      3.3273+-0.2940        ? might be 1.0553x slower
   math-partial-sums                                  5.3936+-0.2872     ?      5.4432+-0.2540        ?
   math-spectral-norm                                 1.9843+-0.0274     ?      2.0623+-0.1470        ? might be 1.0393x slower
   regexp-dna                                         8.0519+-1.4263     ?      8.6747+-1.5756        ? might be 1.0774x slower
   string-base64                                      5.0694+-0.4653            4.9161+-0.1857          might be 1.0312x faster
   string-fasta                                       6.7569+-0.2763            6.6311+-0.1724          might be 1.0190x faster
   string-tagcloud                                    9.0005+-0.2218     !     10.1074+-0.6627        ! definitely 1.1230x slower
   string-unpack-code                                20.4031+-0.7226     ?     21.3342+-1.2034        ? might be 1.0456x slower
   string-validate-input                              4.8904+-0.0337     ?      5.0177+-0.1508        ? might be 1.0260x slower

   <arithmetic>                                       5.2695+-0.1109     ?      5.3859+-0.0855        ? might be 1.0221x slower

                                                        TipOfTree                BoolIntSpec                                    
LongSpider:
   3d-cube                                          893.7168+-17.6151         886.0732+-10.9149       
   3d-morph                                        1529.6499+-4.3240     ?   1532.0288+-9.2016        ?
   3d-raytrace                                      703.9260+-4.6921     ?    709.6719+-1.3686        ?
   access-binary-trees                              976.4215+-5.6312     ?    978.3778+-9.0502        ?
   access-fannkuch                                  327.6344+-9.0820     ?    328.6036+-7.1346        ?
   access-nbody                                     618.7113+-2.6229     ?    620.0555+-4.2628        ?
   access-nsieve                                    476.4778+-5.6967     ?    477.3671+-6.3812        ?
   bitops-3bit-bits-in-byte                          45.1107+-1.3441           44.4614+-0.9129          might be 1.0146x faster
   bitops-bits-in-byte                              103.9775+-1.8253          102.9287+-0.4577          might be 1.0102x faster
   bitops-nsieve-bits                               418.3537+-1.5174     ?    420.3561+-4.5345        ?
   controlflow-recursive                            483.5185+-8.2589     ?    493.3893+-9.9474        ? might be 1.0204x slower
   crypto-aes                                       709.0609+-10.4484    ?    709.5311+-7.4680        ?
   crypto-md5                                       523.1773+-5.5380     ?    530.4409+-12.7286       ? might be 1.0139x slower
   crypto-sha1                                      596.4494+-5.0175          595.1007+-3.8009        
   date-format-tofte                                722.6051+-12.5711    ?    733.7832+-17.1282       ? might be 1.0155x slower
   date-format-xparb                                801.0327+-33.0757         792.8731+-20.4510         might be 1.0103x faster
   hash-map                                         174.7098+-3.1066     ?    174.8278+-5.5452        ?
   math-cordic                                      589.4053+-4.7797     ?    592.6246+-7.8814        ?
   math-partial-sums                                522.4523+-37.1613         511.6344+-11.7812         might be 1.0211x faster
   math-spectral-norm                               569.4797+-7.5744     ?    570.6423+-10.6150       ?
   string-base64                                    384.8560+-3.9885     ?    387.7940+-5.1570        ?
   string-fasta                                     432.7456+-4.2533          432.6282+-4.1108        
   string-tagcloud                                  198.5583+-3.1873     ?    200.1440+-4.4967        ?

   <geometric>                                      451.0164+-1.8404     ?    451.6412+-1.0561        ? might be 1.0014x slower

                                                        TipOfTree                BoolIntSpec                                    
V8Spider:
   crypto                                            56.8403+-1.0632     ?     57.5695+-2.9314        ? might be 1.0128x slower
   deltablue                                        104.9784+-5.6863          100.7099+-2.8689          might be 1.0424x faster
   earley-boyer                                      47.9642+-0.9480     ?     49.8773+-3.5893        ? might be 1.0399x slower
   raytrace                                          39.8986+-2.6499     ?     40.4030+-1.1508        ? might be 1.0126x slower
   regexp                                            80.7281+-0.7885     ?     82.7537+-3.1170        ? might be 1.0251x slower
   richards                                          81.5581+-3.9853     ?     81.9549+-2.5542        ?
   splay                                             40.6341+-1.6161     ?     40.7532+-1.9860        ?

   <geometric>                                       60.7161+-0.4993     ?     61.1971+-1.0760        ? might be 1.0079x slower

                                                        TipOfTree                BoolIntSpec                                    
Octane:
   encrypt                                           0.20443+-0.00319    ?     0.20480+-0.00259       ?
   decrypt                                           3.66466+-0.11042          3.63167+-0.08377       
   deltablue                                x2       0.20059+-0.00695          0.19679+-0.00199         might be 1.0193x faster
   earley                                            0.39724+-0.00323    ?     0.39793+-0.00421       ?
   boyer                                             5.14220+-0.04405          5.10928+-0.04568       
   navier-stokes                            x2       5.19481+-0.03643    ?     5.21203+-0.06557       ?
   raytrace                                 x2       1.26711+-0.02595          1.25296+-0.04065         might be 1.0113x faster
   richards                                 x2       0.12453+-0.00348          0.12239+-0.00106         might be 1.0175x faster
   splay                                    x2       0.39913+-0.00179    ?     0.40525+-0.00787       ? might be 1.0153x slower
   regexp                                   x2      31.64300+-0.07419         31.60434+-0.33392       
   pdfjs                                    x2      43.51895+-0.71226         43.24640+-0.68687       
   mandreel                                 x2      50.33982+-0.49609         49.95234+-0.58626       
   gbemu                                    x2      41.78710+-0.35238    ?    41.96021+-0.21318       ?
   closure                                           0.56262+-0.00137          0.56178+-0.00308       
   jquery                                            7.18246+-0.03418    ?     7.19920+-0.12203       ?
   box2d                                    x2      12.63480+-0.31440         12.62684+-0.32939       
   zlib                                     x2     398.95361+-2.53376        383.00766+-18.88877        might be 1.0416x faster
   typescript                               x2     818.74015+-6.71538    ?   828.57613+-22.07145      ? might be 1.0120x slower

   <geometric>                                       6.59637+-0.01845          6.56299+-0.02866         might be 1.0051x faster

                                                        TipOfTree                BoolIntSpec                                    
Kraken:
   ai-astar                                          235.659+-1.760      ?     235.746+-2.396         ?
   audio-beat-detection                              107.229+-0.863            106.868+-1.343         
   audio-dft                                         121.072+-2.586      ?     121.699+-3.158         ?
   audio-fft                                          84.887+-5.204      ?      87.834+-4.160         ? might be 1.0347x slower
   audio-oscillator                                   78.454+-1.698             77.303+-1.483           might be 1.0149x faster
   imaging-darkroom                                  105.251+-1.805            104.631+-1.780         
   imaging-desaturate                                 63.592+-0.369      ?      64.435+-1.470         ? might be 1.0132x slower
   imaging-gaussian-blur                             112.246+-4.235            111.778+-1.709         
   json-parse-financial                               53.384+-17.093            47.214+-3.178           might be 1.1307x faster
   json-stringify-tinderbox                           29.683+-2.305             29.319+-1.576           might be 1.0124x faster
   stanford-crypto-aes                                59.213+-1.729             58.976+-1.375         
   stanford-crypto-ccm                                51.962+-1.582             51.548+-1.710         
   stanford-crypto-pbkdf2                            120.109+-2.853            119.777+-3.215         
   stanford-crypto-sha256-iterative                   47.942+-2.067             46.427+-1.831           might be 1.0326x faster

   <arithmetic>                                       90.763+-2.132             90.254+-0.549           might be 1.0056x faster

                                                        TipOfTree                BoolIntSpec                                    
JSRegress:
   abs-boolean                                        2.9360+-0.3963            2.6556+-0.0472          might be 1.1056x faster
   adapt-to-double-divide                            17.0377+-1.1294           16.8422+-0.3378          might be 1.0116x faster
   aliased-arguments-getbyval                         1.3031+-0.0611     ?      1.3607+-0.1325        ? might be 1.0442x slower
   allocate-big-object                                2.9259+-0.2830     ?      2.9543+-0.2742        ?
   arguments-named-and-reflective                    12.4935+-0.6822           12.2335+-0.5927          might be 1.0213x faster
   arguments-out-of-bounds                           15.0154+-0.9497           14.6965+-0.2004          might be 1.0217x faster
   arguments-strict-mode                             12.0817+-1.1374           11.7027+-0.8274          might be 1.0324x faster
   arguments                                         10.3935+-0.5082           10.3652+-0.6766        
   arity-mismatch-inlining                            0.9504+-0.1189            0.9277+-0.0783          might be 1.0246x faster
   array-access-polymorphic-structure                 7.6145+-0.9908            7.1558+-0.8932          might be 1.0641x faster
   array-nonarray-polymorhpic-access                 33.3451+-1.0071           32.9914+-1.2540          might be 1.0107x faster
   array-prototype-every                             88.8162+-2.0052           86.7218+-1.3135          might be 1.0242x faster
   array-prototype-forEach                           86.7324+-3.0443           83.8047+-2.7574          might be 1.0349x faster
   array-prototype-map                               95.8930+-4.0735           90.8778+-1.8173          might be 1.0552x faster
   array-prototype-some                              87.5102+-1.6685           87.3805+-2.9081        
   array-splice-contiguous                           42.8057+-2.2540           42.5216+-2.2946        
   array-with-double-add                              4.1802+-0.1214     ?      4.3724+-0.4951        ? might be 1.0460x slower
   array-with-double-increment                        3.2510+-0.0978     ?      3.4519+-0.4048        ? might be 1.0618x slower
   array-with-double-mul-add                          5.0797+-0.1744     ?      5.2609+-0.6603        ? might be 1.0357x slower
   array-with-double-sum                              3.3435+-0.1335     ?      3.3602+-0.1270        ?
   array-with-int32-add-sub                           6.7787+-0.0841     ?      6.7809+-0.0598        ?
   array-with-int32-or-double-sum                     3.3528+-0.0361     ?      3.3905+-0.0630        ? might be 1.0112x slower
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     33.6924+-1.4021           32.8511+-1.5543          might be 1.0256x faster
   ArrayBuffer-DataView-alloc-long-lived             14.2311+-1.0042           14.0852+-1.6420          might be 1.0104x faster
   ArrayBuffer-Int32Array-byteOffset                  3.7960+-0.0408     ?      4.0091+-0.4792        ? might be 1.0561x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     33.2432+-1.4375           32.1611+-1.6025          might be 1.0336x faster
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     21.7076+-0.5985     ?     22.4538+-1.7121        ? might be 1.0344x slower
   ArrayBuffer-Int8Array-alloc-long-lived            13.9254+-1.9356           12.5330+-1.0752          might be 1.1111x faster
   ArrayBuffer-Int8Array-alloc                       10.8218+-1.1135     ?     11.1200+-0.9724        ? might be 1.0276x slower
   asmjs_bool_bug                                     7.5428+-0.1449     ?      7.9479+-0.5854        ? might be 1.0537x slower
   assign-custom-setter-polymorphic                   3.2709+-0.1352     ^      3.0348+-0.0474        ^ definitely 1.0778x faster
   assign-custom-setter                               4.4337+-0.0631            4.2827+-0.2812          might be 1.0352x faster
   basic-set                                          8.7193+-0.5365            8.5564+-0.2017          might be 1.0190x faster
   big-int-mul                                        4.0513+-0.0987            3.9839+-0.0400          might be 1.0169x faster
   boolean-test                                       3.1198+-0.1019            3.1114+-0.0311        
   branch-fold                                        3.7398+-0.0469     ?      3.8130+-0.0948        ? might be 1.0196x slower
   branch-on-string-as-boolean                       19.7638+-2.0571           18.9865+-0.5563          might be 1.0409x faster
   by-val-generic                                     8.0960+-0.3422     ?      8.1380+-0.2156        ?
   call-spread-apply                                 30.3288+-2.7024           29.6482+-0.8898          might be 1.0230x faster
   call-spread-call                                  25.9213+-1.2256           25.0658+-0.3503          might be 1.0341x faster
   captured-assignments                               0.4881+-0.1083            0.4690+-0.0587          might be 1.0408x faster
   cast-int-to-double                                 5.3800+-0.1281            5.3112+-0.0434          might be 1.0130x faster
   cell-argument                                      8.9467+-0.9461            8.5933+-0.2142          might be 1.0411x faster
   cfg-simplify                                       2.8960+-0.0461            2.8462+-0.1226          might be 1.0175x faster
   chain-getter-access                                9.2916+-0.0895            9.1821+-0.2971          might be 1.0119x faster
   cmpeq-obj-to-obj-other                            11.4767+-1.1944     ?     12.5390+-1.3123        ? might be 1.0926x slower
   constant-test                                      5.0026+-0.0850     ?      5.0864+-0.1835        ? might be 1.0168x slower
   create-lots-of-functions                          12.0363+-0.3587           11.8401+-0.3191          might be 1.0166x faster
   DataView-custom-properties                        40.1915+-0.6856           38.4867+-2.0723          might be 1.0443x faster
   deconstructing-parameters-overridden-by-function   
                                                      0.5859+-0.0318            0.5846+-0.0811        
   delay-tear-off-arguments-strictmode               14.0968+-0.1969     !     16.2826+-1.6185        ! definitely 1.1551x slower
   deltablue-varargs                                205.8220+-2.3721     ?    207.6001+-1.9328        ?
   destructuring-arguments                           18.1956+-0.7268           17.9455+-0.5677          might be 1.0139x faster
   destructuring-swap                                 5.1722+-0.1804     ?      5.1832+-0.1581        ?
   direct-arguments-getbyval                          1.2746+-0.1104     ?      1.3643+-0.1452        ? might be 1.0704x slower
   div-boolean-double                                 5.2290+-0.1290     ?      5.3563+-0.1887        ? might be 1.0243x slower
   div-boolean                                        7.8619+-0.1179     ?      7.8985+-0.2146        ?
   double-get-by-val-out-of-bounds                    4.5501+-0.0191     ?      4.6887+-0.2195        ? might be 1.0305x slower
   double-pollution-getbyval                          8.8901+-0.0886            8.8636+-0.0411        
   double-pollution-putbyoffset                       4.3190+-0.0804     ?      4.3461+-0.0729        ?
   double-to-int32-typed-array-no-inline              2.2883+-0.1271     ?      2.3826+-0.2703        ? might be 1.0412x slower
   double-to-int32-typed-array                        2.0113+-0.1122     ?      2.2242+-0.2529        ? might be 1.1059x slower
   double-to-uint32-typed-array-no-inline             2.6535+-0.2748            2.3129+-0.0749          might be 1.1473x faster
   double-to-uint32-typed-array                       2.0270+-0.0210     ?      2.0833+-0.0810        ? might be 1.0278x slower
   elidable-new-object-dag                           44.6506+-1.4846           43.2219+-1.8221          might be 1.0331x faster
   elidable-new-object-roflcopter                    43.7293+-0.6762     ?     43.9599+-0.2629        ?
   elidable-new-object-then-call                     39.7422+-1.5701     ?     40.0483+-1.8126        ?
   elidable-new-object-tree                          46.4553+-1.6879           45.3938+-1.0382          might be 1.0234x faster
   empty-string-plus-int                              5.4935+-0.1043            5.4454+-0.0556        
   emscripten-cube2hash                              38.1121+-1.3749     ?     39.3092+-1.5678        ? might be 1.0314x slower
   exit-length-on-plain-object                       15.3557+-1.8571           14.0731+-0.7380          might be 1.0911x faster
   external-arguments-getbyval                        1.2390+-0.0391     ?      1.3075+-0.1192        ? might be 1.0553x slower
   external-arguments-putbyval                        2.3160+-0.1584     ?      2.3393+-0.0996        ? might be 1.0100x slower
   fixed-typed-array-storage-var-index                1.3000+-0.1995            1.2281+-0.0288          might be 1.0586x faster
   fixed-typed-array-storage                          0.9170+-0.0181            0.8989+-0.0360          might be 1.0201x faster
   Float32Array-matrix-mult                           4.4982+-0.1651     ?      4.6410+-0.3386        ? might be 1.0317x slower
   Float32Array-to-Float64Array-set                  58.5115+-3.1090     ^     53.3442+-1.5919        ^ definitely 1.0969x faster
   Float64Array-alloc-long-lived                     70.3573+-1.9158           69.9922+-1.6514        
   Float64Array-to-Int16Array-set                    69.2154+-1.7058     ?     71.7806+-1.8871        ? might be 1.0371x slower
   fold-double-to-int                                13.9878+-1.1120           13.5085+-0.2647          might be 1.0355x faster
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.2030+-1.3333     ?     10.7192+-1.0344        ? might be 1.0506x slower
   fold-get-by-id-to-multi-get-by-offset              9.7703+-0.8608     ?      9.9152+-1.0265        ? might be 1.0148x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                      9.6027+-0.9967            9.1511+-0.9897          might be 1.0493x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      9.5122+-0.5821            8.7115+-1.4358          might be 1.0919x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      8.8795+-1.4304     ?     10.0629+-1.1483        ? might be 1.1333x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      7.6589+-2.0147            5.1780+-1.1066          might be 1.4791x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      9.7095+-0.8029     ?     10.0309+-1.1060        ? might be 1.0331x slower
   fold-put-by-id-to-multi-put-by-offset              9.3398+-0.6279     ?     10.6085+-0.9631        ? might be 1.1358x slower
   fold-put-structure                                 6.8541+-1.4458            5.4085+-1.6311          might be 1.2673x faster
   for-of-iterate-array-entries                       4.7358+-0.1435            4.6886+-0.1012          might be 1.0101x faster
   for-of-iterate-array-keys                          3.8359+-0.1776     ?      3.9452+-0.2785        ? might be 1.0285x slower
   for-of-iterate-array-values                        3.7516+-0.0867     ?      3.7594+-0.0919        ?
   fround                                            21.7338+-0.9654           20.9111+-0.5193          might be 1.0393x faster
   ftl-library-inlining-dataview                     68.0540+-5.6335           67.4392+-2.0505        
   ftl-library-inlining                              78.8532+-14.8110    ?     81.4934+-20.2788       ? might be 1.0335x slower
   function-dot-apply                                 2.3049+-0.2444            2.1718+-0.0181          might be 1.0613x faster
   function-test                                      2.9819+-0.2220            2.8410+-0.0504          might be 1.0496x faster
   function-with-eval                               103.8228+-1.5240     ?    104.7542+-3.0000        ?
   gcse-poly-get-less-obvious                        19.0800+-1.2193           19.0086+-1.1724        
   gcse-poly-get                                     21.8682+-2.2642           20.9069+-1.9221          might be 1.0460x faster
   gcse                                               4.3659+-0.1239     ?      4.4519+-0.1561        ? might be 1.0197x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.8918+-0.4410            2.7813+-0.0455          might be 1.0397x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      6.0849+-0.0754     ?      6.2323+-0.2176        ? might be 1.0242x slower
   get-by-id-chain-from-try-block                     7.1635+-1.2038            6.5572+-0.1552          might be 1.0925x faster
   get-by-id-check-structure-elimination              5.1722+-0.1444            5.1649+-0.1077        
   get-by-id-proto-or-self                           19.0209+-0.8664     ?     19.4106+-1.4554        ? might be 1.0205x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.1716+-0.0811     ?      3.3171+-0.2934        ? might be 1.0459x slower
   get-by-id-self-or-proto                           19.3894+-1.6676           18.2944+-0.8523          might be 1.0599x faster
   get-by-val-out-of-bounds                           4.4751+-0.0761     ?      4.5320+-0.1239        ? might be 1.0127x slower
   get_callee_monomorphic                             3.3088+-0.5423            2.9456+-0.0617          might be 1.1233x faster
   get_callee_polymorphic                             3.8007+-0.2429     ?      3.8864+-0.4057        ? might be 1.0225x slower
   getter-no-activation                               5.1631+-0.3792     ?      5.2474+-0.2606        ? might be 1.0163x slower
   getter-richards                                  128.1519+-2.7290     ?    129.1509+-7.9357        ?
   getter                                             5.9128+-0.8678            5.8795+-0.7386        
   global-var-const-infer-fire-from-opt               0.9207+-0.0747     ?      1.0039+-0.1216        ? might be 1.0904x slower
   global-var-const-infer                             0.9627+-0.1747            0.8061+-0.0759          might be 1.1942x faster
   HashMap-put-get-iterate-keys                      30.2985+-1.6239           30.0939+-2.0930        
   HashMap-put-get-iterate                           31.2770+-1.0522     ?     31.9631+-2.9517        ? might be 1.0219x slower
   HashMap-string-put-get-iterate                    30.6549+-3.3601           28.4287+-1.8014          might be 1.0783x faster
   hoist-make-rope                                   12.7301+-1.0053           12.0890+-0.8302          might be 1.0530x faster
   hoist-poly-check-structure-effectful-loop   
                                                      5.1140+-0.2286     ?      5.1597+-0.1886        ?
   hoist-poly-check-structure                         3.7923+-0.3287            3.7204+-0.1074          might be 1.0193x faster
   imul-double-only                                   9.0222+-0.7057     ?      9.0445+-0.1600        ?
   imul-int-only                                     10.2482+-0.5513            9.7477+-0.2185          might be 1.0513x faster
   imul-mixed                                         8.6434+-0.1994            8.2746+-0.1707          might be 1.0446x faster
   in-four-cases                                     22.4936+-0.2979           22.3011+-0.4177        
   in-one-case-false                                 11.0487+-0.1218     ?     11.1298+-0.2410        ?
   in-one-case-true                                  11.1667+-0.3066     ?     11.7321+-0.5228        ? might be 1.0506x slower
   in-two-cases                                      11.5940+-0.0803     ?     11.7906+-0.2286        ? might be 1.0170x slower
   indexed-properties-in-objects                      3.1234+-0.4990            3.0707+-0.0404          might be 1.0172x faster
   infer-closure-const-then-mov-no-inline             4.4940+-0.4859            4.0063+-0.0934          might be 1.1217x faster
   infer-closure-const-then-mov                      19.8707+-0.4373     ?     20.0311+-0.4582        ?
   infer-closure-const-then-put-to-scope-no-inline   
                                                     13.1597+-1.1734           12.5941+-0.9832          might be 1.0449x faster
   infer-closure-const-then-put-to-scope             22.0816+-1.2074     ?     22.9694+-1.3581        ? might be 1.0402x slower
   infer-closure-const-then-reenter-no-inline   
                                                     58.0375+-1.8103           56.7630+-0.4128          might be 1.0225x faster
   infer-closure-const-then-reenter                  23.2022+-1.1827           22.7040+-1.5524          might be 1.0219x faster
   infer-constant-global-property                     3.7048+-0.4184            3.6697+-0.1433        
   infer-constant-property                            2.7668+-0.0493     ?      2.8780+-0.3366        ? might be 1.0402x slower
   infer-one-time-closure-ten-vars                   12.6272+-0.2811     ?     13.4542+-1.1742        ? might be 1.0655x slower
   infer-one-time-closure-two-vars                   11.9804+-0.1930     ?     13.2325+-1.4229        ? might be 1.1045x slower
   infer-one-time-closure                            12.2349+-0.9109     ?     12.2371+-0.6884        ?
   infer-one-time-deep-closure                       21.7124+-1.2066           21.5049+-1.2853        
   inline-arguments-access                            4.6459+-0.1473            4.6353+-0.1787        
   inline-arguments-aliased-access                    4.5825+-0.0646     ?      4.6833+-0.1922        ? might be 1.0220x slower
   inline-arguments-local-escape                      4.6207+-0.0964     ?      4.6781+-0.1345        ? might be 1.0124x slower
   inline-get-scoped-var                              4.7856+-0.1741     ?      4.9953+-0.2364        ? might be 1.0438x slower
   inlined-put-by-id-transition                      11.9518+-0.7875           11.7531+-0.6371          might be 1.0169x faster
   int-or-other-abs-then-get-by-val                   4.9468+-0.0475     ?      5.0128+-0.1544        ? might be 1.0133x slower
   int-or-other-abs-zero-then-get-by-val             18.0825+-1.7587     ?     18.2985+-1.1707        ? might be 1.0119x slower
   int-or-other-add-then-get-by-val                   4.3892+-0.1106     ?      4.4025+-0.1106        ?
   int-or-other-add                                   5.4618+-0.1520            5.4223+-0.1443        
   int-or-other-div-then-get-by-val                   4.2623+-0.0439     ?      4.2662+-0.2037        ?
   int-or-other-max-then-get-by-val                   4.3496+-0.0906     ?      4.3668+-0.1850        ?
   int-or-other-min-then-get-by-val                   4.3895+-0.0082            4.3503+-0.0629        
   int-or-other-mod-then-get-by-val                   3.9914+-0.0779            3.9891+-0.1154        
   int-or-other-mul-then-get-by-val                   3.8118+-0.0236     ?      3.8669+-0.2256        ? might be 1.0144x slower
   int-or-other-neg-then-get-by-val                   4.7363+-0.0418     ?      4.8159+-0.0467        ? might be 1.0168x slower
   int-or-other-neg-zero-then-get-by-val             18.5359+-1.7248           17.8865+-1.0185          might be 1.0363x faster
   int-or-other-sub-then-get-by-val                   4.3527+-0.0450     ?      4.4850+-0.3887        ? might be 1.0304x slower
   int-or-other-sub                                   3.5889+-0.0993            3.5761+-0.0383        
   int-overflow-local                                 4.5342+-0.4111     ?      5.2295+-1.7034        ? might be 1.1534x slower
   Int16Array-alloc-long-lived                       50.6848+-2.0283           49.6575+-1.4985          might be 1.0207x faster
   Int16Array-bubble-sort-with-byteLength            19.7984+-1.6386           19.4567+-0.5519          might be 1.0176x faster
   Int16Array-bubble-sort                            19.9816+-1.4906     ?     20.4249+-1.3230        ? might be 1.0222x slower
   Int16Array-load-int-mul                            1.5485+-0.0789     ?      1.6543+-0.3174        ? might be 1.0683x slower
   Int16Array-to-Int32Array-set                      57.3875+-1.8323     ?     57.4769+-1.5488        ?
   Int32Array-alloc-large                            24.0508+-1.1910           23.1135+-0.4048          might be 1.0406x faster
   Int32Array-alloc-long-lived                       55.4134+-1.9589           55.1746+-1.4633        
   Int32Array-alloc                                   3.4620+-0.4109            3.4085+-0.3359          might be 1.0157x faster
   Int32Array-Int8Array-view-alloc                    6.9821+-0.6148            6.6115+-0.2362          might be 1.0561x faster
   int52-spill                                        5.9042+-0.1193     ?      5.9709+-0.2997        ? might be 1.0113x slower
   Int8Array-alloc-long-lived                        45.5952+-1.6210           45.0988+-1.5613          might be 1.0110x faster
   Int8Array-load-with-byteLength                     3.4100+-0.1912            3.3860+-0.0813        
   Int8Array-load                                     3.3911+-0.0654            3.3375+-0.0616          might be 1.0161x faster
   integer-divide                                    11.3452+-0.2977           11.1923+-0.0780          might be 1.0137x faster
   integer-modulo                                     2.0503+-0.1360     ?      2.0791+-0.1214        ? might be 1.0141x slower
   is-boolean-fold-tricky                             4.4557+-0.0535            4.4516+-0.0226        
   is-boolean-fold                                    2.9201+-0.1578     ?      2.9663+-0.2263        ? might be 1.0158x slower
   is-function-fold-tricky-internal-function   
                                                     11.9401+-0.1543           11.9000+-0.0953        
   is-function-fold-tricky                            4.8162+-0.4560            4.6615+-0.1922          might be 1.0332x faster
   is-function-fold                                   2.9259+-0.1376     ?      2.9306+-0.0960        ?
   is-number-fold-tricky                              4.6705+-0.3755            4.4383+-0.0374          might be 1.0523x faster
   is-number-fold                                     3.1914+-0.4457            2.9028+-0.0662          might be 1.0994x faster
   is-object-or-null-fold-functions                   2.9503+-0.0433     ?      3.0749+-0.1535        ? might be 1.0422x slower
   is-object-or-null-fold-less-tricky                 4.6287+-0.1440     ?      4.7673+-0.5212        ? might be 1.0299x slower
   is-object-or-null-fold-tricky                      6.6663+-0.1286     ?      6.6768+-0.0864        ?
   is-object-or-null-fold                             2.8731+-0.0288     ?      2.8830+-0.0106        ?
   is-object-or-null-trickier-function                4.7666+-0.1438     ?      4.8361+-0.2942        ? might be 1.0146x slower
   is-object-or-null-trickier-internal-function   
                                                     12.6161+-0.2404     ?     13.3339+-1.1581        ? might be 1.0569x slower
   is-object-or-null-tricky-function                  4.7548+-0.3153            4.6944+-0.1375          might be 1.0129x faster
   is-object-or-null-tricky-internal-function   
                                                      9.5511+-0.3110            9.3003+-0.1696          might be 1.0270x faster
   is-string-fold-tricky                              4.7260+-0.4563            4.4555+-0.0384          might be 1.0607x faster
   is-string-fold                                     3.0038+-0.2388            2.8305+-0.0505          might be 1.0612x faster
   is-undefined-fold-tricky                           3.7319+-0.0342     ?      3.9941+-0.4676        ? might be 1.0703x slower
   is-undefined-fold                                  2.9337+-0.2123     ?      3.0439+-0.3340        ? might be 1.0375x slower
   large-int-captured                                 4.8269+-0.0992            4.7888+-0.0991        
   large-int-neg                                     16.6991+-0.9201           16.2495+-0.4020          might be 1.0277x faster
   large-int                                         14.8840+-0.7607     ?     16.2074+-2.2422        ? might be 1.0889x slower
   load-varargs-elimination                          26.4272+-9.2638           23.0582+-0.5498          might be 1.1461x faster
   logical-not                                        4.7481+-0.1356            4.6356+-0.0567          might be 1.0243x faster
   lots-of-fields                                    12.7118+-0.5070           12.4852+-0.3845          might be 1.0181x faster
   make-indexed-storage                               3.2484+-0.2330            3.1786+-0.1123          might be 1.0220x faster
   make-rope-cse                                      4.9999+-0.4739     ?      5.0697+-0.5449        ? might be 1.0140x slower
   marsaglia-larger-ints                             36.9138+-1.0251           36.3930+-0.2056          might be 1.0143x faster
   marsaglia-osr-entry                               24.3311+-1.2970           23.6351+-1.7294          might be 1.0294x faster
   max-boolean                                        2.5210+-0.0433            2.4880+-0.0428          might be 1.0132x faster
   method-on-number                                  19.4950+-0.8039           18.3899+-0.3765          might be 1.0601x faster
   min-boolean                                        2.5675+-0.1134            2.4929+-0.0310          might be 1.0299x faster
   minus-boolean-double                               3.2782+-0.0921     ?      3.3796+-0.3160        ? might be 1.0309x slower
   minus-boolean                                      2.3381+-0.0402     ?      2.3438+-0.0584        ?
   misc-strict-eq                                    40.3965+-3.2456           39.5222+-1.7442          might be 1.0221x faster
   mod-boolean-double                                10.9538+-0.1945           10.8965+-0.1003        
   mod-boolean                                        8.0056+-0.3031            7.8926+-0.0871          might be 1.0143x faster
   mul-boolean-double                                 3.7735+-0.1278            3.7545+-0.0833        
   mul-boolean                                        2.9532+-0.0632     ?      3.1380+-0.4046        ? might be 1.0626x slower
   neg-boolean                                        3.4333+-0.3680            3.2011+-0.0442          might be 1.0725x faster
   negative-zero-divide                               0.3715+-0.0411            0.3647+-0.0252          might be 1.0186x faster
   negative-zero-modulo                               0.3593+-0.0238            0.3535+-0.0130          might be 1.0165x faster
   negative-zero-negate                               0.3267+-0.0150     ?      0.3658+-0.0312        ? might be 1.1197x slower
   nested-function-parsing                           38.2150+-0.3564     ?     38.7318+-1.3312        ? might be 1.0135x slower
   new-array-buffer-dead                            111.3677+-3.4628     ?    114.3716+-2.5790        ? might be 1.0270x slower
   new-array-buffer-push                              7.2091+-0.7784            7.0128+-0.3300          might be 1.0280x faster
   new-array-dead                                    19.9080+-0.5723           19.0238+-0.4600          might be 1.0465x faster
   new-array-push                                     4.0789+-0.3817            3.9908+-0.1298          might be 1.0221x faster
   no-inline-constructor                             40.6038+-1.0416     ?     41.5711+-1.4367        ? might be 1.0238x slower
   number-test                                        3.3072+-0.3317            3.1588+-0.2122          might be 1.0470x faster
   object-closure-call                                5.7949+-0.3055            5.6181+-0.0253          might be 1.0315x faster
   object-test                                        2.8697+-0.0985     ?      3.0296+-0.2432        ? might be 1.0557x slower
   obvious-sink-pathology-taken                     140.8520+-1.3710     ?    141.3075+-2.4718        ?
   obvious-sink-pathology                           132.3882+-1.6964     ?    133.7007+-2.3572        ?
   obviously-elidable-new-object                     35.0792+-1.0060     ?     35.7895+-2.0635        ? might be 1.0202x slower
   plus-boolean-arith                                 2.5531+-0.1544     ?      2.6354+-0.3605        ? might be 1.0322x slower
   plus-boolean-double                                3.2521+-0.0964            3.2244+-0.0588        
   plus-boolean                                       2.5689+-0.3193            2.4036+-0.0330          might be 1.0688x faster
   poly-chain-access-different-prototypes-simple   
                                                      3.4558+-0.2663     ?      3.4869+-0.3231        ?
   poly-chain-access-different-prototypes             2.6013+-0.0415     ?      2.8036+-0.3465        ? might be 1.0778x slower
   poly-chain-access-simpler                          3.4314+-0.3199     ?      3.4796+-0.3613        ? might be 1.0140x slower
   poly-chain-access                                  2.6519+-0.0818            2.5929+-0.0550          might be 1.0227x faster
   poly-stricteq                                     58.6161+-0.3732           57.8578+-1.6681          might be 1.0131x faster
   polymorphic-array-call                             1.3937+-0.0906     ?      1.4988+-0.2225        ? might be 1.0754x slower
   polymorphic-get-by-id                              3.1426+-0.0725            3.0970+-0.0290          might be 1.0147x faster
   polymorphic-put-by-id                             33.0518+-3.7556     ?     33.4506+-4.0235        ? might be 1.0121x slower
   polymorphic-structure                             14.7753+-0.1614     ?     14.9148+-0.2837        ?
   polyvariant-monomorphic-get-by-id                  8.6067+-0.1966     ?      8.6638+-0.3007        ?
   proto-getter-access                                9.1125+-0.0841     ?      9.2915+-0.3161        ? might be 1.0196x slower
   put-by-id-replace-and-transition                  11.4178+-5.0223            9.3115+-0.1779          might be 1.2262x faster
   put-by-id-slightly-polymorphic                     2.8247+-0.0270     ?      2.8250+-0.0100        ?
   put-by-id                                         12.8591+-0.3571     ?     13.0504+-0.4230        ? might be 1.0149x slower
   put-by-val-direct                                  0.3424+-0.0110     !      0.3709+-0.0162        ! definitely 1.0833x slower
   put-by-val-large-index-blank-indexing-type   
                                                      6.3171+-0.6476     ?      6.6568+-0.8215        ? might be 1.0538x slower
   put-by-val-machine-int                             2.7237+-0.0331     ?      2.7629+-0.0498        ? might be 1.0144x slower
   rare-osr-exit-on-local                            15.3127+-0.7221           15.1290+-0.2989          might be 1.0121x faster
   register-pressure-from-osr                        22.1084+-1.3072           21.4843+-0.3141          might be 1.0290x faster
   setter                                             6.4130+-0.9475            6.1916+-1.2354          might be 1.0358x faster
   simple-activation-demo                            26.1431+-1.3262           25.8652+-1.4741          might be 1.0107x faster
   simple-getter-access                              11.9050+-0.3822           11.8708+-0.2010        
   simple-poly-call-nested                            8.2271+-0.2076     ?      8.3679+-0.2076        ? might be 1.0171x slower
   simple-poly-call                                   1.3619+-0.1777            1.3469+-0.1134          might be 1.0112x faster
   sin-boolean                                       24.0499+-2.5477           23.5060+-1.8286          might be 1.0231x faster
   singleton-scope                                   63.3236+-1.9017     ?     64.3138+-2.2332        ? might be 1.0156x slower
   sink-function                                     12.0070+-0.1348     ?     12.1618+-0.2678        ? might be 1.0129x slower
   sink-huge-activation                              22.1722+-6.2148           20.0236+-0.9109          might be 1.1073x faster
   sinkable-new-object-dag                           70.2674+-1.4754           69.4517+-0.6779          might be 1.0117x faster
   sinkable-new-object-taken                         52.0774+-2.4777     ?     52.9524+-4.4380        ? might be 1.0168x slower
   sinkable-new-object                               39.5743+-1.0274           38.9773+-1.0698          might be 1.0153x faster
   slow-array-profile-convergence                     2.8321+-0.0629     ?      3.8054+-1.2320        ? might be 1.3437x slower
   slow-convergence                                   2.8446+-0.3419     ?      2.9048+-0.5162        ? might be 1.0212x slower
   slow-ternaries                                    28.7999+-0.7321     ?     29.3488+-1.6584        ? might be 1.0191x slower
   sorting-benchmark                                 22.5303+-6.7819           20.1567+-0.6321          might be 1.1178x faster
   sparse-conditional                                 1.1590+-0.0446     ?      1.1798+-0.0553        ? might be 1.0179x slower
   splice-to-remove                                  16.8962+-1.2926     ?     17.1753+-1.6682        ? might be 1.0165x slower
   string-char-code-at                               16.1102+-0.5627           15.7331+-0.1565          might be 1.0240x faster
   string-concat-object                               2.7194+-0.3771            2.6825+-0.2498          might be 1.0138x faster
   string-concat-pair-object                          2.6182+-0.0607     ?      2.7430+-0.3295        ? might be 1.0477x slower
   string-concat-pair-simple                         11.6907+-0.2473     ?     12.3043+-1.2872        ? might be 1.0525x slower
   string-concat-simple                              12.5482+-1.0548     ?     12.8846+-1.5299        ? might be 1.0268x slower
   string-cons-repeat                                 8.4778+-0.9321     ?      8.4848+-1.0263        ?
   string-cons-tower                                  9.2418+-0.7570            8.9915+-0.8136          might be 1.0278x faster
   string-equality                                   19.3004+-0.6692     ?     19.9683+-1.3063        ? might be 1.0346x slower
   string-get-by-val-big-char                         7.1883+-0.1170     ?      7.2420+-0.0633        ?
   string-get-by-val-out-of-bounds-insane             3.8798+-0.6317     ?      4.0480+-0.6753        ? might be 1.0433x slower
   string-get-by-val-out-of-bounds                    5.4853+-0.6751            5.2223+-0.1013          might be 1.0504x faster
   string-get-by-val                                  3.3431+-0.1792     ?      3.4884+-0.4117        ? might be 1.0435x slower
   string-hash                                        2.0536+-0.0519     ?      2.1485+-0.2389        ? might be 1.0462x slower
   string-long-ident-equality                        15.4668+-0.2407           15.3604+-0.5268        
   string-out-of-bounds                              14.9713+-0.1998     ?     14.9990+-0.3442        ?
   string-repeat-arith                               34.6861+-4.2816           34.1481+-2.5263          might be 1.0158x faster
   string-sub                                        67.3770+-1.6485           66.7317+-3.5303        
   string-test                                        3.0019+-0.2449     ?      3.1235+-0.3011        ? might be 1.0405x slower
   string-var-equality                               34.2492+-1.7197           34.2321+-1.8726        
   structure-hoist-over-transitions                   2.7497+-0.0787     ?      2.7963+-0.1009        ? might be 1.0169x slower
   substring-concat-weird                            41.1761+-1.3967           40.1272+-1.3637          might be 1.0261x faster
   substring-concat                                  44.0282+-1.2562           43.7203+-1.2885        
   substring                                         47.8792+-1.7267           45.6721+-1.1005          might be 1.0483x faster
   switch-char-constant                               2.9409+-0.3600            2.7429+-0.0519          might be 1.0722x faster
   switch-char                                        6.7294+-0.8128            6.2296+-0.2866          might be 1.0802x faster
   switch-constant                                    8.4329+-0.2148     ?      8.4751+-0.3198        ?
   switch-string-basic-big-var                       18.7159+-0.5782           18.2968+-0.4150          might be 1.0229x faster
   switch-string-basic-big                           15.4889+-0.8065           14.9184+-0.1584          might be 1.0382x faster
   switch-string-basic-var                           15.2772+-0.3117     ?     15.3450+-0.7401        ?
   switch-string-basic                               13.5437+-0.4191           13.3485+-0.2427          might be 1.0146x faster
   switch-string-big-length-tower-var                21.0907+-1.3793           20.9874+-1.1801        
   switch-string-length-tower-var                    15.4108+-0.1461           15.2867+-0.1780        
   switch-string-length-tower                        13.0233+-0.2309           12.8256+-0.2212          might be 1.0154x faster
   switch-string-short                               13.5262+-1.0170           13.0576+-0.3531          might be 1.0359x faster
   switch                                            13.0132+-0.4591           12.9389+-0.2894        
   tear-off-arguments-simple                          3.4713+-0.0443     ?      3.5341+-0.0577        ? might be 1.0181x slower
   tear-off-arguments                                 4.9507+-0.2953     ?      5.1099+-0.4864        ? might be 1.0322x slower
   temporal-structure                                12.1609+-0.1439     ?     12.3917+-0.3883        ? might be 1.0190x slower
   to-int32-boolean                                  13.6122+-0.1649     ?     13.6833+-0.1625        ?
   try-catch-get-by-val-cloned-arguments             15.3373+-1.6650           14.2963+-0.3405          might be 1.0728x faster
   try-catch-get-by-val-direct-arguments              6.5801+-0.1920     ?      6.8730+-0.3588        ? might be 1.0445x slower
   try-catch-get-by-val-scoped-arguments              7.7008+-0.2720     ?      8.0640+-1.1009        ? might be 1.0472x slower
   typed-array-get-set-by-val-profiling              32.3715+-1.4685     ?     32.4524+-1.4377        ?
   undefined-property-access                        344.9226+-2.3119          341.9918+-2.6892        
   undefined-test                                     3.0487+-0.0474     ?      3.1481+-0.0554        ? might be 1.0326x slower
   unprofiled-licm                                   22.9327+-0.4499           22.6808+-0.4590          might be 1.0111x faster
   varargs-call                                      14.9148+-0.5800           14.6225+-0.2455          might be 1.0200x faster
   varargs-construct-inline                          27.9732+-0.6724     ?     28.0228+-0.8184        ?
   varargs-construct                                 22.7318+-0.3458     ?     23.3678+-1.0664        ? might be 1.0280x slower
   varargs-inline                                    10.0381+-0.9738            9.4571+-0.3668          might be 1.0614x faster
   varargs-strict-mode                               10.3033+-0.3054     ?     10.4188+-0.3386        ? might be 1.0112x slower
   varargs                                           10.4428+-0.3759           10.2381+-0.1802          might be 1.0200x faster
   weird-inlining-const-prop                          2.4474+-0.2453            2.3680+-0.1541          might be 1.0335x faster

   <geometric>                                        8.6467+-0.0251            8.6102+-0.0377          might be 1.0042x faster

                                                        TipOfTree                BoolIntSpec                                    
AsmBench:
   bigfib.cpp                                       496.2467+-4.5776     ?    497.2357+-1.8829        ?
   cray.c                                           428.7062+-3.0084     ?    430.4986+-8.8767        ?
   dry.c                                            480.7573+-9.2597          478.6118+-7.4349        
   FloatMM.c                                        726.2832+-3.4248          725.4382+-2.6150        
   gcc-loops.cpp                                   4273.6116+-17.1843    ?   4282.6942+-25.0240       ?
   n-body.c                                         975.9207+-3.6292     ?    977.3698+-3.2127        ?
   Quicksort.c                                      421.1567+-2.3119     ?    450.9852+-77.5423       ? might be 1.0708x slower
   stepanov_container.cpp                          3648.8674+-58.4641        3611.8536+-11.3599         might be 1.0102x faster
   Towers.c                                         260.0277+-1.7729     ?    260.3431+-1.3355        ?

   <geometric>                                      792.8256+-3.2088     ?    797.6762+-13.4104       ? might be 1.0061x slower

                                                        TipOfTree                BoolIntSpec                                    
CompressionBench:
   huffman                                          363.6234+-6.4071     ?    368.1650+-2.6827        ? might be 1.0125x slower
   arithmetic-simple                                366.5913+-10.9568         365.9233+-3.0822        
   arithmetic-precise                               290.2744+-2.8090     ?    295.6559+-3.9577        ? might be 1.0185x slower
   arithmetic-complex-precise                       299.2030+-2.1811     ?    303.9151+-2.6161        ? might be 1.0157x slower
   arithmetic-precise-order-0                       384.8005+-6.5987          383.7413+-3.4014        
   arithmetic-precise-order-1                       331.6822+-3.9242     ?    331.8702+-6.0545        ?
   arithmetic-precise-order-2                       362.0633+-6.1394     ?    364.2708+-4.7355        ?
   arithmetic-simple-order-1                        427.5013+-4.3822          423.0996+-4.3408          might be 1.0104x faster
   arithmetic-simple-order-2                        466.1084+-6.7059          465.5752+-4.7778        
   lz-string                                        335.9762+-2.6052          334.0248+-6.4761        

   <geometric>                                      359.2276+-0.9195     ?    360.3610+-1.1667        ? might be 1.0032x slower

                                                        TipOfTree                BoolIntSpec                                    
Geomean of preferred means:
   <scaled-result>                                   61.7966+-0.2682     ?     61.9942+-0.3066        ? might be 1.0032x slower
Comment 4 Filip Pizlo 2015-05-18 17:47:50 PDT
Looks like the SunSpider slow-down was a fluke:


Benchmark report for SunSpider on dethklok (MacBookPro9,1).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r184521)
"BoolIntSpec" at /Volumes/Data/pizlo/primary/OpenSource/WebKitBuild/Release/jsc (r184521)

Collected 100 samples per benchmark/VM, with 100 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                BoolIntSpec                                    

3d-cube                         5.3841+-0.1434            5.3698+-0.1369        
3d-morph                        6.1191+-0.1668            6.0428+-0.1350          might be 1.0126x faster
3d-raytrace                     6.7284+-0.1396            6.6906+-0.0687        
access-binary-trees             2.4079+-0.0472     ?      2.4159+-0.0617        ?
access-fannkuch                 6.2932+-0.1311            6.1301+-0.0934          might be 1.0266x faster
access-nbody                    3.1181+-0.0878     ?      3.1449+-0.0678        ?
access-nsieve                   3.3137+-0.0523            3.2881+-0.0632        
bitops-3bit-bits-in-byte        1.6335+-0.0254     ?      1.6740+-0.0407        ? might be 1.0248x slower
bitops-bits-in-byte             3.7024+-0.0361     ?      3.7390+-0.0537        ?
bitops-bitwise-and              2.2451+-0.0484            2.2248+-0.0410        
bitops-nsieve-bits              3.2238+-0.0580     !      3.4793+-0.0551        ! definitely 1.0793x slower
controlflow-recursive           2.3620+-0.0318     ?      2.4008+-0.0652        ? might be 1.0164x slower
crypto-aes                      4.7061+-0.1162     ?      4.7702+-0.1331        ? might be 1.0136x slower
crypto-md5                      3.1490+-0.0540            3.1072+-0.1047          might be 1.0135x faster
crypto-sha1                     2.9588+-0.0785            2.8895+-0.0729          might be 1.0240x faster
date-format-tofte               9.3255+-0.1829     ?      9.5809+-0.2876        ? might be 1.0274x slower
date-format-xparb               6.0780+-0.1330     ?      6.0819+-0.0790        ?
math-cordic                     3.2739+-0.0564     ^      3.1625+-0.0331        ^ definitely 1.0352x faster
math-partial-sums               5.6214+-0.1324            5.5761+-0.0916        
math-spectral-norm              2.0711+-0.0412     ?      2.0719+-0.0559        ?
regexp-dna                      7.7913+-0.2231            7.6609+-0.1902          might be 1.0170x faster
string-base64                   5.1313+-0.1274            5.0240+-0.0962          might be 1.0213x faster
string-fasta                    6.7966+-0.0848     ?      6.8197+-0.1315        ?
string-tagcloud                10.1179+-0.3013           10.0751+-0.2164        
string-unpack-code             21.0380+-0.1630     ?     21.1144+-0.3876        ?
string-validate-input           5.1039+-0.0811     ?      5.1627+-0.0997        ? might be 1.0115x slower

<arithmetic>                    5.3729+-0.0231     ?      5.3730+-0.0286        ? might be 1.0000x slower
Comment 5 Filip Pizlo 2015-05-18 17:51:19 PDT
Created attachment 253358 [details]
the patch
Comment 6 WebKit Commit Bot 2015-05-18 17:53:05 PDT
Attachment 253358 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:261:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:262:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 7 Filip Pizlo 2015-05-18 18:07:48 PDT
(In reply to comment #6)
> Attachment 253358 [details] did not pass style-queue:
> 
> 
> ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:261:  Multi
> line control clauses should use braces.  [whitespace/braces] [4]

It does have braces.

> ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:262: 
> Boolean expressions that span multiple lines should have their operators on
> the left side of the line instead of the right side.  [whitespace/operators]
> [4]

Maybe.  But in this case, I think that the way the expressions are aligned helps to understand what is going on.  I will keep it.

> Total errors found: 2 in 4 files
> 
> 
> If any of these errors are false positives, please file a bug against
> check-webkit-style.
Comment 8 Filip Pizlo 2015-05-18 19:30:22 PDT
Landed in http://trac.webkit.org/changeset/184540