<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Allow object allocation sinking through GetScope, GetExecutable and SkipScope nodes"
   href="https://bugs.webkit.org/show_bug.cgi?id=146431">146431</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Allow object allocation sinking through GetScope, GetExecutable and SkipScope nodes
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>528+ (Nightly build)
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>JavaScriptCore
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>basile_clement&#64;apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>We are currently considering GetScope, GetExecutable and SkipScope nodes as blocking sinking of function and allocations, while this definitely shouldn't be the case.
This is a ~10% speedup on octane/earley (Conf#1 is ToT, Conf#2 is ToT w/ this patch):

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.

                             Conf#1                    Conf#2                                      

encrypt                 0.31553+-0.00094          0.31282+-0.00553       
decrypt                 5.12296+-0.00708          5.12107+-0.00895       
deltablue      x2       0.24604+-0.00074    ?     0.24641+-0.00151       ?
earley                  0.48200+-0.00316    ^     0.42697+-0.00062       ^ definitely 1.1289x faster
boyer                   6.69585+-0.01114    ?     6.69660+-0.01937       ?
navier-stokes  x2       6.99958+-0.00259          6.99893+-0.00333       
raytrace       x2       1.54523+-0.06374    ?     1.55159+-0.05032       ?
richards       x2       0.16939+-0.00249          0.16901+-0.00175       
splay          x2       0.48342+-0.00306          0.48300+-0.00416       
regexp         x2      36.77174+-0.17936         36.63545+-0.07532       
pdfjs          x2      55.24960+-0.27697         55.16416+-0.33324       
mandreel       x2      68.13311+-0.22945         68.00004+-0.15431       
gbemu          x2      59.30592+-0.40256         58.82190+-1.22108       
closure                 0.87790+-0.00269    ?     0.87852+-0.00340       ?
jquery                 11.57117+-0.11659         11.52107+-0.03844       
box2d          x2      16.72202+-0.06821    ?    16.73307+-0.04231       ?
zlib           x2     516.09832+-21.15309   ?   516.42894+-18.65591      ?
typescript     x2    1066.03271+-11.93493   ?  1074.22778+-7.63335       ?

&lt;geometric&gt;             8.68007+-0.02685          8.63929+-0.03370         might be 1.0047x faster</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>