<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 - WebAssembly: downgrade likely unused fast memory modules to slow memory"
   href="https://bugs.webkit.org/show_bug.cgi?id=170360">170360</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>WebAssembly: downgrade likely unused fast memory modules to slow memory
          </td>
        </tr>

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

        <tr>
          <th>Version</th>
          <td>WebKit 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>jfbastien&#64;apple.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>fpizlo&#64;apple.com, ggaren&#64;apple.com, jfbastien&#64;apple.com, keith_miller&#64;apple.com, mark.lam&#64;apple.com, msaboff&#64;apple.com, sbarati&#64;apple.com
          </td>
        </tr>

        <tr>
          <th>Blocks</th>
          <td>159775
          </td>
        </tr></table>
      <p>
        <div>
        <pre>In setting where we have a limited number of fast memories, it's possible that the GC inadvertently keeps one alive by keeping the WebAssemblyInstance alive. That's a bummer because we're wasting a precious fast memory. We could have a heuristic to figure out whether an Instance executes at all (counters on function entry, or from JS exports, or when the GC scans the stack) and if we think an Instance is dead the downgrade it to a BoundsChecking memory instead. This requires changing its mode, deleting all its code, and making damn sure none of the code is currently on a call stack. Or performing OSR.

This is a lot of work and may not be worth it, but let's keep it in mind.</pre>
        </div>
      </p>

        <div id="referenced">
          <hr style="border: 1px dashed #969696">
          <b>Referenced Bugs:</b>
          <ul>
              <li>
                [<a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - WebAssembly: support the newer spec"
   href="https://bugs.webkit.org/show_bug.cgi?id=159775">Bug 159775</a>] WebAssembly: support the newer spec
              </li>
          </ul>
        </div>
        <br>

      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>