<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 - B3 should have a Depend operation"
   href="https://bugs.webkit.org/show_bug.cgi?id=162350">162350</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>B3 should have a Depend operation
          </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>On ARM, there's a goofy way to force to loads to be dependent.  Say you have two loads:

a = *p
b = *q

You can make them dependent by doing:

a = *p
b = q[a ^ a]

Obviously, you can't say BitXor(a, a) since that would get strength-reduced away.  But we could introduce a Depend operation like this:

a = *p
b = *Depend(q, a)

On x86, this operation could get blown away just before lowering to Air.  On ARM, this operation would turn into the BitXor hack.

Intriguingly, this Depend operation would be useful even on x86 because it would let us express a load-load fence without pessimizing codegen too much.</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>