<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 - Move the API(s) from B3MathExtras.h into FTL::Output"
   href="https://bugs.webkit.org/show_bug.cgi?id=152223">152223</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Move the API(s) from B3MathExtras.h into FTL::Output
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </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>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </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>fpizlo&#64;apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>We need to keep the layering to a minimum.  We already have a layer that is meant to help you generate low-level IR, and that's called FTL::Output.  So, anytime we are tempted to add helpers that generate B3 IR on behalf of a client, we should just put that into FTL::Output.

Also, anytime you create a helper that generates IR that consists of multiple basic blocks, you need to be mindful of where you insert those blocks.  It's not good to just put them at the end of the procedure, since that breaks any range-based analyses.  It also makes IR hard to read.  This is why FTL::Output has all of this functionality about &quot;inserting blocks before&quot;.  So, in its current form, the API in B3MathExtras.h is suboptimal and produces weird-looking IR, and to fix that we would need to endow it with FTL::Output's smarts.  Seems better to just move it to FTL::Output.</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>