Bug 64630

Summary: DFG JIT - Where arguments passed are integers, speculate this.
Product: WebKit Reporter: Gavin Barraclough <barraclough>
Component: JavaScriptCoreAssignee: Gavin Barraclough <barraclough>
Status: RESOLVED FIXED    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
The patch sam: review+

Description Gavin Barraclough 2011-07-15 14:37:46 PDT
Presently the DFG JIT is overly aggressively predicting double.  Use a bit of dynamic information, and curtail this a little.
Comment 1 Gavin Barraclough 2011-07-15 14:40:08 PDT
Created attachment 101044 [details]
The patch

TEST                   COMPARISON            FROM                 TO             DETAILS

=============================================================================

** TOTAL **:           1.006x as fast    235.3ms +/- 0.5%   233.8ms +/- 0.3%     significant

=============================================================================

  3d:                  -                  34.0ms +/- 0.0%    34.0ms +/- 0.0% 
    cube:              -                  13.0ms +/- 0.0%    13.0ms +/- 0.0% 
    morph:             -                  10.0ms +/- 0.0%    10.0ms +/- 0.0% 
    raytrace:          -                  11.0ms +/- 0.0%    11.0ms +/- 0.0% 

  access:              -                  26.1ms +/- 3.8%    25.5ms +/- 1.5% 
    binary-trees:      -                   4.0ms +/- 0.0%     4.0ms +/- 0.0% 
    fannkuch:          -                  14.1ms +/- 6.9%    13.5ms +/- 2.8% 
    nbody:             -                   5.0ms +/- 0.0%     5.0ms +/- 0.0% 
    nsieve:            -                   3.0ms +/- 0.0%     3.0ms +/- 0.0% 

  bitops:              1.045x as fast     18.6ms +/- 2.0%    17.8ms +/- 1.7%     significant
    3bit-bits-in-byte: 1.60x as fast       1.6ms +/- 23.1%     1.0ms +/- 0.0%     significant
    bits-in-byte:      -                   5.0ms +/- 0.0%     5.0ms +/- 0.0% 
    bitwise-and:       -                   6.0ms +/- 0.0%     5.8ms +/- 5.2% 
    nsieve-bits:       -                   6.0ms +/- 0.0%     6.0ms +/- 0.0% 

  controlflow:         -                   2.0ms +/- 0.0%     2.0ms +/- 0.0% 
    recursive:         -                   2.0ms +/- 0.0%     2.0ms +/- 0.0% 

  crypto:              1.069x as fast     14.0ms +/- 0.0%    13.1ms +/- 1.7%     significant
    aes:               1.111x as fast      9.0ms +/- 0.0%     8.1ms +/- 2.8%     significant
    md5:               -                   3.0ms +/- 0.0%     3.0ms +/- 0.0% 
    sha1:              -                   2.0ms +/- 0.0%     2.0ms +/- 0.0% 

  date:                -                  30.0ms +/- 0.0%    30.0ms +/- 0.0% 
    format-tofte:      -                  18.0ms +/- 0.0%    18.0ms +/- 0.0% 
    format-xparb:      -                  12.0ms +/- 0.0%    12.0ms +/- 0.0% 

  math:                ??                 22.5ms +/- 1.7%    22.8ms +/- 1.3%     not conclusive: might be *1.013x as slow*
    cordic:            -                   8.0ms +/- 0.0%     8.0ms +/- 0.0% 
    partial-sums:      ??                 11.5ms +/- 3.3%    11.8ms +/- 2.6%     not conclusive: might be *1.026x as slow*
    spectral-norm:     -                   3.0ms +/- 0.0%     3.0ms +/- 0.0% 

  regexp:              -                  14.1ms +/- 1.6%    14.0ms +/- 0.0% 
    dna:               -                  14.1ms +/- 1.6%    14.0ms +/- 0.0% 

  string:              ??                 74.0ms +/- 0.8%    74.6ms +/- 0.5%     not conclusive: might be *1.008x as slow*
    base64:            -                   8.0ms +/- 0.0%     8.0ms +/- 0.0% 
    fasta:             -                  10.0ms +/- 0.0%    10.0ms +/- 0.0% 
    tagcloud:          ??                 18.6ms +/- 2.0%    18.9ms +/- 1.2%     not conclusive: might be *1.016x as slow*
    unpack-code:       -                  28.0ms +/- 0.0%    28.0ms +/- 0.0% 
    validate-input:    ??                  9.4ms +/- 3.9%     9.7ms +/- 3.6%     not conclusive: might be *1.032x as slow*
Comment 2 Gavin Barraclough 2011-07-15 14:57:45 PDT
Fixed in r91115